# HG changeset patch # User Stefan Monnier # Date 1067021908 0 # Node ID 069cb76731fd3bd71ce35efea9786b692e7249d0 # Parent 0def32311484ab815bc401c30c95f41ac9f61756 (octave-comment-start): Simplify. (octave-mode-syntax-table): Add % as a comment starter. (octave-point): Remove. (octave-in-comment-p, octave-in-string-p) (octave-not-in-string-or-comment-p, calculate-octave-indent) (octave-blink-matching-block-open, octave-auto-fill): Use line-(beginning|end)-position instead. diff -r 0def32311484 -r 069cb76731fd lisp/progmodes/octave-mod.el --- a/lisp/progmodes/octave-mod.el Fri Oct 24 12:19:56 2003 +0000 +++ b/lisp/progmodes/octave-mod.el Fri Oct 24 18:58:28 2003 +0000 @@ -1,6 +1,6 @@ ;;; octave-mod.el --- editing Octave source files under Emacs -;; Copyright (C) 1997 Free Software Foundation, Inc. +;; Copyright (C) 1997, 2003 Free Software Foundation, Inc. ;; Author: Kurt Hornik ;; Author: John Eaton @@ -94,7 +94,7 @@ (defvar octave-comment-char ?# "Character to start an Octave comment.") (defvar octave-comment-start - (concat (make-string 1 octave-comment-char) " ") + (string octave-comment-char ?\ ) "String to insert to start a new Octave in-line comment.") (defvar octave-comment-start-skip "\\s<+\\s-*" "Regexp to match the start of an Octave comment up to its body.") @@ -287,10 +287,7 @@ ["Lookup Octave Index" octave-help t]) "Menu for Octave mode.") -(defvar octave-mode-syntax-table nil - "Syntax table in use in octave-mode buffers.") -(if octave-mode-syntax-table - () +(defvar octave-mode-syntax-table (let ((table (make-syntax-table))) (modify-syntax-entry ?\r " " table) (modify-syntax-entry ?+ "." table) @@ -309,10 +306,11 @@ (modify-syntax-entry ?\" "\"" table) (modify-syntax-entry ?. "w" table) (modify-syntax-entry ?_ "w" table) - (modify-syntax-entry ?\% "." table) + (modify-syntax-entry ?\% "<" table) (modify-syntax-entry ?\# "<" table) (modify-syntax-entry ?\n ">" table) - (setq octave-mode-syntax-table table))) + table) + "Syntax table in use in `octave-mode' buffers.") (defcustom octave-auto-indent nil "*Non-nil means indent line after a semicolon or space in Octave mode." @@ -565,33 +563,21 @@ (interactive) (describe-function major-mode)) -(defun octave-point (position) - "Returns the value of point at certain positions." - (save-excursion - (cond - ((eq position 'bol) (beginning-of-line)) - ((eq position 'eol) (end-of-line)) - ((eq position 'boi) (back-to-indentation)) - ((eq position 'bonl) (forward-line 1)) - ((eq position 'bopl) (forward-line -1)) - (t (error "unknown buffer position requested: %s" position))) - (point))) - (defsubst octave-in-comment-p () "Returns t if point is inside an Octave comment, nil otherwise." (interactive) (save-excursion - (nth 4 (parse-partial-sexp (octave-point 'bol) (point))))) + (nth 4 (parse-partial-sexp (line-beginning-position) (point))))) (defsubst octave-in-string-p () "Returns t if point is inside an Octave string, nil otherwise." (interactive) (save-excursion - (nth 3 (parse-partial-sexp (octave-point 'bol) (point))))) + (nth 3 (parse-partial-sexp (line-beginning-position) (point))))) (defsubst octave-not-in-string-or-comment-p () "Returns t iff point is not inside an Octave string or comment." - (let ((pps (parse-partial-sexp (octave-point 'bol) (point)))) + (let ((pps (parse-partial-sexp (line-beginning-position) (point)))) (not (or (nth 3 pps) (nth 4 pps))))) (defun octave-in-block-p () @@ -682,7 +668,7 @@ (back-to-indentation) (setq icol (current-column)) (let ((bot (point)) - (eol (octave-point 'eol))) + (eol (line-end-position))) (while (< (point) eol) (if (octave-not-in-string-or-comment-p) (cond @@ -1017,7 +1003,7 @@ (buffer-substring-no-properties (match-beginning 0) pos) pos (+ pos 1) - eol (octave-point 'eol) + eol (line-end-position) bb-arg (save-excursion (save-restriction @@ -1123,7 +1109,7 @@ (if (save-excursion (skip-syntax-backward " <") (bolp)) - (re-search-forward "[ \t]" (octave-point 'eol) + (re-search-forward "[ \t]" (line-end-position) 'move)) ;; If we're not in a comment line and just ahead the ;; continuation string, don't break here.