emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] emacs/lisp ChangeLog progmodes/vhdl-mode.el


From: Stefan Monnier
Subject: [Emacs-diffs] emacs/lisp ChangeLog progmodes/vhdl-mode.el
Date: Mon, 02 Feb 2009 20:49:45 +0000

CVSROOT:        /sources/emacs
Module name:    emacs
Changes by:     Stefan Monnier <monnier>        09/02/02 20:49:44

Modified files:
        lisp           : ChangeLog 
        lisp/progmodes : vhdl-mode.el 

Log message:
        (vhdl-prepare-search-1, vhdl-prepare-search-2): Properly cleanup on 
`quit'.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/emacs/lisp/ChangeLog?cvsroot=emacs&r1=1.15246&r2=1.15247
http://cvs.savannah.gnu.org/viewcvs/emacs/lisp/progmodes/vhdl-mode.el?cvsroot=emacs&r1=1.80&r2=1.81

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/emacs/emacs/lisp/ChangeLog,v
retrieving revision 1.15246
retrieving revision 1.15247
diff -u -b -r1.15246 -r1.15247
--- ChangeLog   2 Feb 2009 20:40:18 -0000       1.15246
+++ ChangeLog   2 Feb 2009 20:49:41 -0000       1.15247
@@ -1,5 +1,8 @@
 2009-02-02  Stefan Monnier  <address@hidden>
 
+       * progmodes/vhdl-mode.el (vhdl-prepare-search-1)
+       (vhdl-prepare-search-2): Properly cleanup on `quit'.
+
        * progmodes/vhdl-mode.el (vhdl-mode-abbrev-table-init):
        Mark the entries as being "system" entries rather than "user" entries.
 

Index: progmodes/vhdl-mode.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/progmodes/vhdl-mode.el,v
retrieving revision 1.80
retrieving revision 1.81
diff -u -b -r1.80 -r1.81
--- progmodes/vhdl-mode.el      2 Feb 2009 20:40:22 -0000       1.80
+++ progmodes/vhdl-mode.el      2 Feb 2009 20:49:44 -0000       1.81
@@ -2328,42 +2328,19 @@
   "Enable case insensitive search and switch to syntax table that includes '_',
 then execute BODY, and finally restore the old environment.  Used for
 consistent searching."
-  `(let ((case-fold-search t)          ; case insensitive search
-        (current-syntax-table (syntax-table))
-        result
-        (restore-prog                  ; program to restore enviroment
-         '(progn
-            ;; restore syntax table
-            (set-syntax-table current-syntax-table))))
+  `(let ((case-fold-search t))         ; case insensitive search
      ;; use extended syntax table
-     (set-syntax-table vhdl-mode-ext-syntax-table)
-     ;; execute BODY safely
-     (setq result
-          (condition-case info
-              (progn ,@body)
-            (error (eval restore-prog) ; restore environment on error
-                   (error (cadr info))))) ; pass error up
-     ;; restore environment
-     (eval restore-prog)
-     result))
+     (with-syntax-table vhdl-mode-ext-syntax-table
+       ,@body)))
 
 (defmacro vhdl-prepare-search-2 (&rest body)
   "Enable case insensitive search, switch to syntax table that includes '_',
 and remove `intangible' overlays, then execute BODY, and finally restore the
 old environment.  Used for consistent searching."
+  ;; FIXME: Why not just let-bind `inhibit-point-motion-hooks'?  --Stef
   `(let ((case-fold-search t)          ; case insensitive search
         (current-syntax-table (syntax-table))
-        result overlay-all-list overlay-intangible-list overlay
-        (restore-prog                  ; program to restore enviroment
-         '(progn
-            ;; restore syntax table
-            (set-syntax-table current-syntax-table)
-            ;; restore `intangible' overlays
-            (when (fboundp 'overlay-lists)
-              (while overlay-intangible-list
-                (overlay-put (car overlay-intangible-list) 'intangible t)
-                (setq overlay-intangible-list
-                      (cdr overlay-intangible-list)))))))
+        overlay-all-list overlay-intangible-list overlay)
      ;; use extended syntax table
      (set-syntax-table vhdl-mode-ext-syntax-table)
      ;; remove `intangible' overlays
@@ -2379,14 +2356,16 @@
           (overlay-put overlay 'intangible nil))
         (setq overlay-all-list (cdr overlay-all-list))))
      ;; execute BODY safely
-     (setq result
-          (condition-case info
+     (unwind-protect
               (progn ,@body)
-            (error (eval restore-prog) ; restore environment on error
-                   (error (cadr info))))) ; pass error up
-     ;; restore environment
-     (eval restore-prog)
-     result))
+       ;; restore syntax table
+       (set-syntax-table current-syntax-table)
+       ;; restore `intangible' overlays
+       (when (fboundp 'overlay-lists)
+         (while overlay-intangible-list
+           (overlay-put (car overlay-intangible-list) 'intangible t)
+           (setq overlay-intangible-list
+                 (cdr overlay-intangible-list)))))))
 
 (defmacro vhdl-visit-file (file-name issue-error &rest body)
   "Visit file FILE-NAME and execute BODY."




reply via email to

[Prev in Thread] Current Thread [Next in Thread]