--- gforth/gforth.el 1995/09/06 21:00:15 1.13 +++ gforth/gforth.el 1995/11/07 18:06:42 1.17 @@ -1,11 +1,12 @@ -;; This file is part of GNU Emacs. +;; Forth mode for Emacs +;; This file is part of GForth. ;; Changes by anton ;; This is a variant of forth.el that came with TILE. ;; I left most of this stuff untouched and made just a few changes for ;; the things I use (mainly indentation and syntax tables). ;; So there is still a lot of work to do to adapt this to gforth. -;; GNU Emacs is distributed in the hope that it will be useful, +;; GForth is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY. No author or distributor ;; accepts responsibility to anyone for the consequences of using it ;; or for whether it serves any particular purpose or works at all, @@ -15,13 +16,11 @@ ;; Everyone is granted permission to copy, modify and redistribute ;; GNU Emacs, but only under the conditions described in the ;; GNU Emacs General Public License. A copy of this license is -;; supposed to have been given to you along with GNU Emacs so you +;; supposed to have been given to you along with Gforth so you ;; can know your rights and responsibilities. It should be in a ;; file named COPYING. Among other things, the copyright notice ;; and this notice must be preserved on all copies. -;;; $Header: /nfs/unsafe/cvs-repository/src-master/gforth/gforth.el,v 1.13 1995/09/06 21:00:15 pazsan Exp $ - ;;------------------------------------------------------------------- ;; A Forth indentation, documentation search and interaction library ;;------------------------------------------------------------------- @@ -37,19 +36,19 @@ (defvar forth-positives - " : :noname begin do ?do while if ?dup-if ?dup-not-if else case struct [if] [else] " + " : :noname code ;code does> begin do ?do +do -do u+do u-do while if ?dup-if ?dup-0=-if else case struct [if] [else] " "Contains all words which will cause the indent-level to be incremented on the next line. OBS! All words in forth-positives must be surrounded by spaces.") (defvar forth-negatives - " ; until repeat while +loop loop s+loop else then endif again endcase end-struct [then] [else] [endif]" + " ; end-code ;code does> until repeat while +loop loop -loop s+loop else then endif again endcase end-struct [then] [else] [endif]" "Contains all words which will cause the indent-level to be decremented on the current line. OBS! All words in forth-negatives must be surrounded by spaces.") (defvar forth-zeroes - " : :noname " + " : :noname code " "Contains all words which causes the indent to go to zero") (defvar forth-prefixes @@ -240,12 +239,12 @@ programmers who tend to fill code won't (beginning-of-line) (while (and (= (forward-line -1) 0) - (looking-at "[ \t]*\\\\[ \t]+"))) - (if (not (looking-at "[ \t]*\\\\[ \t]+")) + (looking-at "[ \t]*\\\\g?[ \t]+"))) + (if (not (looking-at "[ \t]*\\\\g?[ \t]+")) (forward-line 1)) (let ((from (point)) (to (save-excursion (forward-paragraph) (point)))) - (if (looking-at "[ \t]*\\\\[ \t]+") + (if (looking-at "[ \t]*\\\\g?[ \t]+") (progn (goto-char (match-end 0)) (set-fill-prefix) (fill-region from to nil)))))) @@ -378,7 +377,7 @@ the input stream (comments, arguments, e (defun forth-remove-tracers () "Remove tracers of the form `~~ '. Queries the user for each occurrence." (interactive) - (query-replace "~~ " "")) + (query-replace-regexp "\\(~~ \\| ~~$\\)" "" nil)) (defvar forth-program-name "gforth" "*Program invoked by the `run-forth' command.")