diff options
-rw-r--r-- | INSTALL | 2 | ||||
-rw-r--r-- | NEWS | 6 | ||||
-rw-r--r-- | doc/el_substitute.html | 1 | ||||
-rw-r--r-- | doc/fdswap.html | 2 | ||||
-rw-r--r-- | doc/forbacktickx.html | 2 | ||||
-rw-r--r-- | doc/import.html | 47 | ||||
-rw-r--r-- | doc/index.html | 5 | ||||
-rw-r--r-- | doc/multisubstitute.html | 7 | ||||
-rw-r--r-- | doc/quine-prj-3.txt | 4 | ||||
-rw-r--r-- | doc/upgrade.html | 7 | ||||
-rw-r--r-- | package/deps.mak | 11 | ||||
-rw-r--r-- | package/info | 2 | ||||
-rw-r--r-- | package/modes | 1 | ||||
-rw-r--r-- | package/targets.mak | 1 | ||||
-rw-r--r-- | src/execline/deps-exe/import | 2 | ||||
-rw-r--r-- | src/execline/import.c | 12 | ||||
-rw-r--r-- | src/execline/multisubstitute.c | 6 | ||||
-rw-r--r-- | src/include-local/exlsn.h | 1 | ||||
-rw-r--r-- | src/libexecline/deps-lib/execline | 2 | ||||
-rw-r--r-- | src/libexecline/exlsn_importas.c (renamed from src/libexecline/exlsn_import.c) | 23 |
20 files changed, 37 insertions, 107 deletions
diff --git a/INSTALL b/INSTALL index ac9d1fb..2c96472 100644 --- a/INSTALL +++ b/INSTALL @@ -6,7 +6,7 @@ Build Instructions - A POSIX-compliant C development environment - GNU make version 3.81 or later - - skalibs version 2.6.2.0 or later: http://skarnet.org/software/skalibs/ + - skalibs version 2.6.4.0 or later: http://skarnet.org/software/skalibs/ This software will run on any operating system that implements POSIX.1-2008, available at: diff --git a/NEWS b/NEWS index a29f1ae..089b36d 100644 --- a/NEWS +++ b/NEWS @@ -1,5 +1,11 @@ Changelog for execline. +In 2.5.0.0 +---------- + + - The import command has been removed. + + In 2.3.0.4 ---------- diff --git a/doc/el_substitute.html b/doc/el_substitute.html index 6b72321..84b1985 100644 --- a/doc/el_substitute.html +++ b/doc/el_substitute.html @@ -36,7 +36,6 @@ via <em>substitution commands</em>, namely: </p> <ul> <li> <a href="define.html">define</a> </li> - <li> <a href="import.html">import</a> </li> <li> <a href="importas.html">importas</a> </li> <li> <a href="elglob.html">elglob</a> </li> <li> <a href="elgetpositionals.html">elgetpositionals</a> </li> diff --git a/doc/fdswap.html b/doc/fdswap.html index cc055de..28e62bb 100644 --- a/doc/fdswap.html +++ b/doc/fdswap.html @@ -30,7 +30,7 @@ executes a program. </pre> <p> -<tt>fdswaps</tt> swaps file descriptors numbered <em>fd1</em> and +<tt>fdswap</tt> swaps file descriptors numbered <em>fd1</em> and <em>fd2</em>, then execs into <em>prog</em> with its arguments. </p> diff --git a/doc/forbacktickx.html b/doc/forbacktickx.html index e116be6..9cbcd98 100644 --- a/doc/forbacktickx.html +++ b/doc/forbacktickx.html @@ -76,7 +76,7 @@ split <em>x</em>. </li> <h2> Notes </h2> <ul> - <li> You can start <em>loop...</em> with "import -u <em>variable</em>" + <li> You can start <em>loop...</em> with "importas -u <em>variable</em> <em>variable</em>" to perform variable substitution. </li> <li> forbacktickx is now implemented as a wrapper around the <a href="pipeline.html">pipeline</a> and diff --git a/doc/import.html b/doc/import.html deleted file mode 100644 index 8efcdd1..0000000 --- a/doc/import.html +++ /dev/null @@ -1,47 +0,0 @@ -<html> - <head> - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> - <meta http-equiv="Content-Language" content="en" /> - <title>execline: the import program</title> - <meta name="Description" content="execline: the import program" /> - <meta name="Keywords" content="execline command import environment variable" /> - <!-- <link rel="stylesheet" type="text/css" href="//skarnet.org/default.css" /> --> - </head> -<body> - -<p> -<a href="index.html">execline</a><br /> -<a href="//skarnet.org/software/">Software</a><br /> -<a href="//skarnet.org/">skarnet.org</a> -</p> - -<h1> The <tt>import</tt> program </h1> - -<p> -<tt>import</tt> replaces an environment variable name with its value, -then executes another program. -</p> - -<h2> Interface </h2> - -<pre> - import [ -i | -D <em>default</em> ] [ -u ] [ -s ] [ -C | -c ] [ -n ] [ -d <em>delim</em> ] <em>envvar</em> <em>prog...</em> -</pre> - -<ul> - <li> <tt>import</tt> behaves exactly as -<tt><a href="importas.html">importas</a> <em>envvar</em> <em>envvar</em></t>. -</ul> - -<h2> Notes </h2> - -<ul> - <li> Starting in execline-2.5.0.0, the <tt>import</tt> command is -marked as obsolescent; it will disappear in a future version of execline. -It is recommended to use the <a href="importas.html">importas</a> -command instead. </li> -</ul> - -</body> -</html> diff --git a/doc/index.html b/doc/index.html index aabda00..b730778 100644 --- a/doc/index.html +++ b/doc/index.html @@ -51,7 +51,7 @@ shell's syntax, and has no security issues. <li> A POSIX-compliant system with a standard C development environment </li> <li> GNU make, version 3.81 or later. </li> <li> <a href="//skarnet.org/software/skalibs/">skalibs</a> version -2.6.2.0 or later. It's a build-time requirement. It's also a run-time +2.6.4.0 or later. It's a build-time requirement. It's also a run-time requirement if you link against the shared version of the skalibs library. </li> </ul> @@ -66,7 +66,7 @@ library. </li> <h3> Download </h3> <ul> - <li> The current released version of execline is <a href="execline-2.3.0.4.tar.gz">2.3.0.4</a>. </li> + <li> The current released version of execline is <a href="execline-2.5.0.0.tar.gz">2.5.0.0</a>. </li> <li> Alternatively, you can checkout a copy of the <a href="//git.skarnet.org/cgi-bin/cgit.cgi/execline/">execline git repository</a>: @@ -167,7 +167,6 @@ to your installation: the shebang lines for your system might be something like <ul> <li><a href="define.html">The <tt>define</tt> program</a></li> <li><a href="importas.html">The <tt>importas</tt> program</a></li> -<li><a href="import.html">The <tt>import</tt> program</a></li> <li><a href="elglob.html">The <tt>elglob</tt> program</a></li> <li><a href="elgetpositionals.html">The <tt>elgetpositionals</tt> program</a></li> <li><a href="multidefine.html">The <tt>multidefine</tt> program</a></li> diff --git a/doc/multisubstitute.html b/doc/multisubstitute.html index ecfff9b..99994df 100644 --- a/doc/multisubstitute.html +++ b/doc/multisubstitute.html @@ -34,7 +34,6 @@ its <em>argv</em>, then executes another program. { [ <a href="define.html">define</a> [ -n ] [ -s ] [ -C | -c ] [ -d <em>delim</em> ] <em>variable</em> <em>value</em> ] [ <a href="importas.html">importas</a> [ -i | -D <em>default</em> ] [ -n ] [ -s ] [ -C | -c ] [ -d <em>delim</em> ] <em>variable</em> <em>envvar</em> ] - [ <a href="import.html">import</a> [ -i | -D <em>default</em> ] [ -n ] [ -s ] [ -C | -c ] [ -d <em>delim</em> ] <em>envvar</em> ] [ <a href="elglob.html">elglob</a> [ -v ] [ -w ] [ -s ] [ -m ] [ -e ] [ -0 ] <em>variable</em> <em>pattern</em> ] [ <a href="elgetpositionals.html">elgetpositionals</a> [ -P <em>sharp</em> ] ] [ <a href="multidefine.html">multidefine</a> <em>value</em> { <em>variable...</em> } ] @@ -55,7 +54,7 @@ to learn about the syntax of each substitution command. </li> <h2> Options </h2> <ul> - <li> If an <tt>import</tt> or <tt>importas</tt> directive was given with the + <li> If an <tt>importas</tt> directive was given with the <tt>-i</tt> option, and the looked up variable is undefined, <tt>multisubstitute</tt> will exit 100. </li> </ul> @@ -73,7 +72,7 @@ to learn about the syntax of each substitution command. </li> #!/command/execlineb export A wrong define B ${A} - import A + importas A A echo ${B} </pre> @@ -88,7 +87,7 @@ to learn about the syntax of each substitution command. </li> multisubstitute { define B ${A} - import A + importas A A } echo ${B} </pre> diff --git a/doc/quine-prj-3.txt b/doc/quine-prj-3.txt index e5b5708..799810e 100644 --- a/doc/quine-prj-3.txt +++ b/doc/quine-prj-3.txt @@ -4,10 +4,10 @@ define e ${q}${E}${q} export E $e define q ${b}${q} define b ${b}${b} -import E +importas E E echo $e" export E $e define q \" define b \\ -import E +importas E E echo $e diff --git a/doc/upgrade.html b/doc/upgrade.html index 0c90b8a..861d7e8 100644 --- a/doc/upgrade.html +++ b/doc/upgrade.html @@ -18,6 +18,13 @@ <h1> What has changed in execline </h1> +<h2> in 2.5.0.0 </h2> + +<ul> + <li> skalibs dependency bumped to 2.6.4.0 </li> + <li> The <tt>import</tt> command has been removed. </li> +</ul> + <h2> in 2.3.0.4 </h2> <ul> diff --git a/package/deps.mak b/package/deps.mak index 5495a04..079d518 100644 --- a/package/deps.mak +++ b/package/deps.mak @@ -32,7 +32,6 @@ src/execline/if.o src/execline/if.lo: src/execline/if.c src/include/execline/exe src/execline/ifelse.o src/execline/ifelse.lo: src/execline/ifelse.c src/include/execline/execline.h src/execline/ifte.o src/execline/ifte.lo: src/execline/ifte.c src/include/execline/execline.h src/execline/ifthenelse.o src/execline/ifthenelse.lo: src/execline/ifthenelse.c src/include/execline/execline.h -src/execline/import.o src/execline/import.lo: src/execline/import.c src/include-local/exlsn.h src/execline/importas.o src/execline/importas.lo: src/execline/importas.c src/include-local/exlsn.h src/execline/loopwhilex.o src/execline/loopwhilex.lo: src/execline/loopwhilex.c src/include/execline/execline.h src/execline/multidefine.o src/execline/multidefine.lo: src/execline/multidefine.c src/include-local/exlsn.h @@ -68,7 +67,7 @@ src/libexecline/exlsn_define.o src/libexecline/exlsn_define.lo: src/libexecline/ src/libexecline/exlsn_elglob.o src/libexecline/exlsn_elglob.lo: src/libexecline/exlsn_elglob.c src/include/execline/execline.h src/include-local/exlsn.h src/libexecline/exlsn_exlp.o src/libexecline/exlsn_exlp.lo: src/libexecline/exlsn_exlp.c src/include-local/exlsn.h src/libexecline/exlsn_free.o src/libexecline/exlsn_free.lo: src/libexecline/exlsn_free.c src/include-local/exlsn.h -src/libexecline/exlsn_import.o src/libexecline/exlsn_import.lo: src/libexecline/exlsn_import.c src/include/execline/execline.h src/include-local/exlsn.h +src/libexecline/exlsn_importas.o src/libexecline/exlsn_importas.lo: src/libexecline/exlsn_importas.c src/include/execline/execline.h src/include-local/exlsn.h src/libexecline/exlsn_main.o src/libexecline/exlsn_main.lo: src/libexecline/exlsn_main.c src/include/execline/execline.h src/include-local/exlsn.h src/libexecline/exlsn_multidefine.o src/libexecline/exlsn_multidefine.lo: src/libexecline/exlsn_multidefine.c src/include/execline/execline.h src/include-local/exlsn.h @@ -132,8 +131,6 @@ ifte: EXTRA_LIBS := ${SPAWN_LIB} ifte: src/execline/ifte.o ${LIBEXECLINE} -lskarnet ifthenelse: EXTRA_LIBS := ${SPAWN_LIB} ifthenelse: src/execline/ifthenelse.o ${LIBEXECLINE} -lskarnet -import: EXTRA_LIBS := -import: src/execline/import.o ${LIBEXECLINE} -lskarnet importas: EXTRA_LIBS := importas: src/execline/importas.o ${LIBEXECLINE} -lskarnet loopwhilex: EXTRA_LIBS := ${SPAWN_LIB} @@ -165,9 +162,9 @@ wait: src/execline/wait.o ${LIBEXECLINE} -lskarnet withstdinas: EXTRA_LIBS := withstdinas: src/execline/withstdinas.o -lskarnet ifeq ($(strip $(STATIC_LIBS_ARE_PIC)),) -libexecline.a.xyzzy: src/libexecline/el_execsequence.o src/libexecline/el_getstrict.o src/libexecline/el_parse.o src/libexecline/el_parse_from_buffer.o src/libexecline/el_parse_from_string.o src/libexecline/el_popenv.o src/libexecline/el_pushenv.o src/libexecline/el_semicolon.o src/libexecline/el_spawn0.o src/libexecline/el_spawn1.o src/libexecline/el_substandrun.o src/libexecline/el_substandrun_str.o src/libexecline/el_substitute.o src/libexecline/el_transform.o src/libexecline/el_vardupl.o src/libexecline/exlsn_define.o src/libexecline/exlsn_elglob.o src/libexecline/exlsn_import.o src/libexecline/exlsn_multidefine.o src/libexecline/exlsn_exlp.o src/libexecline/exlsn_main.o src/libexecline/exlsn_free.o src/libexecline/exlp.o +libexecline.a.xyzzy: src/libexecline/el_execsequence.o src/libexecline/el_getstrict.o src/libexecline/el_parse.o src/libexecline/el_parse_from_buffer.o src/libexecline/el_parse_from_string.o src/libexecline/el_popenv.o src/libexecline/el_pushenv.o src/libexecline/el_semicolon.o src/libexecline/el_spawn0.o src/libexecline/el_spawn1.o src/libexecline/el_substandrun.o src/libexecline/el_substandrun_str.o src/libexecline/el_substitute.o src/libexecline/el_transform.o src/libexecline/el_vardupl.o src/libexecline/exlsn_define.o src/libexecline/exlsn_elglob.o src/libexecline/exlsn_importas.o src/libexecline/exlsn_multidefine.o src/libexecline/exlsn_exlp.o src/libexecline/exlsn_main.o src/libexecline/exlsn_free.o src/libexecline/exlp.o else -libexecline.a.xyzzy: src/libexecline/el_execsequence.lo src/libexecline/el_getstrict.lo src/libexecline/el_parse.lo src/libexecline/el_parse_from_buffer.lo src/libexecline/el_parse_from_string.lo src/libexecline/el_popenv.lo src/libexecline/el_pushenv.lo src/libexecline/el_semicolon.lo src/libexecline/el_spawn0.lo src/libexecline/el_spawn1.lo src/libexecline/el_substandrun.lo src/libexecline/el_substandrun_str.lo src/libexecline/el_substitute.lo src/libexecline/el_transform.lo src/libexecline/el_vardupl.lo src/libexecline/exlsn_define.lo src/libexecline/exlsn_elglob.lo src/libexecline/exlsn_import.lo src/libexecline/exlsn_multidefine.lo src/libexecline/exlsn_exlp.lo src/libexecline/exlsn_main.lo src/libexecline/exlsn_free.lo src/libexecline/exlp.lo +libexecline.a.xyzzy: src/libexecline/el_execsequence.lo src/libexecline/el_getstrict.lo src/libexecline/el_parse.lo src/libexecline/el_parse_from_buffer.lo src/libexecline/el_parse_from_string.lo src/libexecline/el_popenv.lo src/libexecline/el_pushenv.lo src/libexecline/el_semicolon.lo src/libexecline/el_spawn0.lo src/libexecline/el_spawn1.lo src/libexecline/el_substandrun.lo src/libexecline/el_substandrun_str.lo src/libexecline/el_substitute.lo src/libexecline/el_transform.lo src/libexecline/el_vardupl.lo src/libexecline/exlsn_define.lo src/libexecline/exlsn_elglob.lo src/libexecline/exlsn_importas.lo src/libexecline/exlsn_multidefine.lo src/libexecline/exlsn_exlp.lo src/libexecline/exlsn_main.lo src/libexecline/exlsn_free.lo src/libexecline/exlp.lo endif libexecline.so.xyzzy: EXTRA_LIBS := -lskarnet -libexecline.so.xyzzy: src/libexecline/el_execsequence.lo src/libexecline/el_getstrict.lo src/libexecline/el_parse.lo src/libexecline/el_parse_from_buffer.lo src/libexecline/el_parse_from_string.lo src/libexecline/el_popenv.lo src/libexecline/el_pushenv.lo src/libexecline/el_semicolon.lo src/libexecline/el_spawn0.lo src/libexecline/el_spawn1.lo src/libexecline/el_substandrun.lo src/libexecline/el_substandrun_str.lo src/libexecline/el_substitute.lo src/libexecline/el_transform.lo src/libexecline/el_vardupl.lo src/libexecline/exlsn_define.lo src/libexecline/exlsn_elglob.lo src/libexecline/exlsn_import.lo src/libexecline/exlsn_multidefine.lo src/libexecline/exlsn_exlp.lo src/libexecline/exlsn_main.lo src/libexecline/exlsn_free.lo src/libexecline/exlp.lo +libexecline.so.xyzzy: src/libexecline/el_execsequence.lo src/libexecline/el_getstrict.lo src/libexecline/el_parse.lo src/libexecline/el_parse_from_buffer.lo src/libexecline/el_parse_from_string.lo src/libexecline/el_popenv.lo src/libexecline/el_pushenv.lo src/libexecline/el_semicolon.lo src/libexecline/el_spawn0.lo src/libexecline/el_spawn1.lo src/libexecline/el_substandrun.lo src/libexecline/el_substandrun_str.lo src/libexecline/el_substitute.lo src/libexecline/el_transform.lo src/libexecline/el_vardupl.lo src/libexecline/exlsn_define.lo src/libexecline/exlsn_elglob.lo src/libexecline/exlsn_importas.lo src/libexecline/exlsn_multidefine.lo src/libexecline/exlsn_exlp.lo src/libexecline/exlsn_main.lo src/libexecline/exlsn_free.lo src/libexecline/exlp.lo diff --git a/package/info b/package/info index 6bfc977..eaf4d83 100644 --- a/package/info +++ b/package/info @@ -1,4 +1,4 @@ package=execline -version=2.3.0.4 +version=2.5.0.0 category=admin package_macro_name=EXECLINE diff --git a/package/modes b/package/modes index adf455e..76ae052 100644 --- a/package/modes +++ b/package/modes @@ -30,7 +30,6 @@ if 0755 ifelse 0755 ifte 0755 ifthenelse 0755 -import 0755 importas 0755 loopwhilex 0755 piperw 0755 diff --git a/package/targets.mak b/package/targets.mak index 73ef16b..678393f 100644 --- a/package/targets.mak +++ b/package/targets.mak @@ -29,7 +29,6 @@ if \ ifelse \ ifte \ ifthenelse \ -import \ importas \ loopwhilex \ multidefine \ diff --git a/src/execline/deps-exe/import b/src/execline/deps-exe/import deleted file mode 100644 index 97021b5..0000000 --- a/src/execline/deps-exe/import +++ /dev/null @@ -1,2 +0,0 @@ -${LIBEXECLINE} --lskarnet diff --git a/src/execline/import.c b/src/execline/import.c deleted file mode 100644 index 7d58f01..0000000 --- a/src/execline/import.c +++ /dev/null @@ -1,12 +0,0 @@ -/* ISC license. */ - -#include <skalibs/strerr2.h> -#include "exlsn.h" - -#define USAGE "import [ -i | -D default ] [ -u ] [ -n ] [ -s ] [ -C | -c ] [ -d delim ] var prog..." - -int main (int argc, char const **argv, char const *const *envp) -{ - PROG = "import" ; - exlsn_main(argc, argv, envp, &exlsn_import, USAGE) ; -} diff --git a/src/execline/multisubstitute.c b/src/execline/multisubstitute.c index 444ea47..c004a41 100644 --- a/src/execline/multisubstitute.c +++ b/src/execline/multisubstitute.c @@ -7,22 +7,20 @@ #define USAGE "see http://skarnet.org/software/execline/multisubstitute.html" -static char const *const commands[8] = +static char const *const commands[] = { "define", "importas", - "import", "elglob", "elgetpositionals", "multidefine", 0 } ; -static exlsnfunc_t_ref const functions[8] = +static exlsnfunc_t_ref const functions[] = { &exlsn_define, &exlsn_importas, - &exlsn_import, &exlsn_elglob, &exlsn_exlp, &exlsn_multidefine, diff --git a/src/include-local/exlsn.h b/src/include-local/exlsn.h index 238bd6b..832a67b 100644 --- a/src/include-local/exlsn.h +++ b/src/include-local/exlsn.h @@ -25,7 +25,6 @@ typedef exlsnfunc_t *exlsnfunc_t_ref ; extern exlsnfunc_t exlsn_define ; extern exlsnfunc_t exlsn_importas ; -extern exlsnfunc_t exlsn_import ; extern exlsnfunc_t exlsn_elglob ; extern exlsnfunc_t exlsn_exlp ; extern exlsnfunc_t exlsn_multidefine ; diff --git a/src/libexecline/deps-lib/execline b/src/libexecline/deps-lib/execline index 13a7352..96d4e18 100644 --- a/src/libexecline/deps-lib/execline +++ b/src/libexecline/deps-lib/execline @@ -15,7 +15,7 @@ el_transform.o el_vardupl.o exlsn_define.o exlsn_elglob.o -exlsn_import.o +exlsn_importas.o exlsn_multidefine.o exlsn_exlp.o exlsn_main.o diff --git a/src/libexecline/exlsn_import.c b/src/libexecline/exlsn_importas.c index 254ab78..d8d9ff6 100644 --- a/src/libexecline/exlsn_import.c +++ b/src/libexecline/exlsn_importas.c @@ -9,7 +9,7 @@ #include <execline/execline.h> #include "exlsn.h" -static int exlsn_import_as (int argc, char const **argv, char const *const *envp, exlsn_t *info, unsigned int as) +int exlsn_importas (int argc, char const **argv, char const *const *envp, exlsn_t *info) { eltransforminfo_t si = ELTRANSFORMINFO_ZERO ; subgetopt_t localopt = SUBGETOPT_ZERO ; @@ -40,18 +40,18 @@ static int exlsn_import_as (int argc, char const **argv, char const *const *envp } argc -= localopt.ind ; argv += localopt.ind ; - if ((unsigned int)argc < 1+as) return -3 ; + if ((unsigned int)argc < 2) return -3 ; if (!*argv[0] || el_vardupl(argv[0], info->vars.s, info->vars.len)) return -2 ; if (!stralloc_catb(&info->vars, argv[0], strlen(argv[0]) + 1)) return -1 ; - x = env_get2(envp, argv[as]) ; + x = env_get2(envp, argv[1]) ; if (!x) { - if (insist) strerr_dienotset(100, argv[as]) ; + if (insist) strerr_dienotset(100, argv[1]) ; x = defaultval ; } else if (unexport) { - if (!stralloc_catb(&info->modifs, argv[as], strlen(argv[as]) + 1)) goto err ; + if (!stralloc_catb(&info->modifs, argv[1], strlen(argv[1]) + 1)) goto err ; } if (!x) blah.n = 0 ; else @@ -63,21 +63,10 @@ static int exlsn_import_as (int argc, char const **argv, char const *const *envp blah.n = r ; } if (!genalloc_append(elsubst_t, &info->data, &blah)) goto err ; - return localopt.ind + 1 + as ; + return localopt.ind + 2 ; err: info->vars.len = blah.var ; info->values.len = blah.value ; return -1 ; } - -int exlsn_import (int argc, char const **argv, char const *const *envp, exlsn_t *info) -{ - strerr_warnw1x("the import command and directive are obsolescent, please use importas instead!") ; - return exlsn_import_as(argc, argv, envp, info, 0) ; -} - -int exlsn_importas (int argc, char const **argv, char const *const *envp, exlsn_t *info) -{ - return exlsn_import_as(argc, argv, envp, info, 1) ; -} |