diff options
author | Stephen Hemminger <stephen.hemminger@vyatta.com> | 2010-10-11 14:49:26 -0700 |
---|---|---|
committer | Stephen Hemminger <stephen.hemminger@vyatta.com> | 2010-10-11 15:19:40 -0700 |
commit | 011c1d1c0766c65517ebd495465c99e86edb63ec (patch) | |
tree | 30d8f6a13235af90897c3223554871ef52225462 /examples/bashdb/bashdb.el | |
parent | 40cfaccf7b178b6239b5cd0013ef80b7ff8e503e (diff) | |
download | vyatta-bash-011c1d1c0766c65517ebd495465c99e86edb63ec.tar.gz vyatta-bash-011c1d1c0766c65517ebd495465c99e86edb63ec.zip |
Update to bash-4.1
Diffstat (limited to 'examples/bashdb/bashdb.el')
-rw-r--r-- | examples/bashdb/bashdb.el | 177 |
1 files changed, 0 insertions, 177 deletions
diff --git a/examples/bashdb/bashdb.el b/examples/bashdb/bashdb.el deleted file mode 100644 index 40584dd..0000000 --- a/examples/bashdb/bashdb.el +++ /dev/null @@ -1,177 +0,0 @@ -;;; bashdb.el --- Grand Unified Debugger mode for running bashdb -;; Copyright (C) 2000, 2001 Masatake YAMATO - -;; Author: Masatake YAMATO <jet@gyve.org> - -;; This program is free software; you can redistribute it and/or modify it -;; under the terms of the GNU General Public License as published by -;; the Free Software Foundation; either version 2 of the License, or -;; (at your option) any later version. - -;; This program is distributed in the hope that it will be useful, but -;; WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;; GNU General Public License for more details. - -;; You should have received a copy of the GNU General Public License -;; along with this program; if not, write to the Free Software Foundation, -;; Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - -;; Commentary: -;; This program may run on Emacs 21.0.91 and XEmacs 21.1. -;; -;; Put -;; (autoload 'bashdb "bashdb" "Run bashdb" t nil) -;; to your .emacs. -;; M-x bashdb -;; Run bashdb (like this): bashdb target.sh -;; -;; About bashdb: -;; You can get bashdb from -;; http://www.oranda.demon.co.uk/development.html -;; -;; bashdb.el is based on perldb in gud.el in XEmacs 21.1. - -;; Revision: -;; $Revision: 1.6 $ -;; $Log: bashdb.el,v $ -;; Revision 1.6 2001/01/06 12:18:06 masata-y -;; Write note about XEmacs. -;; -;; - - -;;; Code: -(require 'gud) - -;; User customizable variable -(defcustom gud-bashdb-command-name "bashdb" - "File name for executing Bashdb." - :type 'string - :group 'gud) - -;; History of argument lists passed to bashdb. -(defvar gud-bashdb-history nil) - -(defun gud-bashdb-massage-args (file args) - (if xemacsp - (cons (file-name-nondirectory file) args) - args)) - -;; There's no guarantee that Emacs will hand the filter the entire -;; marker at once; it could be broken up across several strings. We -;; might even receive a big chunk with several markers in it. If we -;; receive a chunk of text which looks like it might contain the -;; beginning of a marker, we save it here between calls to the -;; filter. -(if xemacsp - (defvar gud-bashdb-marker-acc "")) -(defun gud-bashdb-marker-acc () - (if xemacsp - gud-bashdb-marker-acc - gud-marker-acc)) -(defun gud-bashdb-marker-acc-quote () - (if xemacsp - 'gud-bashdb-marker-acc - 'gud-marker-acc)) - -(defun gud-bashdb-marker-filter (string) - (save-match-data - (set (gud-bashdb-marker-acc-quote) - (concat (gud-bashdb-marker-acc) string)) - (let ((output "")) - ;; Process all the complete markers in this chunk. - (while (string-match "^\\([^:\n]+\\):\\([0-9]+\\)[ *]*>.*\n" - (gud-bashdb-marker-acc)) - (setq - ;; Extract the frame position from the marker. - gud-last-frame (cons - (substring (gud-bashdb-marker-acc) - (match-beginning 1) - (match-end 1)) - (string-to-int - (substring (gud-bashdb-marker-acc) - (match-beginning 2) - (match-end 2)))) - ;; Append any text before the marker to the output we're going - ;; to return - we don't include the marker in this text. - output (concat output - (substring (gud-bashdb-marker-acc) 0 (match-beginning 0)))) - ;; Set the accumulator to the remaining text. - (set - (gud-bashdb-marker-acc-quote) (substring - (gud-bashdb-marker-acc) (match-end 0)))) - - ;; Does the remaining text look like it might end with the - ;; beginning of another marker? If it does, then keep it in - ;; (gud-bashdb-marker-acc) until we receive the rest of it. Since we - ;; know the full marker regexp above failed, it's pretty simple to - ;; test for marker starts. - (if (string-match "^\\([^:\n]+\\):\\([0-9]+\\)[ *]*>" (gud-bashdb-marker-acc)) - (progn - ;; Everything before the potential marker start can be output. - (setq output (concat output (substring (gud-bashdb-marker-acc) - 0 (match-beginning 0)))) - ;; Everything after, we save, to combine with later input. - (set (gud-bashdb-marker-acc-quote) - (substring (gud-bashdb-marker-acc) (match-beginning 0)))) - - (setq output (concat output (gud-bashdb-marker-acc))) - (set (gud-bashdb-marker-acc-quote) "")) - - output))) - -(defun gud-bashdb-find-file (f) - (find-file-noselect f)) - -;;;###autoload -(defun bashdb (command-line) - "Run bashdb on program FILE in buffer *gud-FILE*. -The directory containing FILE becomes the initial working directory -and source-file directory for your debugger." - (interactive - (if xemacsp - (list (read-from-minibuffer "Run bashdb (like this): " - (if (consp gud-bashdb-history) - (car gud-bashdb-history) - (format "%s " gud-bashdb-command-name)) - nil nil - '(gud-bashdb-history . 1))) - (list (gud-query-cmdline 'bashdb)) - )) - - (if xemacsp - (progn - (gud-overload-functions '((gud-massage-args . gud-bashdb-massage-args) - (gud-marker-filter . gud-bashdb-marker-filter) - (gud-find-file . gud-bashdb-find-file))) - (gud-common-init command-line gud-bashdb-command-name)) - (gud-common-init command-line 'gud-bashdb-massage-args - 'gud-bashdb-marker-filter 'gud-bashdb-find-file) - (set (make-local-variable 'gud-minor-mode) 'bashdb)) - -;; Unsupported commands -;; condition foo set break condition to foo -;; condition clear break condition -;; display EXP evaluate and display EXP for each debug step -;; display show a list of display expressions -;; undisplay N remove display expression N -;; ! string passes string to a shell -;; quit quit - - (gud-def gud-break "break %l" "\C-b" "Set breakpoint at current line.") - (gud-def gud-list-break "break" "b" "List breakpoints & break condition.") - (gud-def gud-remove "delete %l" "\C-d" "Remove breakpoint at current line") - (gud-def gud-remove-all "delete" "d" "Clear all breakpoints") - (gud-def gud-cont "continue" "\C-r" "Continue with display.") - (gud-def gud-next "next" "\C-n" "Step one line (skip functions).") - (gud-def gud-print "print %e" "\C-p" "Evaluate bash expression at point.") - (gud-def gud-help "help" "h" "Show all commands.") - (gud-def gud-trace "trace" "t" "Toggle execution trace on/off") - - (setq comint-prompt-regexp "^bashdb> ") - (setq paragraph-start comint-prompt-regexp) - (run-hooks 'bashdb-mode-hook)) - -(provide 'bashdb) -;; bashdb.el ends here |