summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Build/source/texk/web2c/omegadir/ChangeLog14
-rw-r--r--Build/source/texk/web2c/omegadir/com16bit.ch41
-rw-r--r--Build/source/texk/web2c/omegadir/comsrcspec.ch18
-rw-r--r--Build/source/texk/web2c/omegadir/omcprt.ch11
-rw-r--r--Build/source/texk/web2c/omegadir/omega.mk2
-rw-r--r--Build/source/texk/web2c/omegadir/omegaextra.h2
6 files changed, 65 insertions, 23 deletions
diff --git a/Build/source/texk/web2c/omegadir/ChangeLog b/Build/source/texk/web2c/omegadir/ChangeLog
index 7ede0f3e40b..c0d6577f5bf 100644
--- a/Build/source/texk/web2c/omegadir/ChangeLog
+++ b/Build/source/texk/web2c/omegadir/ChangeLog
@@ -1,3 +1,17 @@
+2009-02-27 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ Backport of changes for Aleph
+
+ * omegaextra.h (BUG_ADDRESS): make consistent.
+ * omcprt.ch (new): do not announce copyright on the terminal.
+ * omage.mk: include omcprt.ch in sources for omega.web.
+ * com16bit.ch (banner_k): just make equivalent to banner,
+ since Web2C announces itself.
+
+ * comsrcspec.ch, com16bit.ch:
+ Use runsystem() instead of system(), etc. See tex.ch entry in
+ ../ChangeLog
+
2008-07-04 Karl Berry <karl@tug.org>
* omega.mk (otps): use @OMEGA@ for otps_programs and otps.
diff --git a/Build/source/texk/web2c/omegadir/com16bit.ch b/Build/source/texk/web2c/omegadir/com16bit.ch
index 94ce8220d62..72aa14e3149 100644
--- a/Build/source/texk/web2c/omegadir/com16bit.ch
+++ b/Build/source/texk/web2c/omegadir/com16bit.ch
@@ -43,7 +43,7 @@
@d banner=='This is Omega, Version 3.1415926-1.23.2.3' {printed when \TeX\ starts}
@y
@d banner=='This is Omega, Version 3.1415926-1.23.2.3' {printed when \TeX\ starts}
-@d banner_k=='This is Omegak, Version 3.1415926-1.23.2.3' {printed when \TeX\ starts}
+@d banner_k==banner {Web2C announces itself}
@z
@x [1.4] l.233 - program header
@@ -1006,7 +1006,7 @@ if_eof_code: begin scan_four_bit_int; b:=(read_open[cur_val]=closed);
end;
@y
if_eof_code: begin scan_four_bit_int_or_18;
- if cur_val=18 then b:=not shell_enabled_p
+ if cur_val=18 then b:=not shellenabledp
else b:=(read_open[cur_val]=closed);
end;
@z
@@ -2357,7 +2357,7 @@ print(" (format="); print(job_name); print_char(" ");
@d setup_bound_var(#)==bound_default:=#; setup_bound_var_end
@d setup_bound_var_end(#)==bound_name:=#; setup_bound_var_end_end
@d setup_bound_var_end_end(#)==
- setup_bound_variable(address_of(#), bound_name, bound_default);
+ setup_bound_variable(addressof(#), bound_name, bound_default);
@p procedure main_body;
begin @!{|start_here|}
@@ -2573,6 +2573,7 @@ begin @<Expand macros in the token list
@y
@!d:integer; {number of characters in incomplete current string}
@!clobbered:boolean; {system string is ok?}
+@!runsystem_ret:integer; {return value from |runsystem|}
begin @<Expand macros in the token list
@z
@@ -2595,34 +2596,39 @@ if j=18 then
{If the log file isn't open yet, we can only send output to the terminal.
Calling |open_log_file| from here seems to result in bad data in the log.}
if not log_opened then selector:=term_only;
- print_nl("system(");
+ print_nl("runsystem(");
for d:=0 to cur_length-1 do
begin {|print| gives up if passed |str_ptr|, so do it by hand.}
print(so(str_pool[str_start(str_ptr)+d])); {N.B.: not |print_char|}
end;
print(")...");
- if shell_enabled_p then
+ if shellenabledp then
begin str_room(1); append_char(0); {Append a null byte to the expansion.}
clobbered:=false;
for d:=0 to cur_length-1 do {Convert to external character set.}
- begin str_pool[str_start(str_ptr)+d]:=xchr[str_pool[str_start(str_ptr)+d]];
- if (str_pool[str_start(str_ptr)+d]=null_code)
- and (d<cur_length-1) then clobbered:=true;
+ begin
+ str_pool[str_start(str_ptr)+d]:=xchr[str_pool[str_start(str_ptr)+d]];
+ if (str_pool[str_start(str_ptr)+d]=null_code)
+ and (d<cur_length-1) then clobbered:=true;
{minimal checking: NUL not allowed in argument string of |system|()}
end;
if clobbered then print("clobbered")
- else begin {We have the string; run system(3). We don't have anything
- reasonable to do with the return status, unfortunately discard it.}
+ else begin {We have the command. See if we're allowed to execute it,
+ and report in the log. We don't check the actual exit status of
+ the command, or do anything with the output.}
for d:=0 to cur_length-1 do {Convert to external character set.}
begin
outside_string_array[d]:=xchr[str_pool[str_start(str_ptr)+d]];
end;
outside_string_array[cur_length]:=null_code;
- system(stringcast(outside_string_array));
- print("executed");
- end;
- end
- else begin print("disabled");
+ runsystem_ret := runsystem(stringcast(outside_string_array));
+ if runsystem_ret = -1 then print("quotation error in system command")
+ else if runsystem_ret = 0 then print("disabled (restricted)")
+ else if runsystem_ret = 1 then print("executed")
+ else if runsystem_ret = 2 then print("executed (allowed)")
+ end;
+ end else begin
+ print("disabled"); {|shellenabledp| false}
end;
print_char("."); print_nl(""); print_ln;
pool_ptr:=str_start(str_ptr); {erase the string}
@@ -2674,7 +2680,7 @@ system-dependent section allows easy integration of Web2c and e-\TeX, etc.)
@<Glob...@>=
@!edit_name_start: pool_pointer; {where the filename to switch to starts}
@!edit_name_length,@!edit_line: integer; {what line to start editing at}
-@!ipc_on: c_int_type; {level of IPC action, 0 for none [default]}
+@!ipc_on: cinttype; {level of IPC action, 0 for none [default]}
@!stop_at_space: boolean; {whether |more_name| returns false for space}
@ The |edit_name_start| will be set to point into |str_pool| somewhere after
@@ -2690,7 +2696,8 @@ strings.
@<Global...@> =
@!save_str_ptr: str_number;
@!save_pool_ptr: pool_pointer;
-@!shell_enabled_p: c_int_type;
+@!shellenabledp: cinttype;
+@!restrictedshell: cinttype;
@!output_comment: ^char;
@!k,l: 0..65535; {used by `Make the first 256 strings', etc.}
diff --git a/Build/source/texk/web2c/omegadir/comsrcspec.ch b/Build/source/texk/web2c/omegadir/comsrcspec.ch
index 17c15263e2c..4656f2ce35c 100644
--- a/Build/source/texk/web2c/omegadir/comsrcspec.ch
+++ b/Build/source/texk/web2c/omegadir/comsrcspec.ch
@@ -7,8 +7,8 @@
@!special_loc:pointer;
@!special_token:halfword;
-@!parse_first_line_p:c_int_type; {parse the first line for options}
-@!file_line_error_style_p:c_int_type; {format messages as file:line:error}
+@!parse_first_line_p:cinttype; {parse the first line for options}
+@!file_line_error_style_p:cinttype; {format messages as file:line:error}
@!halt_on_error_p:boolean; {stop at first error}
@!src_specials_p : boolean;
@@ -35,8 +35,12 @@ else
wterm(version_string);
if format_ident>0 then slow_print(format_ident);
print_ln;
-if shell_enabled_p then begin
- wterm_ln(' \write18 enabled.')
+if shellenabledp then begin
+ wterm(' ');
+ if restrictedshell then begin
+ wterm('restricted ');
+ end;
+ wterm_ln('\write18 enabled.');
end;
if src_specials_p then begin
wterm_ln(' Source specials enabled.')
@@ -96,8 +100,12 @@ then
else
wlog(banner);
wlog(version_string);
-if shell_enabled_p then begin
+if shellenabledp then begin
wlog_cr;
+ wlog(' ');
+ if restrictedshell then begin
+ wlog('restricted ');
+ end;
wlog('\write18 enabled.')
end;
if src_specials_p then begin
diff --git a/Build/source/texk/web2c/omegadir/omcprt.ch b/Build/source/texk/web2c/omegadir/omcprt.ch
new file mode 100644
index 00000000000..a6ab9d581b8
--- /dev/null
+++ b/Build/source/texk/web2c/omegadir/omcprt.ch
@@ -0,0 +1,11 @@
+@x
+wterm_ln('Copyright (c) 1994--2000 John Plaice and Yannis Haralambous');
+@y
+{Let's not announce the copyright on the terminal, nothing else does.}
+@z
+@x
+print_nl("Copyright (c) 1994--2000 John Plaice and Yannis Haralambous");
+@y
+print_nl("Copyright (C) 1994--2000 John Plaice and Yannis Haralambous");
+@z
+
diff --git a/Build/source/texk/web2c/omegadir/omega.mk b/Build/source/texk/web2c/omegadir/omega.mk
index 6a9cb1ebd26..f11b6783045 100644
--- a/Build/source/texk/web2c/omegadir/omega.mk
+++ b/Build/source/texk/web2c/omegadir/omega.mk
@@ -121,6 +121,7 @@ omega.web: omegadir/omocp.ch
omega.web: omegadir/omfilter.ch
omega.web: omegadir/omtrans.ch
omega.web: omegadir/omdir.ch
+omega.web: omegadir/omcprt.ch
omega.web: omegadir/omxml.ch
$(TIE) -m omega.web $(srcdir)/tex.web \
$(srcdir)/omegadir/omnode.ch \
@@ -134,6 +135,7 @@ omega.web: omegadir/omxml.ch
$(srcdir)/omegadir/omfilter.ch \
$(srcdir)/omegadir/omtrans.ch \
$(srcdir)/omegadir/omdir.ch \
+ $(srcdir)/omegadir/omcprt.ch \
$(srcdir)/omegadir/omxml.ch
omega.ch: tie omega.web omegadir/omega.mk
omega.ch: omegadir/comnode.ch
diff --git a/Build/source/texk/web2c/omegadir/omegaextra.h b/Build/source/texk/web2c/omegadir/omegaextra.h
index 9d6c693e5a1..87c80f3a74e 100644
--- a/Build/source/texk/web2c/omegadir/omegaextra.h
+++ b/Build/source/texk/web2c/omegadir/omegaextra.h
@@ -28,7 +28,7 @@ along with Omega; if not, write to the Free Software Foundation, Inc.,
#define COPYRIGHT_HOLDER "J. Plaice and Y. Haralambous"
#define AUTHOR NULL
#define PROGRAM_HELP OMEGAHELP
-#define BUG_ADDRESS "tex-k@mail.tug.org"
+#define BUG_ADDRESS "tex-k@tug.org"
#define DUMP_VAR TEXformatdefault
#define DUMP_LENGTH_VAR formatdefaultlength
#define DUMP_OPTION "fmt"