(sh-case): Define with defun and defvar
authorRichard M. Stallman <rms@gnu.org>
Sat, 22 Mar 1997 03:53:10 +0000 (03:53 +0000)
committerRichard M. Stallman <rms@gnu.org>
Sat, 22 Mar 1997 03:53:10 +0000 (03:53 +0000)
instead of define-skeleton.

lisp/progmodes/sh-script.el

index 7e0e0e3..da6951b 100644 (file)
@@ -929,47 +929,54 @@ region, clear header."
 ;; 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)
-       < "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
+        "breaksw" \n
+        ( "other pattern, %s: "
+          < "case " str ?: \n
+          > _ \n
+          "breaksw" \n)
+        < "default:" \n
+        > _ \n
+        resume:
+        < < "endsw")
+    (es)
+    (rc "expression: "
+       "switch( " str " ) {" \n
+       > "case " (read-string "pattern: ") \n
        > _ \n
-       ";;" \n)
-      < "*)" \n
-      > _ \n
-      resume:
-      < < "esac"))
-(put 'sh-case 'menu-enable '(sh-feature sh-case))
+       ( "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
+         > _ \n
+         ";;" \n)
+       < "*)" \n
+       > _ \n
+       resume:
+       < < "esac"))
+  "Insert a case/switch statement.  See `sh-feature'.")