diff options
Diffstat (limited to 'Build/source/texk/web2c/eptexdir/pdfstrcmp.ch')
-rw-r--r-- | Build/source/texk/web2c/eptexdir/pdfstrcmp.ch | 193 |
1 files changed, 0 insertions, 193 deletions
diff --git a/Build/source/texk/web2c/eptexdir/pdfstrcmp.ch b/Build/source/texk/web2c/eptexdir/pdfstrcmp.ch deleted file mode 100644 index cc47696042a..00000000000 --- a/Build/source/texk/web2c/eptexdir/pdfstrcmp.ch +++ /dev/null @@ -1,193 +0,0 @@ -% For LaTeX3 -% borrowed from pdftex.web -% -@x -@d etex_convert_codes=etex_convert_base+1 {end of \eTeX's command codes} -@y -@d pdf_strcmp_code=etex_convert_base+1 {command code for \.{\\pdfstrcmp}} -@d etex_convert_codes=etex_convert_base+2 {end of \eTeX's command codes} -@z - -@x - eTeX_revision_code: print_esc("eTeXrevision"); -@y - eTeX_revision_code: print_esc("eTeXrevision"); - pdf_strcmp_code: print_esc("pdfstrcmp"); -@z - -@x -@p procedure conv_toks; -@y - -The extra temp string |u| is needed because |pdf_scan_ext_toks| incorporates -any pending string in its output. In order to save such a pending string, -we have to create a temporary string that is destroyed immediately after. - -@d save_cur_string==if str_start[str_ptr]<pool_ptr then u:=make_string else u:=0 -@d restore_cur_string==if u<>0 then decr(str_ptr) - -@p procedure conv_toks; -@z - -@x -@!save_scanner_status:small_number; {|scanner_status| upon entry} -@y -@!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; -@} -@!u: str_number; {saved current string string} -@z - -@x -begin c:=cur_chr; @<Scan the argument for command |c|@>; -@y -begin c:=cur_chr; @<Scan the argument for command |c|@>; -u:=0; { will become non-nil if a string is already being built} -@z - -@x -eTeX_revision_code: do_nothing; -@y -eTeX_revision_code: do_nothing; -pdf_strcmp_code: - begin - save_scanner_status := scanner_status; - save_def_ref := def_ref; - save_cur_string; - compare_strings; - def_ref := save_def_ref; - scanner_status := save_scanner_status; - restore_cur_string; - end; -@z - -@x -eTeX_revision_code: print(eTeX_revision); -@y -eTeX_revision_code: print(eTeX_revision); -pdf_strcmp_code: print_int(cur_val); -@z - -@x -fix_date_and_time;@/ -@y -fix_date_and_time;@/ -isprint_utf8:=false; -@z - -@x -primitive("eTeXrevision",convert,eTeX_revision_code);@/ -@!@:eTeX_revision_}{\.{\\eTeXrevision} primitive@> -@y -primitive("eTeXrevision",convert,eTeX_revision_code);@/ -@!@:eTeX_revision_}{\.{\\eTeXrevision} primitive@> -primitive("pdfstrcmp",convert,pdf_strcmp_code);@/ -@!@:pdf_strcmp_}{\.{\\pdfstrcmp} primitive@> -@z - -@x -procedure print_kanji(@!s:KANJI_code); {prints a single character} -begin -if s>255 then - begin print_char(Hi(s)); print_char(Lo(s)); - end else print_char(s); -end; -@y -procedure print_kanji(@!s:integer); {prints a single character} -begin -if s>255 then begin - if isprint_utf8 then begin - s:=UCStoUTF8(toUCS(s)); - if BYTE1(s)<>0 then print_char(BYTE1(s)); - if BYTE2(s)<>0 then print_char(BYTE2(s)); - if BYTE3(s)<>0 then print_char(BYTE3(s)); - print_char(BYTE4(s)); - end - else begin print_char(Hi(s)); print_char(Lo(s)); end; -end -else print_char(s); -end; -@z - -@x -@* \[54] System-dependent changes. -@y -@* \[54/pdf\TeX] System-dependent changes for {\tt\char"5Cpdfstrcmp}. -@d call_func(#) == begin if # <> 0 then do_nothing end -@d flushable(#) == (# = str_ptr - 1) - -@<Glob...@>= -@!isprint_utf8: boolean; - -@ @<Declare procedures needed in |do_ext...@>= -procedure pdf_error(t, p: str_number); -begin - normalize_selector; - print_err("pdfTeX error"); - if t <> 0 then begin - print(" ("); - print(t); - print(")"); - end; - print(": "); print(p); - succumb; -end; -procedure flush_str(s: str_number); {flush a string if possible} -begin - if flushable(s) then - flush_string; -end; -function tokens_to_string(p: pointer): str_number; {return a string from tokens -list} -begin - if selector = new_string then - pdf_error("tokens", "tokens_to_string() called while selector = new_string"); - old_setting:=selector; selector:=new_string; - show_token_list(link(p),null,pool_size-pool_ptr); - selector:=old_setting; - tokens_to_string := make_string; -end; - -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)); - isprint_utf8:=true; s1 := tokens_to_string(def_ref); isprint_utf8:=false; - delete_token_ref(def_ref); - call_func(scan_toks(false, true)); - isprint_utf8:=true; s2 := tokens_to_string(def_ref); isprint_utf8:=false; - 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; - -@* \[54] System-dependent changes. -@z |