diff options
Diffstat (limited to 'Build/source/texk/web2c/pdftexdir/pdfstrcmp.ch')
-rw-r--r-- | Build/source/texk/web2c/pdftexdir/pdfstrcmp.ch | 609 |
1 files changed, 0 insertions, 609 deletions
diff --git a/Build/source/texk/web2c/pdftexdir/pdfstrcmp.ch b/Build/source/texk/web2c/pdftexdir/pdfstrcmp.ch deleted file mode 100644 index 071ba74f281..00000000000 --- a/Build/source/texk/web2c/pdftexdir/pdfstrcmp.ch +++ /dev/null @@ -1,609 +0,0 @@ -% Copyright (c) 2005 Han Th\^e\llap{\raise 0.5ex\hbox{\'{}}} Th\`anh, <thanh@pdftex.org> -% -% This file is part of pdfTeX. -% -% pdfTeX is free software; you can redistribute it and/or modify -% it under the terms of the GNU General Public License as published by -% the Free Software Foundation; either version 2 of the License, or -% (at your option) any later version. -% -% pdfTeX is distributed in the hope that it will be useful, -% but WITHOUT ANY WARRANTY; without even the implied warranty of -% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -% GNU General Public License for more details. -% -% You should have received a copy of the GNU General Public License -% along with pdfTeX; if not, write to the Free Software -% Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -% -% $Id: //depot/Build/source.development/TeX/texk/web2c/pdftexdir/pdftex.ch#163 $ -% -% experimental patch to make \pdfstrcmp expandable -% -% put it after tex.pch -% -% x line numbers of file pdfetex-org.web before patch -% -%*********************************************************************** - -@x 9388 -@d pdftex_last_item_codes = pdftex_first_rint_code + 10 {end of \pdfTeX's command codes} -@y -@d pdf_shell_escape_code = pdftex_first_rint_code + 11 {code for \.{\\pdfshellescape}} -@d pdftex_last_item_codes = pdftex_first_rint_code + 11 {end of \pdfTeX's command codes} -@z - -@x 9442 -primitive("pdfelapsedtime",last_item,elapsed_time_code); -@!@:elapsed_time_}{\.{\\pdfelapsedtime} primitive@> -@y -primitive("pdfelapsedtime",last_item,elapsed_time_code); -@!@:elapsed_time_}{\.{\\pdfelapsedtime} primitive@> -primitive("pdfshellescape",last_item,pdf_shell_escape_code); -@!@:elapsed_time_}{\.{\\pdfshellescape} primitive@> -@z - -@x 9470 - elapsed_time_code: print_esc("pdfelapsedtime"); -@y - elapsed_time_code: print_esc("pdfelapsedtime"); - pdf_shell_escape_code: print_esc("pdfshellescape"); -@z - -@x 9561 - elapsed_time_code: cur_val := get_microinterval; -@y - elapsed_time_code: cur_val := get_microinterval; - pdf_shell_escape_code: - begin - if shell_enabled_p then cur_val := 1 - else cur_val := 0; - end; -@z - -@x 10332 -@d pdf_last_escaped_string_code = pdftex_first_expand_code + 7 {command code for \.{\\pdflastescapedstring}} -@d pdf_last_escaped_name_code = pdftex_first_expand_code + 8 {command code for \.{\\pdflastescapename}} -@y -@d pdf_escape_string_code = pdftex_first_expand_code + 7 {command code for \.{\\pdfescapestring}} -@d pdf_escape_name_code = pdftex_first_expand_code + 8 {command code for \.{\\pdfescapename}} -@z - -@x 10336 -@d pdftex_convert_codes = pdftex_first_expand_code + 11 {end of \pdfTeX's command codes} -@y -@d pdf_strcmp_code = pdftex_first_expand_code + 11 {command code for \.{\\pdfstrcmp}} -@d pdf_escape_hex_code = pdftex_first_expand_code + 12 {command code for \.{\\pdfescapehex}} -@d pdf_unescape_hex_code = pdftex_first_expand_code + 13 {command code for \.{\\pdfunescapehex}} -@d pdf_creation_date_code = pdftex_first_expand_code + 14 {command code for \.{\\pdfcreationdate}} -@d pdf_file_mod_date_code = pdftex_first_expand_code + 15 {command code for \.{\\pdffilemoddate}} -@d pdf_file_size_code = pdftex_first_expand_code + 16 {command code for \.{\\pdffilesize}} -@d pdf_mdfive_sum_code = pdftex_first_expand_code + 17 {command code for \.{\\pdfmdfivesum}} -@d pdf_file_dump_code = pdftex_first_expand_code + 18 {command code for \.{\\pdffiledump}} -@d pdf_match_code = pdftex_first_expand_code + 19 {command code for \.{\\pdfmatch}} -@d pdf_last_match_code = pdftex_first_expand_code + 20 {command code for \.{\\pdflastmatch}} -@d pdftex_convert_codes = pdftex_first_expand_code + 21 {end of \pdfTeX's command codes} -@z - -%*********************************************************************** - -@x 10369 -primitive("pdflastescapedstring",convert,pdf_last_escaped_string_code);@/ -@!@:pdf_last_escaped_string_}{\.{\\pdflastescapedstring} primitive@> -primitive("pdflastescapedname",convert,pdf_last_escaped_name_code);@/ -@!@:pdf_last_escaped_name_}{\.{\\pdflastescapedname} primitive@> -@y -primitive("pdfescapestring",convert,pdf_escape_string_code);@/ -@!@:pdf_escape_string_}{\.{\\pdfescapestring} primitive@> -primitive("pdfescapename",convert,pdf_escape_name_code);@/ -@!@:pdf_escape_name_}{\.{\\pdfescapename} primitive@> -primitive("pdfescapehex",convert,pdf_escape_hex_code);@/ -@!@:pdf_escape_hex_}{\.{\\pdfescapehex} primitive@> -primitive("pdfunescapehex",convert,pdf_unescape_hex_code);@/ -@!@:pdf_unescape_hex_}{\.{\\pdfunescapehex} primitive@> -primitive("pdfcreationdate",convert,pdf_creation_date_code);@/ -@!@:pdf_creation_date_}{\.{\\pdfcreationdate} primitive@> -primitive("pdffilemoddate",convert,pdf_file_mod_date_code);@/ -@!@:pdf_file_mod_date_}{\.{\\pdffilemoddate} primitive@> -primitive("pdffilesize",convert,pdf_file_size_code);@/ -@!@:pdf_file_size_}{\.{\\pdffilesize} primitive@> -primitive("pdfmdfivesum",convert,pdf_mdfive_sum_code);@/ -@!@:pdf_mdfive_sum_}{\.{\\pdfmdfivesum} primitive@> -primitive("pdffiledump",convert,pdf_file_dump_code);@/ -@!@:pdf_file_dump_}{\.{\\pdffiledump} primitive@> -primitive("pdfmatch",convert,pdf_match_code);@/ -@!@:pdf_match_}{\.{\\pdfmatch} primitive@> -primitive("pdflastmatch",convert,pdf_last_match_code);@/ -@!@:pdf_last_match_}{\.{\\pdflastmatch} primitive@> -primitive("pdfstrcmp",convert,pdf_strcmp_code);@/ -@!@:pdf_strcmp_}{\.{\\pdfstrcmp} primitive@> -@z - -%*********************************************************************** - -@x 10394 - pdf_last_escaped_string_code: print_esc("pdflastescapedstring"); - pdf_last_escaped_name_code: print_esc("pdflastescapedname"); -@y - pdf_escape_string_code: print_esc("pdfescapestring"); - pdf_escape_name_code: print_esc("pdfescapename"); - pdf_escape_hex_code: print_esc("pdfescapehex"); - pdf_unescape_hex_code: print_esc("pdfunescapehex"); - pdf_creation_date_code: print_esc("pdfcreationdate"); - pdf_file_mod_date_code: print_esc("pdffilemoddate"); - pdf_file_size_code: print_esc("pdffilesize"); - pdf_mdfive_sum_code: print_esc("pdfmdfivesum"); - pdf_file_dump_code: print_esc("pdffiledump"); - pdf_match_code: print_esc("pdfmatch"); - pdf_last_match_code: print_esc("pdflastmatch"); - pdf_strcmp_code: print_esc("pdfstrcmp"); -@z - -%*********************************************************************** - -@x 10403 -@p procedure conv_toks; -var old_setting:0..max_selector; {holds |selector| setting} -p, q: pointer; -@!c:number_code..job_name_code; {desired type of conversion} -@!save_scanner_status:small_number; {|scanner_status| upon entry} -@!b:pool_pointer; {base of temporary string} -@!i, l: integer; {index to access escaped string or name} -begin c:=cur_chr; @<Scan the argument for command |c|@>; -old_setting:=selector; selector:=new_string; b:=pool_ptr; -@<Print the result of command |c|@>; -selector:=old_setting; link(garbage):=str_toks(b); ins_list(link(temp_head)); -end; -@y -@p procedure conv_toks; -label exit; -var old_setting:0..max_selector; {holds |selector| setting} -p, q: pointer; -@!c:number_code..job_name_code; {desired type of conversion} -@!save_scanner_status:small_number; {|scanner_status| upon entry} -@!save_def_ref: pointer; {|def_ref| upon entry, important if inside `\.{\\message}'} -@!save_warning_index: pointer; -@!bool: boolean; {temp boolean} -@!i: integer; {first temp integer} -@!j: integer; {second temp integer} -@!b:pool_pointer; {base of temporary string} -@!s: str_number; {first temp string} -@!t: str_number; {second temp string} -begin c:=cur_chr; @<Scan the argument for command |c|@>; -old_setting:=selector; selector:=new_string; b:=pool_ptr; -@<Print the result of command |c|@>; -selector:=old_setting; link(garbage):=str_toks(b); ins_list(link(temp_head)); -exit:end; -@z - -@x 10450 -pdf_last_escaped_string_code: do_nothing; -pdf_last_escaped_name_code: do_nothing; -job_name_code: if job_name=0 then open_log_file; -@y -pdf_escape_string_code: - begin - save_scanner_status := scanner_status; - save_warning_index := warning_index; - save_def_ref := def_ref; - scan_pdf_ext_toks; - s := tokens_to_string(def_ref); - delete_token_ref(def_ref); - def_ref := save_def_ref; - warning_index := save_warning_index; - scanner_status := save_scanner_status; - b := pool_ptr; - escapestring(str_start[s]); - link(garbage) := str_toks(b); - flush_str(s); - ins_list(link(temp_head)); - return; - end; -pdf_escape_name_code: - begin - save_scanner_status := scanner_status; - save_warning_index := warning_index; - save_def_ref := def_ref; - scan_pdf_ext_toks; - s := tokens_to_string(def_ref); - delete_token_ref(def_ref); - def_ref := save_def_ref; - warning_index := save_warning_index; - scanner_status := save_scanner_status; - b := pool_ptr; - escapename(str_start[s]); - link(garbage) := str_toks(b); - flush_str(s); - ins_list(link(temp_head)); - return; - end; -pdf_escape_hex_code: - begin - save_scanner_status := scanner_status; - save_warning_index := warning_index; - save_def_ref := def_ref; - scan_pdf_ext_toks; - s := tokens_to_string(def_ref); - delete_token_ref(def_ref); - def_ref := save_def_ref; - warning_index := save_warning_index; - scanner_status := save_scanner_status; - b := pool_ptr; - escapehex(str_start[s]); - link(garbage) := str_toks(b); - flush_str(s); - ins_list(link(temp_head)); - return; - end; -pdf_unescape_hex_code: - begin - save_scanner_status := scanner_status; - save_warning_index := warning_index; - save_def_ref := def_ref; - scan_pdf_ext_toks; - s := tokens_to_string(def_ref); - delete_token_ref(def_ref); - def_ref := save_def_ref; - warning_index := save_warning_index; - scanner_status := save_scanner_status; - b := pool_ptr; - unescapehex(str_start[s]); - link(garbage) := str_toks(b); - flush_str(s); - ins_list(link(temp_head)); - return; - end; -pdf_creation_date_code: - begin - b := pool_ptr; - getcreationdate; - link(garbage) := str_toks(b); - ins_list(link(temp_head)); - return; - end; -pdf_file_mod_date_code: - begin - save_scanner_status := scanner_status; - save_warning_index := warning_index; - save_def_ref := def_ref; - scan_pdf_ext_toks; - s := tokens_to_string(def_ref); - delete_token_ref(def_ref); - def_ref := save_def_ref; - warning_index := save_warning_index; - scanner_status := save_scanner_status; - b := pool_ptr; - getfilemoddate(s); - link(garbage) := str_toks(b); - flush_str(s); - ins_list(link(temp_head)); - return; - end; -pdf_file_size_code: - begin - save_scanner_status := scanner_status; - save_warning_index := warning_index; - save_def_ref := def_ref; - scan_pdf_ext_toks; - s := tokens_to_string(def_ref); - delete_token_ref(def_ref); - def_ref := save_def_ref; - warning_index := save_warning_index; - scanner_status := save_scanner_status; - b := pool_ptr; - getfilesize(s); - link(garbage) := str_toks(b); - flush_str(s); - ins_list(link(temp_head)); - return; - end; -pdf_mdfive_sum_code: - begin - save_scanner_status := scanner_status; - save_warning_index := warning_index; - save_def_ref := def_ref; - bool := scan_keyword("file"); - scan_pdf_ext_toks; - s := tokens_to_string(def_ref); - delete_token_ref(def_ref); - def_ref := save_def_ref; - warning_index := save_warning_index; - scanner_status := save_scanner_status; - b := pool_ptr; - getmd5sum(s, bool); - link(garbage) := str_toks(b); - flush_str(s); - ins_list(link(temp_head)); - return; - end; -pdf_file_dump_code: - begin - save_scanner_status := scanner_status; - save_warning_index := warning_index; - save_def_ref := def_ref; - {scan offset} - cur_val := 0; - if (scan_keyword("offset")) then begin - scan_int; - if (cur_val < 0) then begin - print_err("Bad file offset"); -@.Bad file offset@> - help2("A file offset must be between 0 and 2^{31}-1,")@/ - ("I changed this one to zero."); - int_error(cur_val); - cur_val := 0; - end; - end; - i := cur_val; - {scan length} - cur_val := 0; - if (scan_keyword("length")) then begin - scan_int; - if (cur_val < 0) then begin - print_err("Bad dump length"); -@.Bad dump length@> - help2("A dump length must be between 0 and 2^{31}-1,")@/ - ("I changed this one to zero."); - int_error(cur_val); - cur_val := 0; - end; - end; - j := cur_val; - {scan file name} - scan_pdf_ext_toks; - s := tokens_to_string(def_ref); - delete_token_ref(def_ref); - def_ref := save_def_ref; - warning_index := save_warning_index; - scanner_status := save_scanner_status; - b := pool_ptr; - getfiledump(s, i, j); - link(garbage) := str_toks(b); - flush_str(s); - ins_list(link(temp_head)); - return; - end; -pdf_match_code: - begin - save_scanner_status := scanner_status; - save_warning_index := warning_index; - save_def_ref := def_ref; - {scan for icase} - bool := scan_keyword("icase"); - {scan for subcount} - i := -1; {default for subcount} - if scan_keyword("subcount") then begin - scan_int; - i := cur_val; - end; - scan_pdf_ext_toks; - s := tokens_to_string(def_ref); - delete_token_ref(def_ref); - scan_pdf_ext_toks; - t := tokens_to_string(def_ref); - delete_token_ref(def_ref); - def_ref := save_def_ref; - warning_index := save_warning_index; - scanner_status := save_scanner_status; - b := pool_ptr; - matchstrings(s, t, i, bool); - link(garbage) := str_toks(b); - flush_str(t); - flush_str(s); - ins_list(link(temp_head)); - return; - end; -pdf_last_match_code: - begin - scan_int; - if cur_val < 0 then begin - print_err("Bad match number"); -@.Bad match number@> - help2("Since I expected zero or a positive number,")@/ - ("I changed this one to zero."); - int_error(cur_val); - cur_val := 0; - end; - b := pool_ptr; - getmatch(cur_val); - link(garbage) := str_toks(b); - ins_list(link(temp_head)); - return; - end; -pdf_strcmp_code: - begin - save_scanner_status := scanner_status; - save_warning_index := warning_index; - save_def_ref := def_ref; - compare_strings; - def_ref := save_def_ref; - warning_index := save_warning_index; - scanner_status := save_scanner_status; - end; -job_name_code: if job_name=0 then open_log_file; -@z - -%*********************************************************************** - -@x 10512 -pdf_last_escaped_string_code: begin - l := escapedstrlen; - for i := 0 to l - 1 do - print_char(getescapedstrchar(i)); -end; -pdf_last_escaped_name_code: begin - l := escapednamelen; - for i := 0 to l - 1 do - print_char(getescapednamechar(i)); -end; -job_name_code: print(job_name); -@y -pdf_strcmp_code: print_int(cur_val); -job_name_code: print(job_name); -@z - -%*********************************************************************** - -@x 32168 -@d pdf_strcmp_code == pdftex_first_extension_code + 24 -@d pdf_escape_string_code == pdftex_first_extension_code + 25 -@d pdf_escape_name_code == pdftex_first_extension_code + 26 -@d reset_timer_code == pdftex_first_extension_code + 27 -@d pdf_font_expand_code == pdftex_first_extension_code + 28 -@d pdftex_last_extension_code == pdftex_first_extension_code + 28 -@y -@d reset_timer_code == pdftex_first_extension_code + 24 -@d pdf_font_expand_code == pdftex_first_extension_code + 25 -@d pdftex_last_extension_code == pdftex_first_extension_code + 25 -@z - -%*********************************************************************** - -@x 32239 -primitive("pdfstrcmp",extension,pdf_strcmp_code);@/ -@!@:pdf_strcmp_}{\.{\\pdfstrcmp} primitive@> -primitive("pdfescapestring",extension,pdf_escape_string_code);@/ -@!@:pdf_escape_string_}{\.{\\pdfescapestring} primitive@> -primitive("pdfescapename",extension,pdf_escape_name_code);@/ -@!@:pdf_escape_name_}{\.{\\pdfescapename} primitive@> -@y -@z - -%*********************************************************************** - -@x 32287 - pdf_strcmp_code: print_esc("pdfstrcmp"); - pdf_escape_string_code: print_esc("pdfescapestring"); - pdf_escape_name_code: print_esc("pdfescapename"); -@y -@z - -%*********************************************************************** - -@x 32337 -pdf_strcmp_code: @<Implement \.{\\pdfstrcmp}@>; -pdf_escape_string_code: @<Implement \.{\\pdfescapestring}@>; -pdf_escape_name_code: @<Implement \.{\\pdfescapename}@>; -@y -@z - -%*********************************************************************** - -@x 32463 -procedure compare_strings; {to implement \.{\\pdfstrcmp}} -label done; -var s1, s2: str_number; - i1, i2, j1, j2: pool_pointer; - result: integer; -begin - call_func(scan_toks(false, true)); - s1 := tokens_to_string(def_ref); - delete_token_ref(def_ref); - call_func(scan_toks(false, true)); - s2 := tokens_to_string(def_ref); - delete_token_ref(def_ref); - i1 := str_start[s1]; - j1 := str_start[s1 + 1]; - i2 := str_start[s2]; - j2 := str_start[s2 + 1]; - while (i1 < j1) and (i2 < j2) do begin - if str_pool[i1] < str_pool[i2] then begin - result := -1; - goto done; - end; - if str_pool[i1] > str_pool[i2] then begin - result := 1; - goto done; - end; - incr(i1); - incr(i2); - end; - if (i1 = j1) and (i2 = j2) then - result := 0 - else if i1 < j1 then - result := 1 - else - result := -1; -done: - pdf_retval := result; - flush_str(s2); - flush_str(s1); -end; -@y -procedure compare_strings; {to implement \.{\\pdfstrcmp}} -label done; -var s1, s2: str_number; - i1, i2, j1, j2: pool_pointer; -begin - call_func(scan_toks(false, true)); - s1 := tokens_to_string(def_ref); - delete_token_ref(def_ref); - call_func(scan_toks(false, true)); - s2 := tokens_to_string(def_ref); - delete_token_ref(def_ref); - i1 := str_start[s1]; - j1 := str_start[s1 + 1]; - i2 := str_start[s2]; - j2 := str_start[s2 + 1]; - while (i1 < j1) and (i2 < j2) do begin - if str_pool[i1] < str_pool[i2] then begin - cur_val := -1; - goto done; - end; - if str_pool[i1] > str_pool[i2] then begin - cur_val := 1; - goto done; - end; - incr(i1); - incr(i2); - end; - if (i1 = j1) and (i2 = j2) then - cur_val := 0 - else if i1 < j1 then - cur_val := 1 - else - cur_val := -1; -done: - flush_str(s2); - flush_str(s1); - cur_val_level := int_val; -end; -@z - -%*********************************************************************** - -@x 33387 -@ @<Implement \.{\\pdfescapestring}@>= -begin - scan_pdf_ext_toks; - escapestr(tokens_to_string(def_ref)); - flush_str(last_tokens_string); - delete_token_ref(def_ref); -end - -@ @<Implement \.{\\pdfescapename}@>= -begin - scan_pdf_ext_toks; - escapename(tokens_to_string(def_ref)); - flush_str(last_tokens_string); - delete_token_ref(def_ref); -end -@y -@z - -@x 33406 -@ @<Implement \.{\\pdfstrcmp}@>= -compare_strings -@y -@z - -@x 33409 -@ @<Set initial values of key variables@>= - seconds_and_micros(epochseconds,microseconds); -@y -@ @<Set initial values of key variables@>= - seconds_and_micros(epochseconds,microseconds); - init_start_time; -@z - -%*********************************************************************** |