Function: gdbmi-bnf-stream-record

gdbmi-bnf-stream-record is a byte-compiled function defined in gdb-mi.el.gz.

Signature

(gdbmi-bnf-stream-record)

Documentation

Implement the following GDB/MI output grammar rule:
  stream-record ==>
       console-stream-output | target-stream-output | log-stream-output

  console-stream-output ==>
       ~ c-string

  target-stream-output ==>
       @ c-string

  log-stream-output ==>
       & c-string

Source Code

;; Defined in /usr/src/emacs/lisp/progmodes/gdb-mi.el.gz
(defun gdbmi-bnf-stream-record ()
  "Implement the following GDB/MI output grammar rule:
  stream-record ==>
       console-stream-output | target-stream-output | log-stream-output

  console-stream-output ==>
       `~' c-string

  target-stream-output ==>
       `@' c-string

  log-stream-output ==>
       `&' c-string"
  (when (< gdbmi-bnf-offset (length gud-marker-acc))
    (if (and (member (aref gud-marker-acc gdbmi-bnf-offset) '(?~ ?@ ?&))
             (string-match (concat "\\([~@&]\\)\\(" gdb--string-regexp "\\)\n")
                           gud-marker-acc
                           gdbmi-bnf-offset))
        (let ((prefix (match-string 1 gud-marker-acc))
              (c-string (match-string 2 gud-marker-acc)))

          (setq gdbmi-bnf-offset (match-end 0))
          (if gdbmi-debug-mode (message "gdbmi-bnf-stream-record: %s"
                                        (match-string 0 gud-marker-acc)))

          (cond ((string-equal prefix "~")
                 (gdbmi-bnf-console-stream-output c-string))
                ((string-equal prefix "@")
                 (gdbmi-bnf-target-stream-output c-string))
                ((string-equal prefix "&")
                 (gdbmi-bnf-log-stream-output c-string)))
	  t))))