summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/generic/termmenu
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2015-06-29 00:15:42 +0000
committerKarl Berry <karl@freefriends.org>2015-06-29 00:15:42 +0000
commitd3fb2a6dc958e53b3b9d4e9282794904d32c590c (patch)
tree8e8e384abaa3cb475e0d84fd262b8f6a0304e38c /Master/texmf-dist/tex/generic/termmenu
parent99ab05030fdb929862749f25df2f137362584aef (diff)
termmenu (27jun15)
git-svn-id: svn://tug.org/texlive/trunk@37700 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/generic/termmenu')
-rw-r--r--Master/texmf-dist/tex/generic/termmenu/termmenu.tex152
1 files changed, 152 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/generic/termmenu/termmenu.tex b/Master/texmf-dist/tex/generic/termmenu/termmenu.tex
new file mode 100644
index 00000000000..762f3ced28d
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/termmenu/termmenu.tex
@@ -0,0 +1,152 @@
+%%
+%% This is file `termmenu.tex',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% termmenu.dtx (with options: `package')
+%%
+%% IMPORTANT NOTICE:
+%%
+%% For the copyright see the source file.
+%%
+%% Any modified versions of this file must be renamed
+%% with new filenames distinct from termmenu.tex.
+%%
+%% For distribution of the original source see the terms
+%% for copying and modification in the file termmenu.dtx.
+%%
+%% This generated file may be distributed as long as the
+%% original source files, as listed above, are part of the
+%% same distribution. (The sources need not necessarily be
+%% in the same archive or directory.)
+%%
+%% File: termmenu.dtx Copyright(C) 2015 Sean Allred
+%%
+%% termmenu.dtx may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License (LPPL),
+%% either version 1.3c of this license or (at your option)
+%% any later version. The latest version of this license is
+%% in the file
+%%
+%% http://www.latex-project.org/lppl.txt
+%%
+%% The released version is available from CTAN.
+%%
+%% -----------------------------------------------------------------------
+%%
+%% The development version can be found at
+%%
+%% http://www.github.com/vermiculus/tex-termmenu
+%%
+%% for those people who are interested.
+%%
+%% -----------------------------------------------------------------------
+%%
+\def\ExplFileName{termmenu}
+\def\ExplFileVersion{0.2}
+\def\ExplFileDate{2015-05-25}
+\def\ExplFileDescription{Terminal-driven menu support}
+\def\ExplFileExtension{dtx}
+\cs_set_eq:NN \termmenu_new:N \prop_new:N
+\cs_set_eq:NN \termmenu_show:N \prop_show:N
+\cs_new_nopar:Nn \termmenu_add:Nnnn
+ { \prop_put:Nnn #1 {#2} { {#3} #4 } }
+\tl_new:N \l__termmenu_tmp_tl
+\tl_new:N \l__termmenu_value_tl
+\cs_new_nopar:Nn \termmenu_do:NNNNN
+ {
+ \termmenu_display:N #1
+ \termmenu_prompt:NN #2 #3
+ \termmenu_entry:NVN #1 #2 #4
+ \termmenu_value:NVN #1 #4 #5
+ }
+\cs_new_nopar:Nn \termmenu_do:NNNN
+ {
+ \tl_clear:N \l__termmenu_value_tl
+ \termmenu_do:NNNNN #1 #2 #3 #4 \l__termmenu_value_tl
+ \tl_use:N \l__termmenu_value_tl
+ }
+\cs_new_nopar:Nn \termmenu_do:NNN
+ { \termmenu_do:NNNNN #1 #2 \choice \l__termmenu_tmp_tl #3 }
+\cs_new_nopar:Nn \termmenu_do:NN
+ { \termmenu_do:NNNN #1 \l__termmenu_tmp_tl #2 \l__termmenu_tmp_tl }
+\cs_new_nopar:Nn \termmenu_do:N
+ { \termmenu_do:NN #1 \choice }
+\tl_new:N \l__termmenu_tmp_tl
+\tl_new:N \l__termmenu_value_tl
+\tl_new:N \l__termmenu_spec_tl
+\cs_new_nopar:Nn \termmenu_value:NnN
+ {
+ \prop_get:NnN #1 {#2} \l__termmenu_spec_tl
+ \tl_set:Nf #3 { \tl_tail:N \l__termmenu_spec_tl } %@todo test expansion
+ }
+\cs_generate_variant:Nn \termmenu_value:NnN { NVN }
+\tl_new:N \l__termmenu_doc_tl
+\cs_new_nopar:Nn \termmenu_doc:NnN
+ {
+ \prop_get:NnN #1 {#2} \l__termmenu_spec_tl
+ \tl_set:Nf #3 { \tl_head:N \l__termmenu_spec_tl } %@todo test expansion
+ }
+\tl_new:N \g__termmenu_tmp_tl
+\bool_new:N \g__termmenu_opt_bool
+\cs_new_nopar:Nn \termmenu_entry:NnN
+ {
+ \prop_map_inline:Nn #1
+ {
+ \clist_if_in:nnT {##1} {#2}
+ {
+ \tl_gset:Nn \g__termmenu_tmp_tl {##1}
+ \bool_gset_true:N \g__termmenu_opt_bool
+ \prop_map_break:
+ }
+ }
+ \bool_if:NTF \g__termmenu_opt_bool
+ { \tl_set_eq:NN #3 \g__termmenu_tmp_tl }
+ { \tl_set:Nn #3 { \q_no_value } }
+ \bool_gset_false:N \g__termmenu_opt_bool
+ }
+\cs_generate_variant:Nn \termmenu_entry:NnN { NVN }
+\tl_new:N \l_termmenu_prompt_tl
+\tl_set:Nn \l_termmenu_prompt_tl
+ { The~following~commands~are~available: }
+\cs_new_nopar:Nn \termmenu_prompt:NN
+ {
+ \group_begin:
+ \termmenu_prompt:N #2
+ \exp_args:NNNV \group_end:
+ \tl_set:Nn #1 #2
+ }
+\cs_new_nopar:Nn \termmenu_prompt:N
+ { \ior_get_str:NN \c_term_ior #1 }
+\prop_new:N \g__termmenu_names_prop
+\cs_new_nopar:Nn \termmenu_get_name:NN
+ { \prop_get:NnN \g__termmenu_names_prop {#1} #2 }
+\cs_new_nopar:Nn \termmenu_set_name:Nn
+ { \prop_put:Nnn \g__termmenu_names_prop {#1} {#2} }
+\cs_generate_variant:Nn \iow_term:n { V }
+\cs_generate_variant:Nn \msg_term:n { V }
+\cs_new_nopar:Nn \termmenu_display:N
+ {
+ \termmenu_get_name:NN #1 \l__termmenu_spec_tl
+ \quark_if_no_value:NTF \l__termmenu_spec_tl
+ { \msg_term:n { Menu } }
+ { \msg_term:V \l__termmenu_spec_tl }
+ \iow_term:n { }
+ \iow_term:V \l_termmenu_prompt_tl
+ \iow_term:n { }
+ \prop_map_inline:Nn #1
+ {
+ \clist_set:Nn \l__termmenu_tmp_clist {##1}
+ \termmenu_doc:NnN #1 {##1} \l__termmenu_tmp_tl
+ \iow_wrap:nnnN
+ {
+ \prg_replicate:nn {4} { \iow_char:N \ }
+ > ~ \clist_use:Nn \l__termmenu_tmp_clist { ,~ } \\
+ \tl_use:N \l__termmenu_tmp_tl
+ } { \prg_replicate:nn {8} { \ } } { } \iow_term:n
+ }
+ }
+\endinput
+%%
+%% End of file `termmenu.tex'.