changeset 17213:d6eb07a26f03

(sh-case): Define with defun and defvar instead of define-skeleton.
author Richard M. Stallman <rms@gnu.org>
date Sat, 22 Mar 1997 03:53:10 +0000
parents de55dc47bae6
children 15e868121a15
files lisp/progmodes/sh-script.el
diffstat 1 files changed, 46 insertions(+), 39 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/progmodes/sh-script.el	Sat Mar 22 03:52:36 1997 +0000
+++ b/lisp/progmodes/sh-script.el	Sat Mar 22 03:53:10 1997 +0000
@@ -929,47 +929,54 @@
 ;; You are welcome to add the syntax or even completely new statements as
 ;; appropriate for your favorite shell.
 
-(define-skeleton sh-case
-  "Insert a case/switch statement.  See `sh-feature'."
-  (csh "expression: "
-       "switch( " str " )" \n
-       > "case " (read-string "pattern: ") ?: \n
-       > _ \n
-       "breaksw" \n
-       ( "other pattern, %s: "
-	 < "case " str ?: \n
+;; This defun is the same as what define-skeleton does,
+;; but by putting the data in a variable named sh-case,
+;; we make it possible to use that variable in the menu-enable property.
+(defun sh-case (&optional str arg)
+  (interactive "*P\nP")
+  (skeleton-proxy-new sh-case str arg))
+(put 'sh-case 'menu-enable '(sh-feature sh-case))
+
+(defvar sh-case
+  '((csh "expression: "
+	 "switch( " str " )" \n
+	 > "case " (read-string "pattern: ") ?: \n
+	 > _ \n
+	 "breaksw" \n
+	 ( "other pattern, %s: "
+	   < "case " str ?: \n
+	   > _ \n
+	   "breaksw" \n)
+	 < "default:" \n
 	 > _ \n
-	 "breaksw" \n)
-       < "default:" \n
-       > _ \n
-       resume:
-       < < "endsw")
-  (es)
-  (rc "expression: "
-      "switch( " str " ) {" \n
-      > "case " (read-string "pattern: ") \n
-      > _ \n
-      ( "other pattern, %s: "
-	< "case " str \n
-	> _ \n)
-      < "case *" \n
-      > _ \n
-      resume:
-      < < ?})
-  (sh "expression: "
-      "case " str " in" \n
-      > (read-string "pattern: ") ?\) \n
-      > _ \n
-      ";;" \n
-      ( "other pattern, %s: "
-	< str ?\) \n
+	 resume:
+	 < < "endsw")
+    (es)
+    (rc "expression: "
+	"switch( " str " ) {" \n
+	> "case " (read-string "pattern: ") \n
+	> _ \n
+	( "other pattern, %s: "
+	  < "case " str \n
+	  > _ \n)
+	< "case *" \n
 	> _ \n
-	";;" \n)
-      < "*)" \n
-      > _ \n
-      resume:
-      < < "esac"))
-(put 'sh-case 'menu-enable '(sh-feature sh-case))
+	resume:
+	< < ?})
+    (sh "expression: "
+	"case " str " in" \n
+	> (read-string "pattern: ") ?\) \n
+	> _ \n
+	";;" \n
+	( "other pattern, %s: "
+	  < str ?\) \n
+	  > _ \n
+	  ";;" \n)
+	< "*)" \n
+	> _ \n
+	resume:
+	< < "esac"))
+  "Insert a case/switch statement.  See `sh-feature'.")