2019-03-17 14:40:57 +02:00
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
< html >
< head >
< title > 2/css< / title >
< meta http-equiv = "Content-Type" content = "text/html; charset=utf-8" >
< meta http-equiv = "Content-Language" content = "en-gb" >
< link href = "inweb.css" rel = "stylesheet" rev = "stylesheet" type = "text/css" >
< / head >
< body >
<!-- Weave of '3/iu' generated by 7 -->
< ul class = "crumbs" > < li > < a href = "../webs.html" > ★ < / a > < / li > < li > < a href = "index.html" > indoc 4< / a > < / li > < li > < a href = "index.html#3" > Chapter 3: Indexing< / a > < / li > < li > < b > Indexing Utilities< / b > < / li > < / ul > < p class = "purpose" > Some conveniences shared by our different forms of index.< / p >
< ul class = "toc" > < li > < a href = "#SP1" > § 1. Top and tail< / a > < / li > < li > < a href = "#SP3" > § 3. Alphabetisation< / a > < / li > < / ul > < hr class = "tocbar" >
< p class = "inwebparagraph" > < a id = "SP1" > < / a > < b > § 1. Top and tail. < / b > < / p >
< pre class = "display" >
< span class = "reserved" > text_stream< / span > < span class = "plain" > < / span > < span class = "identifier" > index_stream< / span > < span class = "plain" > ;< / span >
< span class = "reserved" > text_stream< / span > < span class = "plain" > *< / span > < span class = "functiontext" > IndexUtilities::open_page< / span > < span class = "plain" > (< / span > < span class = "reserved" > text_stream< / span > < span class = "plain" > *< / span > < span class = "identifier" > title< / span > < span class = "plain" > , < / span > < span class = "reserved" > text_stream< / span > < span class = "plain" > *< / span > < span class = "identifier" > leafname< / span > < span class = "plain" > ) {< / span >
< span class = "reserved" > filename< / span > < span class = "plain" > *< / span > < span class = "identifier" > F< / span > < span class = "plain" > = < / span > < span class = "functiontext" > Filenames::in_folder< / span > < span class = "plain" > (< / span > < span class = "identifier" > indoc_settings< / span > < span class = "plain" > -< / span > < span class = "element" > > destination< / span > < span class = "plain" > , < / span > < span class = "identifier" > leafname< / span > < span class = "plain" > );< / span >
< span class = "reserved" > if< / span > < span class = "plain" > (< / span > < span class = "identifier" > indoc_settings< / span > < span class = "plain" > -< / span > < span class = "element" > > wrapper< / span > < span class = "plain" > == < / span > < span class = "constant" > WRAPPER_epub< / span > < span class = "plain" > )< / span >
< span class = "functiontext" > Epub::note_page< / span > < span class = "plain" > (< / span > < span class = "identifier" > indoc_settings< / span > < span class = "plain" > -< / span > < span class = "element" > > ebook< / span > < span class = "plain" > , < / span > < span class = "identifier" > F< / span > < span class = "plain" > , < / span > < span class = "identifier" > title< / span > < span class = "plain" > , < / span > < span class = "identifier" > I< / span > < span class = "string" > "index"< / span > < span class = "plain" > );< / span >
< span class = "reserved" > text_stream< / span > < span class = "plain" > *< / span > < span class = "identifier" > OUT< / span > < span class = "plain" > = & < / span > < span class = "identifier" > index_stream< / span > < span class = "plain" > ;< / span >
< span class = "reserved" > if< / span > < span class = "plain" > (< / span > < span class = "functiontext" > Streams::open_to_file< / span > < span class = "plain" > (< / span > < span class = "identifier" > OUT< / span > < span class = "plain" > , < / span > < span class = "identifier" > F< / span > < span class = "plain" > , < / span > < span class = "constant" > UTF8_ENC< / span > < span class = "plain" > ) == < / span > < span class = "constant" > FALSE< / span > < span class = "plain" > )< / span >
< span class = "functiontext" > Errors::fatal_with_file< / span > < span class = "plain" > (< / span > < span class = "string" > "can't write index page file"< / span > < span class = "plain" > , < / span > < span class = "identifier" > F< / span > < span class = "plain" > );< / span >
< span class = "identifier" > TEMPORARY_TEXT< / span > < span class = "plain" > (< / span > < span class = "identifier" > head< / span > < span class = "plain" > );< / span >
< span class = "functiontext" > HTMLUtilities::get_tt_matter< / span > < span class = "plain" > (< / span > < span class = "identifier" > head< / span > < span class = "plain" > , 1, 1);< / span >
< span class = "reserved" > if< / span > < span class = "plain" > (< / span > < span class = "functiontext" > Str::len< / span > < span class = "plain" > (< / span > < span class = "identifier" > head< / span > < span class = "plain" > ) > 0) {< / span >
< span class = "identifier" > wchar_t< / span > < span class = "plain" > < / span > < span class = "identifier" > replacement< / span > < span class = "plain" > [1024];< / span >
< span class = "identifier" > TEMPORARY_TEXT< / span > < span class = "plain" > (< / span > < span class = "identifier" > rep< / span > < span class = "plain" > );< / span >
< span class = "identifier" > WRITE_TO< / span > < span class = "plain" > (< / span > < span class = "identifier" > rep< / span > < span class = "plain" > , < / span > < span class = "string" > "< title> Inform 7 - %S< /title> "< / span > < span class = "plain" > , < / span > < span class = "identifier" > title< / span > < span class = "plain" > );< / span >
< span class = "functiontext" > Str::copy_to_wide_string< / span > < span class = "plain" > (< / span > < span class = "identifier" > replacement< / span > < span class = "plain" > , < / span > < span class = "identifier" > rep< / span > < span class = "plain" > , 1024);< / span >
< span class = "identifier" > DISCARD_TEXT< / span > < span class = "plain" > (< / span > < span class = "identifier" > rep< / span > < span class = "plain" > );< / span >
< span class = "functiontext" > Regexp::replace< / span > < span class = "plain" > (< / span > < span class = "identifier" > head< / span > < span class = "plain" > , < / span > < span class = "identifier" > L< / span > < span class = "string" > "%[SUBHEADING%]"< / span > < span class = "plain" > , < / span > < span class = "identifier" > NULL< / span > < span class = "plain" > , < / span > < span class = "constant" > REP_REPEATING< / span > < span class = "plain" > );< / span >
< span class = "functiontext" > Regexp::replace< / span > < span class = "plain" > (< / span > < span class = "identifier" > head< / span > < span class = "plain" > , < / span > < span class = "identifier" > L< / span > < span class = "string" > "< title> %c*< /title> "< / span > < span class = "plain" > , < / span > < span class = "identifier" > replacement< / span > < span class = "plain" > , < / span > < span class = "constant" > REP_REPEATING< / span > < span class = "plain" > );< / span >
< span class = "identifier" > WRITE< / span > < span class = "plain" > (< / span > < span class = "string" > "%S"< / span > < span class = "plain" > , < / span > < span class = "identifier" > head< / span > < span class = "plain" > );< / span >
< span class = "plain" > } < / span > < span class = "reserved" > else< / span > < span class = "plain" > {< / span >
< span class = "functiontext" > HTMLUtilities::begin_file< / span > < span class = "plain" > (< / span > < span class = "identifier" > OUT< / span > < span class = "plain" > , < / span > < span class = "identifier" > volumes< / span > < span class = "plain" > [0]);< / span >
< span class = "functiontext" > HTMLUtilities::write_title< / span > < span class = "plain" > (< / span > < span class = "identifier" > OUT< / span > < span class = "plain" > , < / span > < span class = "identifier" > title< / span > < span class = "plain" > );< / span >
< span class = "functiontext" > HTML::end_head< / span > < span class = "plain" > (< / span > < span class = "identifier" > OUT< / span > < span class = "plain" > );< / span >
< span class = "functiontext" > HTML::begin_body< / span > < span class = "plain" > (< / span > < span class = "identifier" > OUT< / span > < span class = "plain" > , < / span > < span class = "identifier" > I< / span > < span class = "string" > "paper papertint"< / span > < span class = "plain" > );< / span >
< span class = "plain" > }< / span >
< span class = "identifier" > DISCARD_TEXT< / span > < span class = "plain" > (< / span > < span class = "identifier" > head< / span > < span class = "plain" > );< / span >
< span class = "functiontext" > Nav::render_navigation_index_top< / span > < span class = "plain" > (< / span > < span class = "identifier" > OUT< / span > < span class = "plain" > , < / span > < span class = "identifier" > leafname< / span > < span class = "plain" > , < / span > < span class = "identifier" > title< / span > < span class = "plain" > );< / span >
< span class = "reserved" > return< / span > < span class = "plain" > < / span > < span class = "identifier" > OUT< / span > < span class = "plain" > ;< / span >
< span class = "plain" > }< / span >
< / pre >
< p class = "inwebparagraph" > < / p >
< p class = "endnote" > The function IndexUtilities::open_page is used in 3/cai (< a href = "3-cai.html#SP9" > § 9< / a > ), 3/ei (< a href = "3-ei.html#SP3" > § 3< / a > , < a href = "3-ei.html#SP5" > § 5< / a > , < a href = "3-ei.html#SP6" > § 6< / a > ).< / p >
< p class = "inwebparagraph" > < a id = "SP2" > < / a > < b > § 2. < / b > < / p >
< pre class = "display" >
< span class = "reserved" > void< / span > < span class = "plain" > < / span > < span class = "functiontext" > IndexUtilities::close_page< / span > < span class = "plain" > (< / span > < span class = "constant" > OUTPUT_STREAM< / span > < span class = "plain" > ) {< / span >
< span class = "identifier" > TEMPORARY_TEXT< / span > < span class = "plain" > (< / span > < span class = "identifier" > tail< / span > < span class = "plain" > );< / span >
< span class = "functiontext" > HTMLUtilities::get_tt_matter< / span > < span class = "plain" > (< / span > < span class = "identifier" > tail< / span > < span class = "plain" > , 1, 0);< / span >
< span class = "reserved" > if< / span > < span class = "plain" > (< / span > < span class = "functiontext" > Str::len< / span > < span class = "plain" > (< / span > < span class = "identifier" > tail< / span > < span class = "plain" > ) > 0) < / span > < span class = "identifier" > WRITE< / span > < span class = "plain" > (< / span > < span class = "string" > "%S"< / span > < span class = "plain" > , < / span > < span class = "identifier" > tail< / span > < span class = "plain" > );< / span >
< span class = "reserved" > else< / span > < span class = "plain" > < / span > < span class = "functiontext" > HTML::end_body< / span > < span class = "plain" > (< / span > < span class = "identifier" > OUT< / span > < span class = "plain" > );< / span >
< span class = "functiontext" > Streams::close< / span > < span class = "plain" > (< / span > < span class = "identifier" > OUT< / span > < span class = "plain" > );< / span >
< span class = "plain" > }< / span >
< / pre >
< p class = "inwebparagraph" > < / p >
< p class = "endnote" > The function IndexUtilities::close_page is used in 3/cai (< a href = "3-cai.html#SP9" > § 9< / a > ), 3/ei (< a href = "3-ei.html#SP3" > § 3< / a > , < a href = "3-ei.html#SP5" > § 5< / a > , < a href = "3-ei.html#SP6" > § 6< / a > ).< / p >
< p class = "inwebparagraph" > < a id = "SP3" > < / a > < b > § 3. Alphabetisation. < / b > We flatten the casing and remove the singular articles; we count small
numbers as words, so that "3 Wise Monkeys" is filed as if it were "Three
Wise Monkeys"; with parts of multipart examples, such as "Disappointment
Bay 3", we insert a 0 before the 3 so that up to 99 parts can appear and
alphabetical sorting will agree with numerical.
< / p >
< pre class = "display" >
< span class = "reserved" > dictionary< / span > < span class = "plain" > *< / span > < span class = "identifier" > alphabetisation_exceptions< / span > < span class = "plain" > = < / span > < span class = "identifier" > NULL< / span > < span class = "plain" > ; < / span > < span class = "comment" > hash of lemmas with unusual alphabetisations< / span >
< span class = "reserved" > void< / span > < span class = "plain" > < / span > < span class = "functiontext" > IndexUtilities::alphabetisation_exception< / span > < span class = "plain" > (< / span > < span class = "reserved" > text_stream< / span > < span class = "plain" > *< / span > < span class = "identifier" > term< / span > < span class = "plain" > , < / span > < span class = "reserved" > text_stream< / span > < span class = "plain" > *< / span > < span class = "identifier" > alphabetise_as< / span > < span class = "plain" > ) {< / span >
< span class = "reserved" > if< / span > < span class = "plain" > (< / span > < span class = "identifier" > alphabetisation_exceptions< / span > < span class = "plain" > == < / span > < span class = "identifier" > NULL< / span > < span class = "plain" > )< / span >
< span class = "identifier" > alphabetisation_exceptions< / span > < span class = "plain" > = < / span > < span class = "functiontext" > Dictionaries::new< / span > < span class = "plain" > (100, < / span > < span class = "constant" > TRUE< / span > < span class = "plain" > );< / span >
< span class = "reserved" > text_stream< / span > < span class = "plain" > *< / span > < span class = "identifier" > val< / span > < span class = "plain" > = < / span > < span class = "functiontext" > Dictionaries::create_text< / span > < span class = "plain" > (< / span > < span class = "identifier" > alphabetisation_exceptions< / span > < span class = "plain" > , < / span > < span class = "identifier" > term< / span > < span class = "plain" > );< / span >
< span class = "functiontext" > Str::copy< / span > < span class = "plain" > (< / span > < span class = "identifier" > val< / span > < span class = "plain" > , < / span > < span class = "identifier" > alphabetise_as< / span > < span class = "plain" > );< / span >
< span class = "plain" > }< / span >
< span class = "reserved" > void< / span > < span class = "plain" > < / span > < span class = "functiontext" > IndexUtilities::improve_alphabetisation< / span > < span class = "plain" > (< / span > < span class = "reserved" > text_stream< / span > < span class = "plain" > *< / span > < span class = "identifier" > sort_key< / span > < span class = "plain" > ) {< / span >
< span class = "reserved" > text_stream< / span > < span class = "plain" > *< / span > < span class = "identifier" > alph< / span > < span class = "plain" > = < / span > < span class = "functiontext" > Dictionaries::get_text< / span > < span class = "plain" > (< / span > < span class = "identifier" > alphabetisation_exceptions< / span > < span class = "plain" > , < / span > < span class = "identifier" > sort_key< / span > < span class = "plain" > );< / span >
< span class = "reserved" > if< / span > < span class = "plain" > (< / span > < span class = "functiontext" > Str::len< / span > < span class = "plain" > (< / span > < span class = "identifier" > alph< / span > < span class = "plain" > ) > 0) {< / span >
< span class = "functiontext" > Str::copy< / span > < span class = "plain" > (< / span > < span class = "identifier" > sort_key< / span > < span class = "plain" > , < / span > < span class = "identifier" > alph< / span > < span class = "plain" > );< / span >
< span class = "identifier" > LOOP_THROUGH_TEXT< / span > < span class = "plain" > (< / span > < span class = "identifier" > pos< / span > < span class = "plain" > , < / span > < span class = "identifier" > sort_key< / span > < span class = "plain" > )< / span >
< span class = "functiontext" > Str::put< / span > < span class = "plain" > (< / span > < span class = "identifier" > pos< / span > < span class = "plain" > , < / span > < span class = "functiontext" > Characters::tolower< / span > < span class = "plain" > (< / span > < span class = "functiontext" > Str::get< / span > < span class = "plain" > (< / span > < span class = "identifier" > pos< / span > < span class = "plain" > )));< / span >
< span class = "plain" > } < / span > < span class = "reserved" > else< / span > < span class = "plain" > {< / span >
< span class = "identifier" > LOOP_THROUGH_TEXT< / span > < span class = "plain" > (< / span > < span class = "identifier" > pos< / span > < span class = "plain" > , < / span > < span class = "identifier" > sort_key< / span > < span class = "plain" > )< / span >
< span class = "functiontext" > Str::put< / span > < span class = "plain" > (< / span > < span class = "identifier" > pos< / span > < span class = "plain" > , < / span > < span class = "functiontext" > Characters::tolower< / span > < span class = "plain" > (< / span > < span class = "functiontext" > Str::get< / span > < span class = "plain" > (< / span > < span class = "identifier" > pos< / span > < span class = "plain" > )));< / span >
< span class = "functiontext" > Regexp::replace< / span > < span class = "plain" > (< / span > < span class = "identifier" > sort_key< / span > < span class = "plain" > , < / span > < span class = "identifier" > L< / span > < span class = "string" > "a "< / span > < span class = "plain" > , < / span > < span class = "identifier" > NULL< / span > < span class = "plain" > , < / span > < span class = "constant" > REP_ATSTART< / span > < span class = "plain" > );< / span >
< span class = "functiontext" > Regexp::replace< / span > < span class = "plain" > (< / span > < span class = "identifier" > sort_key< / span > < span class = "plain" > , < / span > < span class = "identifier" > L< / span > < span class = "string" > "an "< / span > < span class = "plain" > , < / span > < span class = "identifier" > NULL< / span > < span class = "plain" > , < / span > < span class = "constant" > REP_ATSTART< / span > < span class = "plain" > );< / span >
< span class = "functiontext" > Regexp::replace< / span > < span class = "plain" > (< / span > < span class = "identifier" > sort_key< / span > < span class = "plain" > , < / span > < span class = "identifier" > L< / span > < span class = "string" > "the "< / span > < span class = "plain" > , < / span > < span class = "identifier" > NULL< / span > < span class = "plain" > , < / span > < span class = "constant" > REP_ATSTART< / span > < span class = "plain" > );< / span >
< span class = "identifier" > LOOP_THROUGH_TEXT< / span > < span class = "plain" > (< / span > < span class = "identifier" > pos< / span > < span class = "plain" > , < / span > < span class = "identifier" > sort_key< / span > < span class = "plain" > )< / span >
< span class = "functiontext" > Str::put< / span > < span class = "plain" > (< / span > < span class = "identifier" > pos< / span > < span class = "plain" > , < / span > < span class = "functiontext" > Characters::tolower< / span > < span class = "plain" > (< / span > < span class = "functiontext" > Characters::remove_accent< / span > < span class = "plain" > (< / span > < span class = "functiontext" > Str::get< / span > < span class = "plain" > (< / span > < span class = "identifier" > pos< / span > < span class = "plain" > ))));< / span >
< span class = "functiontext" > Regexp::replace< / span > < span class = "plain" > (< / span > < span class = "identifier" > sort_key< / span > < span class = "plain" > , < / span > < span class = "identifier" > L< / span > < span class = "string" > "%[ *%]"< / span > < span class = "plain" > , < / span > < span class = "identifier" > L< / span > < span class = "string" > "____SQUARES____"< / span > < span class = "plain" > , < / span > < span class = "constant" > REP_REPEATING< / span > < span class = "plain" > );< / span >
< span class = "functiontext" > Regexp::replace< / span > < span class = "plain" > (< / span > < span class = "identifier" > sort_key< / span > < span class = "plain" > , < / span > < span class = "identifier" > L< / span > < span class = "string" > "%["< / span > < span class = "plain" > , < / span > < span class = "identifier" > NULL< / span > < span class = "plain" > , < / span > < span class = "constant" > REP_REPEATING< / span > < span class = "plain" > );< / span >
< span class = "functiontext" > Regexp::replace< / span > < span class = "plain" > (< / span > < span class = "identifier" > sort_key< / span > < span class = "plain" > , < / span > < span class = "identifier" > L< / span > < span class = "string" > "%]"< / span > < span class = "plain" > , < / span > < span class = "identifier" > NULL< / span > < span class = "plain" > , < / span > < span class = "constant" > REP_REPEATING< / span > < span class = "plain" > );< / span >
< span class = "functiontext" > Regexp::replace< / span > < span class = "plain" > (< / span > < span class = "identifier" > sort_key< / span > < span class = "plain" > , < / span > < span class = "identifier" > L< / span > < span class = "string" > "____SQUARES____"< / span > < span class = "plain" > , < / span > < span class = "identifier" > L< / span > < span class = "string" > "[]"< / span > < span class = "plain" > , < / span > < span class = "constant" > REP_REPEATING< / span > < span class = "plain" > );< / span >
< span class = "functiontext" > Regexp::replace< / span > < span class = "plain" > (< / span > < span class = "identifier" > sort_key< / span > < span class = "plain" > , < / span > < span class = "identifier" > L< / span > < span class = "string" > "%("< / span > < span class = "plain" > , < / span > < span class = "identifier" > NULL< / span > < span class = "plain" > , < / span > < span class = "constant" > REP_REPEATING< / span > < span class = "plain" > );< / span >
< span class = "functiontext" > Regexp::replace< / span > < span class = "plain" > (< / span > < span class = "identifier" > sort_key< / span > < span class = "plain" > , < / span > < span class = "identifier" > L< / span > < span class = "string" > "%)"< / span > < span class = "plain" > , < / span > < span class = "identifier" > NULL< / span > < span class = "plain" > , < / span > < span class = "constant" > REP_REPEATING< / span > < span class = "plain" > );< / span >
< span class = "functiontext" > Regexp::replace< / span > < span class = "plain" > (< / span > < span class = "identifier" > sort_key< / span > < span class = "plain" > , < / span > < span class = "identifier" > L< / span > < span class = "string" > "1 "< / span > < span class = "plain" > , < / span > < span class = "identifier" > L< / span > < span class = "string" > "one "< / span > < span class = "plain" > , < / span > < span class = "constant" > REP_ATSTART< / span > < span class = "plain" > );< / span >
< span class = "functiontext" > Regexp::replace< / span > < span class = "plain" > (< / span > < span class = "identifier" > sort_key< / span > < span class = "plain" > , < / span > < span class = "identifier" > L< / span > < span class = "string" > "2 "< / span > < span class = "plain" > , < / span > < span class = "identifier" > L< / span > < span class = "string" > "two "< / span > < span class = "plain" > , < / span > < span class = "constant" > REP_ATSTART< / span > < span class = "plain" > );< / span >
< span class = "functiontext" > Regexp::replace< / span > < span class = "plain" > (< / span > < span class = "identifier" > sort_key< / span > < span class = "plain" > , < / span > < span class = "identifier" > L< / span > < span class = "string" > "3 "< / span > < span class = "plain" > , < / span > < span class = "identifier" > L< / span > < span class = "string" > "three "< / span > < span class = "plain" > , < / span > < span class = "constant" > REP_ATSTART< / span > < span class = "plain" > );< / span >
< span class = "functiontext" > Regexp::replace< / span > < span class = "plain" > (< / span > < span class = "identifier" > sort_key< / span > < span class = "plain" > , < / span > < span class = "identifier" > L< / span > < span class = "string" > "4 "< / span > < span class = "plain" > , < / span > < span class = "identifier" > L< / span > < span class = "string" > "four "< / span > < span class = "plain" > , < / span > < span class = "constant" > REP_ATSTART< / span > < span class = "plain" > );< / span >
< span class = "functiontext" > Regexp::replace< / span > < span class = "plain" > (< / span > < span class = "identifier" > sort_key< / span > < span class = "plain" > , < / span > < span class = "identifier" > L< / span > < span class = "string" > "5 "< / span > < span class = "plain" > , < / span > < span class = "identifier" > L< / span > < span class = "string" > "five "< / span > < span class = "plain" > , < / span > < span class = "constant" > REP_ATSTART< / span > < span class = "plain" > );< / span >
< span class = "functiontext" > Regexp::replace< / span > < span class = "plain" > (< / span > < span class = "identifier" > sort_key< / span > < span class = "plain" > , < / span > < span class = "identifier" > L< / span > < span class = "string" > "6 "< / span > < span class = "plain" > , < / span > < span class = "identifier" > L< / span > < span class = "string" > "six "< / span > < span class = "plain" > , < / span > < span class = "constant" > REP_ATSTART< / span > < span class = "plain" > );< / span >
< span class = "functiontext" > Regexp::replace< / span > < span class = "plain" > (< / span > < span class = "identifier" > sort_key< / span > < span class = "plain" > , < / span > < span class = "identifier" > L< / span > < span class = "string" > "7 "< / span > < span class = "plain" > , < / span > < span class = "identifier" > L< / span > < span class = "string" > "seven "< / span > < span class = "plain" > , < / span > < span class = "constant" > REP_ATSTART< / span > < span class = "plain" > );< / span >
< span class = "functiontext" > Regexp::replace< / span > < span class = "plain" > (< / span > < span class = "identifier" > sort_key< / span > < span class = "plain" > , < / span > < span class = "identifier" > L< / span > < span class = "string" > "8 "< / span > < span class = "plain" > , < / span > < span class = "identifier" > L< / span > < span class = "string" > "eight "< / span > < span class = "plain" > , < / span > < span class = "constant" > REP_ATSTART< / span > < span class = "plain" > );< / span >
< span class = "functiontext" > Regexp::replace< / span > < span class = "plain" > (< / span > < span class = "identifier" > sort_key< / span > < span class = "plain" > , < / span > < span class = "identifier" > L< / span > < span class = "string" > "9 "< / span > < span class = "plain" > , < / span > < span class = "identifier" > L< / span > < span class = "string" > "nine "< / span > < span class = "plain" > , < / span > < span class = "constant" > REP_ATSTART< / span > < span class = "plain" > );< / span >
< span class = "functiontext" > Regexp::replace< / span > < span class = "plain" > (< / span > < span class = "identifier" > sort_key< / span > < span class = "plain" > , < / span > < span class = "identifier" > L< / span > < span class = "string" > "10 "< / span > < span class = "plain" > , < / span > < span class = "identifier" > L< / span > < span class = "string" > "ten "< / span > < span class = "plain" > , < / span > < span class = "constant" > REP_ATSTART< / span > < span class = "plain" > );< / span >
< span class = "functiontext" > Regexp::replace< / span > < span class = "plain" > (< / span > < span class = "identifier" > sort_key< / span > < span class = "plain" > , < / span > < span class = "identifier" > L< / span > < span class = "string" > "11 "< / span > < span class = "plain" > , < / span > < span class = "identifier" > L< / span > < span class = "string" > "eleven "< / span > < span class = "plain" > , < / span > < span class = "constant" > REP_ATSTART< / span > < span class = "plain" > );< / span >
< span class = "functiontext" > Regexp::replace< / span > < span class = "plain" > (< / span > < span class = "identifier" > sort_key< / span > < span class = "plain" > , < / span > < span class = "identifier" > L< / span > < span class = "string" > "12 "< / span > < span class = "plain" > , < / span > < span class = "identifier" > L< / span > < span class = "string" > "twelve "< / span > < span class = "plain" > , < / span > < span class = "constant" > REP_ATSTART< / span > < span class = "plain" > );< / span >
< span class = "identifier" > TEMPORARY_TEXT< / span > < span class = "plain" > (< / span > < span class = "identifier" > x< / span > < span class = "plain" > );< / span >
< span class = "functiontext" > Str::copy< / span > < span class = "plain" > (< / span > < span class = "identifier" > x< / span > < span class = "plain" > , < / span > < span class = "identifier" > sort_key< / span > < span class = "plain" > );< / span >
< span class = "functiontext" > Str::clear< / span > < span class = "plain" > (< / span > < span class = "identifier" > sort_key< / span > < span class = "plain" > );< / span >
< span class = "reserved" > match_results< / span > < span class = "plain" > < / span > < span class = "identifier" > mr< / span > < span class = "plain" > = < / span > < span class = "functiontext" > Regexp::create_mr< / span > < span class = "plain" > ();< / span >
< span class = "reserved" > while< / span > < span class = "plain" > (< / span > < span class = "functiontext" > Regexp::match< / span > < span class = "plain" > (& < / span > < span class = "identifier" > mr< / span > < span class = "plain" > , < / span > < span class = "identifier" > x< / span > < span class = "plain" > , < / span > < span class = "identifier" > L< / span > < span class = "string" > "(%c*?)(%d+)(%c*)"< / span > < span class = "plain" > )) {< / span >
< span class = "identifier" > WRITE_TO< / span > < span class = "plain" > (< / span > < span class = "identifier" > sort_key< / span > < span class = "plain" > , < / span > < span class = "string" > "%S"< / span > < span class = "plain" > , < / span > < span class = "identifier" > mr< / span > < span class = "element" > .exp< / span > < span class = "plain" > [0]);< / span >
< span class = "functiontext" > Str::copy< / span > < span class = "plain" > (< / span > < span class = "identifier" > x< / span > < span class = "plain" > , < / span > < span class = "identifier" > mr< / span > < span class = "element" > .exp< / span > < span class = "plain" > [2]);< / span >
< span class = "identifier" > WRITE_TO< / span > < span class = "plain" > (< / span > < span class = "identifier" > sort_key< / span > < span class = "plain" > , < / span > < span class = "string" > "%08d"< / span > < span class = "plain" > , < / span > < span class = "functiontext" > Str::atoi< / span > < span class = "plain" > (< / span > < span class = "identifier" > mr< / span > < span class = "element" > .exp< / span > < span class = "plain" > [1], 0));< / span >
< span class = "plain" > }< / span >
< span class = "identifier" > WRITE_TO< / span > < span class = "plain" > (< / span > < span class = "identifier" > sort_key< / span > < span class = "plain" > , < / span > < span class = "string" > "%S"< / span > < span class = "plain" > , < / span > < span class = "identifier" > x< / span > < span class = "plain" > );< / span >
< span class = "identifier" > DISCARD_TEXT< / span > < span class = "plain" > (< / span > < span class = "identifier" > x< / span > < span class = "plain" > );< / span >
< span class = "plain" > }< / span >
< span class = "plain" > }< / span >
< / pre >
< p class = "inwebparagraph" > < / p >
< p class = "endnote" > The function IndexUtilities::alphabetisation_exception is used in 3/cai (< a href = "3-cai.html#SP6" > § 6< / a > , < a href = "3-cai.html#SP8" > § 8< / a > ).< / p >
< p class = "endnote" > The function IndexUtilities::improve_alphabetisation is used in 3/cai (< a href = "3-cai.html#SP9_1" > § 9.1< / a > ), 3/ei (< a href = "3-ei.html#SP2_2" > § 2.2< / a > ).< / p >
< p class = "inwebparagraph" > < a id = "SP4" > < / a > < b > § 4. < / b > < / p >
< pre class = "display" >
< span class = "reserved" > int< / span > < span class = "plain" > < / span > < span class = "identifier" > letters_taken< / span > < span class = "plain" > [26];< / span >
< span class = "reserved" > void< / span > < span class = "plain" > < / span > < span class = "functiontext" > IndexUtilities::note_letter< / span > < span class = "plain" > (< / span > < span class = "reserved" > int< / span > < span class = "plain" > < / span > < span class = "identifier" > c< / span > < span class = "plain" > ) {< / span >
< span class = "reserved" > int< / span > < span class = "plain" > < / span > < span class = "identifier" > i< / span > < span class = "plain" > = < / span > < span class = "identifier" > c< / span > < span class = "plain" > - < / span > < span class = "character" > 'A'< / span > < span class = "plain" > ;< / span >
< span class = "reserved" > if< / span > < span class = "plain" > ((< / span > < span class = "identifier" > i< / span > < span class = "plain" > > =0) & & (< / span > < span class = "identifier" > i< / span > < span class = "plain" > < 26)) < / span > < span class = "identifier" > letters_taken< / span > < span class = "plain" > [< / span > < span class = "identifier" > i< / span > < span class = "plain" > ] = < / span > < span class = "constant" > TRUE< / span > < span class = "plain" > ;< / span >
< span class = "plain" > }< / span >
< span class = "reserved" > void< / span > < span class = "plain" > < / span > < span class = "functiontext" > IndexUtilities::alphabet_row< / span > < span class = "plain" > (< / span > < span class = "constant" > OUTPUT_STREAM< / span > < span class = "plain" > , < / span > < span class = "reserved" > int< / span > < span class = "plain" > < / span > < span class = "identifier" > sequence< / span > < span class = "plain" > ) {< / span >
< span class = "reserved" > switch< / span > < span class = "plain" > (< / span > < span class = "identifier" > sequence< / span > < span class = "plain" > ) {< / span >
< span class = "reserved" > case< / span > < span class = "plain" > 1:< / span >
< span class = "reserved" > for< / span > < span class = "plain" > (< / span > < span class = "reserved" > int< / span > < span class = "plain" > < / span > < span class = "identifier" > i< / span > < span class = "plain" > =0; < / span > < span class = "identifier" > i< / span > < span class = "plain" > < 26; < / span > < span class = "identifier" > i< / span > < span class = "plain" > ++)< / span >
< span class = "identifier" > letters_taken< / span > < span class = "plain" > [< / span > < span class = "identifier" > i< / span > < span class = "plain" > ] = < / span > < span class = "constant" > FALSE< / span > < span class = "plain" > ;< / span >
< span class = "reserved" > break< / span > < span class = "plain" > ;< / span >
< span class = "reserved" > case< / span > < span class = "plain" > 2: {< / span >
< span class = "reserved" > int< / span > < span class = "plain" > < / span > < span class = "identifier" > faked< / span > < span class = "plain" > = < / span > < span class = "constant" > FALSE< / span > < span class = "plain" > ;< / span >
< span class = "reserved" > for< / span > < span class = "plain" > (< / span > < span class = "reserved" > int< / span > < span class = "plain" > < / span > < span class = "identifier" > i< / span > < span class = "plain" > =0; < / span > < span class = "identifier" > i< / span > < span class = "plain" > < 26; < / span > < span class = "identifier" > i< / span > < span class = "plain" > ++)< / span >
< span class = "reserved" > if< / span > < span class = "plain" > (< / span > < span class = "identifier" > letters_taken< / span > < span class = "plain" > [< / span > < span class = "identifier" > i< / span > < span class = "plain" > ] == < / span > < span class = "constant" > FALSE< / span > < span class = "plain" > ) {< / span >
< span class = "reserved" > if< / span > < span class = "plain" > (< / span > < span class = "identifier" > faked< / span > < span class = "plain" > == < / span > < span class = "constant" > FALSE< / span > < span class = "plain" > ) { < / span > < span class = "identifier" > faked< / span > < span class = "plain" > = < / span > < span class = "constant" > TRUE< / span > < span class = "plain" > ; < / span > < span class = "identifier" > HTML_OPEN< / span > < span class = "plain" > (< / span > < span class = "string" > "p"< / span > < span class = "plain" > ); }< / span >
< span class = "identifier" > TEMPORARY_TEXT< / span > < span class = "plain" > (< / span > < span class = "identifier" > singleton< / span > < span class = "plain" > );< / span >
< span class = "identifier" > PUT_TO< / span > < span class = "plain" > (< / span > < span class = "identifier" > singleton< / span > < span class = "plain" > , < / span > < span class = "character" > 'A'< / span > < span class = "plain" > +< / span > < span class = "identifier" > i< / span > < span class = "plain" > );< / span >
< span class = "functiontext" > HTML::anchor< / span > < span class = "plain" > (< / span > < span class = "identifier" > OUT< / span > < span class = "plain" > , < / span > < span class = "identifier" > singleton< / span > < span class = "plain" > );< / span >
< span class = "identifier" > DISCARD_TEXT< / span > < span class = "plain" > (< / span > < span class = "identifier" > singleton< / span > < span class = "plain" > );< / span >
< span class = "plain" > }< / span >
< span class = "reserved" > if< / span > < span class = "plain" > (< / span > < span class = "identifier" > faked< / span > < span class = "plain" > ) { < / span > < span class = "identifier" > HTML_CLOSE< / span > < span class = "plain" > (< / span > < span class = "string" > "p"< / span > < span class = "plain" > ); }< / span >
< span class = "reserved" > break< / span > < span class = "plain" > ;< / span >
< span class = "plain" > }< / span >
< span class = "plain" > }< / span >
< span class = "reserved" > if< / span > < span class = "plain" > (< / span > < span class = "identifier" > indoc_settings< / span > < span class = "plain" > -< / span > < span class = "element" > > navigation< / span > < span class = "plain" > -< / span > < span class = "element" > > simplified_letter_rows< / span > < span class = "plain" > ) {< / span >
< span class = "identifier" > HTML_OPEN< / span > < span class = "plain" > (< / span > < span class = "string" > "p"< / span > < span class = "plain" > );< / span >
< span class = "plain" > } < / span > < span class = "reserved" > else< / span > < span class = "plain" > {< / span >
< span class = "identifier" > HTML_OPEN_WITH< / span > < span class = "plain" > (< / span > < span class = "string" > "table"< / span > < span class = "plain" > , < / span > < span class = "string" > "class=\< / span > < span class = "plain" > "< / span > < span class = "string" > fullwidth\< / span > < span class = "plain" > "< / span > < span class = "string" > "< / span > < span class = "plain" > );< / span >
< span class = "identifier" > HTML_OPEN< / span > < span class = "plain" > (< / span > < span class = "string" > "tr"< / span > < span class = "plain" > );< / span >
< span class = "identifier" > HTML_OPEN_WITH< / span > < span class = "plain" > (< / span > < span class = "string" > "td"< / span > < span class = "plain" > , < / span > < span class = "string" > "class=\< / span > < span class = "plain" > "< / span > < span class = "string" > letterinrow\< / span > < span class = "plain" > "< / span > < span class = "string" > "< / span > < span class = "plain" > );< / span >
< span class = "plain" > }< / span >
< span class = "functiontext" > HTMLUtilities::general_link< / span > < span class = "plain" > (< / span > < span class = "identifier" > OUT< / span > < span class = "plain" > , < / span > < span class = "identifier" > I< / span > < span class = "string" > "letterlink"< / span > < span class = "plain" > , < / span > < span class = "identifier" > I< / span > < span class = "string" > "#A"< / span > < span class = "plain" > , < / span > < span class = "identifier" > I< / span > < span class = "string" > "A"< / span > < span class = "plain" > ); < / span > < < span class = "cwebmacro" > Between< / span > < span class = "cwebmacronumber" > 4.1< / span > > < span class = "plain" > ;< / span >
< span class = "functiontext" > HTMLUtilities::general_link< / span > < span class = "plain" > (< / span > < span class = "identifier" > OUT< / span > < span class = "plain" > , < / span > < span class = "identifier" > I< / span > < span class = "string" > "letterlink"< / span > < span class = "plain" > , < / span > < span class = "identifier" > I< / span > < span class = "string" > "#B"< / span > < span class = "plain" > , < / span > < span class = "identifier" > I< / span > < span class = "string" > "B"< / span > < span class = "plain" > ); < / span > < < span class = "cwebmacro" > Between< / span > < span class = "cwebmacronumber" > 4.1< / span > > < span class = "plain" > ;< / span >
< span class = "functiontext" > HTMLUtilities::general_link< / span > < span class = "plain" > (< / span > < span class = "identifier" > OUT< / span > < span class = "plain" > , < / span > < span class = "identifier" > I< / span > < span class = "string" > "letterlink"< / span > < span class = "plain" > , < / span > < span class = "identifier" > I< / span > < span class = "string" > "#C"< / span > < span class = "plain" > , < / span > < span class = "identifier" > I< / span > < span class = "string" > "C"< / span > < span class = "plain" > ); < / span > < < span class = "cwebmacro" > Between< / span > < span class = "cwebmacronumber" > 4.1< / span > > < span class = "plain" > ;< / span >
< span class = "functiontext" > HTMLUtilities::general_link< / span > < span class = "plain" > (< / span > < span class = "identifier" > OUT< / span > < span class = "plain" > , < / span > < span class = "identifier" > I< / span > < span class = "string" > "letterlink"< / span > < span class = "plain" > , < / span > < span class = "identifier" > I< / span > < span class = "string" > "#D"< / span > < span class = "plain" > , < / span > < span class = "identifier" > I< / span > < span class = "string" > "D"< / span > < span class = "plain" > ); < / span > < < span class = "cwebmacro" > Between< / span > < span class = "cwebmacronumber" > 4.1< / span > > < span class = "plain" > ;< / span >
< span class = "functiontext" > HTMLUtilities::general_link< / span > < span class = "plain" > (< / span > < span class = "identifier" > OUT< / span > < span class = "plain" > , < / span > < span class = "identifier" > I< / span > < span class = "string" > "letterlink"< / span > < span class = "plain" > , < / span > < span class = "identifier" > I< / span > < span class = "string" > "#E"< / span > < span class = "plain" > , < / span > < span class = "identifier" > I< / span > < span class = "string" > "E"< / span > < span class = "plain" > ); < / span > < < span class = "cwebmacro" > Between< / span > < span class = "cwebmacronumber" > 4.1< / span > > < span class = "plain" > ;< / span >
< span class = "functiontext" > HTMLUtilities::general_link< / span > < span class = "plain" > (< / span > < span class = "identifier" > OUT< / span > < span class = "plain" > , < / span > < span class = "identifier" > I< / span > < span class = "string" > "letterlink"< / span > < span class = "plain" > , < / span > < span class = "identifier" > I< / span > < span class = "string" > "#F"< / span > < span class = "plain" > , < / span > < span class = "identifier" > I< / span > < span class = "string" > "F"< / span > < span class = "plain" > ); < / span > < < span class = "cwebmacro" > Between< / span > < span class = "cwebmacronumber" > 4.1< / span > > < span class = "plain" > ;< / span >
< span class = "functiontext" > HTMLUtilities::general_link< / span > < span class = "plain" > (< / span > < span class = "identifier" > OUT< / span > < span class = "plain" > , < / span > < span class = "identifier" > I< / span > < span class = "string" > "letterlink"< / span > < span class = "plain" > , < / span > < span class = "identifier" > I< / span > < span class = "string" > "#G"< / span > < span class = "plain" > , < / span > < span class = "identifier" > I< / span > < span class = "string" > "G"< / span > < span class = "plain" > ); < / span > < < span class = "cwebmacro" > Between< / span > < span class = "cwebmacronumber" > 4.1< / span > > < span class = "plain" > ;< / span >
< span class = "functiontext" > HTMLUtilities::general_link< / span > < span class = "plain" > (< / span > < span class = "identifier" > OUT< / span > < span class = "plain" > , < / span > < span class = "identifier" > I< / span > < span class = "string" > "letterlink"< / span > < span class = "plain" > , < / span > < span class = "identifier" > I< / span > < span class = "string" > "#H"< / span > < span class = "plain" > , < / span > < span class = "identifier" > I< / span > < span class = "string" > "H"< / span > < span class = "plain" > ); < / span > < < span class = "cwebmacro" > Between< / span > < span class = "cwebmacronumber" > 4.1< / span > > < span class = "plain" > ;< / span >
< span class = "functiontext" > HTMLUtilities::general_link< / span > < span class = "plain" > (< / span > < span class = "identifier" > OUT< / span > < span class = "plain" > , < / span > < span class = "identifier" > I< / span > < span class = "string" > "letterlink"< / span > < span class = "plain" > , < / span > < span class = "identifier" > I< / span > < span class = "string" > "#I"< / span > < span class = "plain" > , < / span > < span class = "identifier" > I< / span > < span class = "string" > "I"< / span > < span class = "plain" > ); < / span > < < span class = "cwebmacro" > Between< / span > < span class = "cwebmacronumber" > 4.1< / span > > < span class = "plain" > ;< / span >
< span class = "functiontext" > HTMLUtilities::general_link< / span > < span class = "plain" > (< / span > < span class = "identifier" > OUT< / span > < span class = "plain" > , < / span > < span class = "identifier" > I< / span > < span class = "string" > "letterlink"< / span > < span class = "plain" > , < / span > < span class = "identifier" > I< / span > < span class = "string" > "#J"< / span > < span class = "plain" > , < / span > < span class = "identifier" > I< / span > < span class = "string" > "J"< / span > < span class = "plain" > ); < / span > < < span class = "cwebmacro" > Between< / span > < span class = "cwebmacronumber" > 4.1< / span > > < span class = "plain" > ;< / span >
< span class = "functiontext" > HTMLUtilities::general_link< / span > < span class = "plain" > (< / span > < span class = "identifier" > OUT< / span > < span class = "plain" > , < / span > < span class = "identifier" > I< / span > < span class = "string" > "letterlink"< / span > < span class = "plain" > , < / span > < span class = "identifier" > I< / span > < span class = "string" > "#K"< / span > < span class = "plain" > , < / span > < span class = "identifier" > I< / span > < span class = "string" > "K"< / span > < span class = "plain" > ); < / span > < < span class = "cwebmacro" > Between< / span > < span class = "cwebmacronumber" > 4.1< / span > > < span class = "plain" > ;< / span >
< span class = "functiontext" > HTMLUtilities::general_link< / span > < span class = "plain" > (< / span > < span class = "identifier" > OUT< / span > < span class = "plain" > , < / span > < span class = "identifier" > I< / span > < span class = "string" > "letterlink"< / span > < span class = "plain" > , < / span > < span class = "identifier" > I< / span > < span class = "string" > "#L"< / span > < span class = "plain" > , < / span > < span class = "identifier" > I< / span > < span class = "string" > "L"< / span > < span class = "plain" > ); < / span > < < span class = "cwebmacro" > Between< / span > < span class = "cwebmacronumber" > 4.1< / span > > < span class = "plain" > ;< / span >
< span class = "functiontext" > HTMLUtilities::general_link< / span > < span class = "plain" > (< / span > < span class = "identifier" > OUT< / span > < span class = "plain" > , < / span > < span class = "identifier" > I< / span > < span class = "string" > "letterlink"< / span > < span class = "plain" > , < / span > < span class = "identifier" > I< / span > < span class = "string" > "#M"< / span > < span class = "plain" > , < / span > < span class = "identifier" > I< / span > < span class = "string" > "M"< / span > < span class = "plain" > ); < / span > < < span class = "cwebmacro" > Between< / span > < span class = "cwebmacronumber" > 4.1< / span > > < span class = "plain" > ;< / span >
< span class = "functiontext" > HTMLUtilities::general_link< / span > < span class = "plain" > (< / span > < span class = "identifier" > OUT< / span > < span class = "plain" > , < / span > < span class = "identifier" > I< / span > < span class = "string" > "letterlink"< / span > < span class = "plain" > , < / span > < span class = "identifier" > I< / span > < span class = "string" > "#N"< / span > < span class = "plain" > , < / span > < span class = "identifier" > I< / span > < span class = "string" > "N"< / span > < span class = "plain" > ); < / span > < < span class = "cwebmacro" > Between< / span > < span class = "cwebmacronumber" > 4.1< / span > > < span class = "plain" > ;< / span >
< span class = "functiontext" > HTMLUtilities::general_link< / span > < span class = "plain" > (< / span > < span class = "identifier" > OUT< / span > < span class = "plain" > , < / span > < span class = "identifier" > I< / span > < span class = "string" > "letterlink"< / span > < span class = "plain" > , < / span > < span class = "identifier" > I< / span > < span class = "string" > "#O"< / span > < span class = "plain" > , < / span > < span class = "identifier" > I< / span > < span class = "string" > "O"< / span > < span class = "plain" > ); < / span > < < span class = "cwebmacro" > Between< / span > < span class = "cwebmacronumber" > 4.1< / span > > < span class = "plain" > ;< / span >
< span class = "functiontext" > HTMLUtilities::general_link< / span > < span class = "plain" > (< / span > < span class = "identifier" > OUT< / span > < span class = "plain" > , < / span > < span class = "identifier" > I< / span > < span class = "string" > "letterlink"< / span > < span class = "plain" > , < / span > < span class = "identifier" > I< / span > < span class = "string" > "#P"< / span > < span class = "plain" > , < / span > < span class = "identifier" > I< / span > < span class = "string" > "P"< / span > < span class = "plain" > ); < / span > < < span class = "cwebmacro" > Between< / span > < span class = "cwebmacronumber" > 4.1< / span > > < span class = "plain" > ;< / span >
< span class = "functiontext" > HTMLUtilities::general_link< / span > < span class = "plain" > (< / span > < span class = "identifier" > OUT< / span > < span class = "plain" > , < / span > < span class = "identifier" > I< / span > < span class = "string" > "letterlink"< / span > < span class = "plain" > , < / span > < span class = "identifier" > I< / span > < span class = "string" > "#Q"< / span > < span class = "plain" > , < / span > < span class = "identifier" > I< / span > < span class = "string" > "Q"< / span > < span class = "plain" > ); < / span > < < span class = "cwebmacro" > Between< / span > < span class = "cwebmacronumber" > 4.1< / span > > < span class = "plain" > ;< / span >
< span class = "functiontext" > HTMLUtilities::general_link< / span > < span class = "plain" > (< / span > < span class = "identifier" > OUT< / span > < span class = "plain" > , < / span > < span class = "identifier" > I< / span > < span class = "string" > "letterlink"< / span > < span class = "plain" > , < / span > < span class = "identifier" > I< / span > < span class = "string" > "#R"< / span > < span class = "plain" > , < / span > < span class = "identifier" > I< / span > < span class = "string" > "R"< / span > < span class = "plain" > ); < / span > < < span class = "cwebmacro" > Between< / span > < span class = "cwebmacronumber" > 4.1< / span > > < span class = "plain" > ;< / span >
< span class = "functiontext" > HTMLUtilities::general_link< / span > < span class = "plain" > (< / span > < span class = "identifier" > OUT< / span > < span class = "plain" > , < / span > < span class = "identifier" > I< / span > < span class = "string" > "letterlink"< / span > < span class = "plain" > , < / span > < span class = "identifier" > I< / span > < span class = "string" > "#S"< / span > < span class = "plain" > , < / span > < span class = "identifier" > I< / span > < span class = "string" > "S"< / span > < span class = "plain" > ); < / span > < < span class = "cwebmacro" > Between< / span > < span class = "cwebmacronumber" > 4.1< / span > > < span class = "plain" > ;< / span >
< span class = "functiontext" > HTMLUtilities::general_link< / span > < span class = "plain" > (< / span > < span class = "identifier" > OUT< / span > < span class = "plain" > , < / span > < span class = "identifier" > I< / span > < span class = "string" > "letterlink"< / span > < span class = "plain" > , < / span > < span class = "identifier" > I< / span > < span class = "string" > "#T"< / span > < span class = "plain" > , < / span > < span class = "identifier" > I< / span > < span class = "string" > "T"< / span > < span class = "plain" > ); < / span > < < span class = "cwebmacro" > Between< / span > < span class = "cwebmacronumber" > 4.1< / span > > < span class = "plain" > ;< / span >
< span class = "functiontext" > HTMLUtilities::general_link< / span > < span class = "plain" > (< / span > < span class = "identifier" > OUT< / span > < span class = "plain" > , < / span > < span class = "identifier" > I< / span > < span class = "string" > "letterlink"< / span > < span class = "plain" > , < / span > < span class = "identifier" > I< / span > < span class = "string" > "#U"< / span > < span class = "plain" > , < / span > < span class = "identifier" > I< / span > < span class = "string" > "U"< / span > < span class = "plain" > ); < / span > < < span class = "cwebmacro" > Between< / span > < span class = "cwebmacronumber" > 4.1< / span > > < span class = "plain" > ;< / span >
< span class = "functiontext" > HTMLUtilities::general_link< / span > < span class = "plain" > (< / span > < span class = "identifier" > OUT< / span > < span class = "plain" > , < / span > < span class = "identifier" > I< / span > < span class = "string" > "letterlink"< / span > < span class = "plain" > , < / span > < span class = "identifier" > I< / span > < span class = "string" > "#V"< / span > < span class = "plain" > , < / span > < span class = "identifier" > I< / span > < span class = "string" > "V"< / span > < span class = "plain" > ); < / span > < < span class = "cwebmacro" > Between< / span > < span class = "cwebmacronumber" > 4.1< / span > > < span class = "plain" > ;< / span >
< span class = "functiontext" > HTMLUtilities::general_link< / span > < span class = "plain" > (< / span > < span class = "identifier" > OUT< / span > < span class = "plain" > , < / span > < span class = "identifier" > I< / span > < span class = "string" > "letterlink"< / span > < span class = "plain" > , < / span > < span class = "identifier" > I< / span > < span class = "string" > "#W"< / span > < span class = "plain" > , < / span > < span class = "identifier" > I< / span > < span class = "string" > "W"< / span > < span class = "plain" > ); < / span > < < span class = "cwebmacro" > Between< / span > < span class = "cwebmacronumber" > 4.1< / span > > < span class = "plain" > ;< / span >
< span class = "functiontext" > HTMLUtilities::general_link< / span > < span class = "plain" > (< / span > < span class = "identifier" > OUT< / span > < span class = "plain" > , < / span > < span class = "identifier" > I< / span > < span class = "string" > "letterlink"< / span > < span class = "plain" > , < / span > < span class = "identifier" > I< / span > < span class = "string" > "#X"< / span > < span class = "plain" > , < / span > < span class = "identifier" > I< / span > < span class = "string" > "X"< / span > < span class = "plain" > ); < / span > < < span class = "cwebmacro" > Between< / span > < span class = "cwebmacronumber" > 4.1< / span > > < span class = "plain" > ;< / span >
< span class = "functiontext" > HTMLUtilities::general_link< / span > < span class = "plain" > (< / span > < span class = "identifier" > OUT< / span > < span class = "plain" > , < / span > < span class = "identifier" > I< / span > < span class = "string" > "letterlink"< / span > < span class = "plain" > , < / span > < span class = "identifier" > I< / span > < span class = "string" > "#Y"< / span > < span class = "plain" > , < / span > < span class = "identifier" > I< / span > < span class = "string" > "Y"< / span > < span class = "plain" > ); < / span > < < span class = "cwebmacro" > Between< / span > < span class = "cwebmacronumber" > 4.1< / span > > < span class = "plain" > ;< / span >
< span class = "functiontext" > HTMLUtilities::general_link< / span > < span class = "plain" > (< / span > < span class = "identifier" > OUT< / span > < span class = "plain" > , < / span > < span class = "identifier" > I< / span > < span class = "string" > "letterlink"< / span > < span class = "plain" > , < / span > < span class = "identifier" > I< / span > < span class = "string" > "#Z"< / span > < span class = "plain" > , < / span > < span class = "identifier" > I< / span > < span class = "string" > "Z"< / span > < span class = "plain" > );< / span >
< span class = "reserved" > if< / span > < span class = "plain" > (< / span > < span class = "identifier" > indoc_settings< / span > < span class = "plain" > -< / span > < span class = "element" > > navigation< / span > < span class = "plain" > -< / span > < span class = "element" > > simplified_letter_rows< / span > < span class = "plain" > ) {< / span >
< span class = "identifier" > HTML_CLOSE< / span > < span class = "plain" > (< / span > < span class = "string" > "p"< / span > < span class = "plain" > );< / span >
< span class = "plain" > } < / span > < span class = "reserved" > else< / span > < span class = "plain" > {< / span >
< span class = "identifier" > HTML_CLOSE< / span > < span class = "plain" > (< / span > < span class = "string" > "td"< / span > < span class = "plain" > );< / span >
< span class = "identifier" > HTML_CLOSE< / span > < span class = "plain" > (< / span > < span class = "string" > "tr"< / span > < span class = "plain" > );< / span >
< span class = "identifier" > HTML_CLOSE< / span > < span class = "plain" > (< / span > < span class = "string" > "table"< / span > < span class = "plain" > );< / span >
< span class = "plain" > }< / span >
< span class = "plain" > }< / span >
< / pre >
< p class = "inwebparagraph" > < / p >
< p class = "endnote" > The function IndexUtilities::note_letter is used in 3/cai (< a href = "3-cai.html#SP9_2" > § 9.2< / a > ), 3/ei (< a href = "3-ei.html#SP3_3" > § 3.3< / a > ).< / p >
< p class = "endnote" > The function IndexUtilities::alphabet_row is used in 3/cai (< a href = "3-cai.html#SP9_2" > § 9.2< / a > ), 3/ei (< a href = "3-ei.html#SP3" > § 3< / a > ).< / p >
< p class = "inwebparagraph" > < a id = "SP4_1" > < / a > < b > § 4.1. < / b > < code class = "display" >
< < span class = "cwebmacrodefn" > Between< / span > < span class = "cwebmacronumber" > 4.1< / span > > =
< / code > < / p >
< pre class = "displaydefn" >
< span class = "reserved" > if< / span > < span class = "plain" > (< / span > < span class = "identifier" > indoc_settings< / span > < span class = "plain" > -< / span > < span class = "element" > > navigation< / span > < span class = "plain" > -< / span > < span class = "element" > > simplified_letter_rows< / span > < span class = "plain" > ) < / span > < span class = "identifier" > WRITE< / span > < span class = "plain" > (< / span > < span class = "string" > " / "< / span > < span class = "plain" > );< / span >
< span class = "reserved" > else< / span > < span class = "plain" > {< / span >
< span class = "identifier" > HTML_CLOSE< / span > < span class = "plain" > (< / span > < span class = "string" > "td"< / span > < span class = "plain" > );< / span >
< span class = "identifier" > HTML_OPEN_WITH< / span > < span class = "plain" > (< / span > < span class = "string" > "td"< / span > < span class = "plain" > , < / span > < span class = "string" > "class=\< / span > < span class = "plain" > "< / span > < span class = "string" > letterinrow\< / span > < span class = "plain" > "< / span > < span class = "string" > "< / span > < span class = "plain" > );< / span >
< span class = "plain" > }< / span >
< / pre >
< p class = "inwebparagraph" > < / p >
< p class = "endnote" > This code is used in < a href = "#SP4" > § 4< / a > (25 times).< / p >
< p class = "inwebparagraph" > < a id = "SP5" > < / a > < b > § 5. < / b > This is mainly used for the typographically dramatic link letters A, B, C, ...
but can also make fatter typographically dramatic headings, if it's stretched
in width and a longer text is supplied.
< / p >
< pre class = "display" >
< span class = "reserved" > void< / span > < span class = "plain" > < / span > < span class = "functiontext" > IndexUtilities::majuscule_heading< / span > < span class = "plain" > (< / span > < span class = "constant" > OUTPUT_STREAM< / span > < span class = "plain" > , < / span > < span class = "reserved" > text_stream< / span > < span class = "plain" > *< / span > < span class = "identifier" > display_text< / span > < span class = "plain" > , < / span > < span class = "reserved" > int< / span > < span class = "plain" > < / span > < span class = "identifier" > single_letter< / span > < span class = "plain" > ) {< / span >
< span class = "reserved" > if< / span > < span class = "plain" > (< / span > < span class = "identifier" > indoc_settings< / span > < span class = "plain" > -< / span > < span class = "element" > > navigation< / span > < span class = "plain" > -< / span > < span class = "element" > > simplified_letter_rows< / span > < span class = "plain" > ) {< / span >
< span class = "reserved" > if< / span > < span class = "plain" > (< / span > < span class = "identifier" > single_letter< / span > < span class = "plain" > == 1) { < / span > < span class = "functiontext" > HTML::begin_div_with_class_S< / span > < span class = "plain" > (< / span > < span class = "identifier" > OUT< / span > < span class = "plain" > , < / span > < span class = "identifier" > I< / span > < span class = "string" > "majuscule"< / span > < span class = "plain" > ); }< / span >
< span class = "reserved" > else< / span > < span class = "plain" > { < / span > < span class = "functiontext" > HTML::begin_div_with_class_S< / span > < span class = "plain" > (< / span > < span class = "identifier" > OUT< / span > < span class = "plain" > , < / span > < span class = "identifier" > I< / span > < span class = "string" > "stretchymajuscule"< / span > < span class = "plain" > ); }< / span >
< span class = "identifier" > HTML_OPEN_WITH< / span > < span class = "plain" > (< / span > < span class = "string" > "span"< / span > < span class = "plain" > , < / span > < span class = "string" > "class=\< / span > < span class = "plain" > "< / span > < span class = "string" > majusculelettering\< / span > < span class = "plain" > "< / span > < span class = "string" > "< / span > < span class = "plain" > );< / span >
< span class = "identifier" > WRITE< / span > < span class = "plain" > (< / span > < span class = "string" > "%S"< / span > < span class = "plain" > , < / span > < span class = "identifier" > display_text< / span > < span class = "plain" > );< / span >
< span class = "identifier" > HTML_CLOSE< / span > < span class = "plain" > (< / span > < span class = "string" > "span"< / span > < span class = "plain" > );< / span >
< span class = "functiontext" > HTML::end_div< / span > < span class = "plain" > (< / span > < span class = "identifier" > OUT< / span > < span class = "plain" > );< / span >
< span class = "plain" > } < / span > < span class = "reserved" > else< / span > < span class = "plain" > {< / span >
< span class = "identifier" > WRITE< / span > < span class = "plain" > (< / span > < span class = "string" > "< b> %S< /b> "< / span > < span class = "plain" > , < / span > < span class = "identifier" > display_text< / span > < span class = "plain" > );< / span >
< span class = "plain" > }< / span >
< span class = "plain" > }< / span >
< / pre >
< p class = "inwebparagraph" > < / p >
< p class = "endnote" > The function IndexUtilities::majuscule_heading is used in 3/cai (< a href = "3-cai.html#SP9_2_1" > § 9.2.1< / a > ), 3/ei (< a href = "3-ei.html#SP3_3" > § 3.3< / a > ).< / p >
< hr class = "tocbar" >
< ul class = "toc" > < li > < i > (This section begins Chapter 3: Indexing.)< / i > < / li > < li > < a href = "3-cai.html" > Continue with 'Contents and Indexes'< / a > < / li > < / ul > < hr class = "tocbar" >
2019-04-22 17:42:10 +03:00
<!-- End of weave -->
2019-03-17 14:40:57 +02:00
< / body >
< / html >