changeset 108282:d951d5810160

* progmodes/cperl-mode.el (cperl-mode-unload-function): New function.
author Juanma Barranquero <lekktu@gmail.com>
date Fri, 07 May 2010 05:21:06 +0200
parents cc30c752cec3
children e7bdc5ae2810 89e25734c87b
files lisp/ChangeLog lisp/progmodes/cperl-mode.el
diffstat 2 files changed, 14 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Fri May 07 05:11:56 2010 +0200
+++ b/lisp/ChangeLog	Fri May 07 05:21:06 2010 +0200
@@ -1,5 +1,7 @@
 2010-05-07  Juanma Barranquero  <lekktu@gmail.com>
 
+	* progmodes/cperl-mode.el (cperl-mode-unload-function): New function.
+
 	Fix use of `filter-buffer-substring' (4th arg NOPROPS removed).
 	* emulation/cua-base.el (cua-repeat-replace-region):
 	* emulation/cua-gmrk.el (cua-copy-region-to-global-mark)
--- a/lisp/progmodes/cperl-mode.el	Fri May 07 05:11:56 2010 +0200
+++ b/lisp/progmodes/cperl-mode.el	Fri May 07 05:21:06 2010 +0200
@@ -8980,6 +8980,18 @@
     (substring v (match-beginning 1) (match-end 1)))
   "Version of IZ-supported CPerl package this file is based on.")
 
+(defun cperl-mode-unload-function ()
+  "Unload the Cperl mode library."
+  (let ((new-mode (if (eq (symbol-function 'perl-mode) 'cperl-mode)
+		      'fundamental-mode
+		    'perl-mode)))
+    (dolist (buf (buffer-list))
+      (with-current-buffer buf
+	(when (eq major-mode 'cperl-mode)
+	  (funcall new-mode)))))
+  ;; continue standard unloading
+  nil)
+
 (provide 'cperl-mode)
 
 ;; arch-tag: 42e5b19b-e187-4537-929f-1a7408980ce6