[Top][All Lists]
[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."