Commit ff9c1682 authored by Richard M. Stallman's avatar Richard M. Stallman
Browse files

(sh-case): Define with defun and defvar

instead of define-skeleton.
parent 14b6a8e1
......@@ -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'.")
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment