cvs commit: doc/ru_RU.KOI8-R/books/handbook/firewalls chapter.sgml

Dmitry Morozovsky marck at rinet.ru
Wed May 25 10:30:57 UTC 2005


On Mon, 23 May 2005, Dmitry Morozovsky wrote:

DM> MS> >   Unbreak the build second time: now with index.
DM> MS> >   
DM> MS> >   It seems <see> cannot be used inside <indexterm>,
DM> MS> >   at least collateindex.pl produces broken sgml with it.
DM> MS> 
DM> MS> This works in the English build.  It is used in the NIS/yellowpages
DM> MS> entry in the Network Servers chapter, right?  What is the broken SGML
DM> MS> that is produced in the ru_RU handbook?  Is it a KOI8-R encoding
DM> MS> issue?
DM> 
DM> Well, as I wrote in -doc@, the original 
DM> 
DM>   <indexterm>
DM>     <primary>some-russian-term</primary>
DM>     <see>russian reference</see>
DM>   </indexterm>
DM> 
DM> produces broken code in index.sgml:
DM> 
DM> <indexentry>
DM>   <primaryie>some-russian-term
DM>   </primaryie>
DM>     <seeie>russian reference</seeie>
DM> ,
DM>     <ulink url="network-bridging.html#AEN37716" role="AEN37718">Russian part title</ulink></indexentry>

Aha, it seems you're right, as changing terms to some english words leads to 
error to disappear.  The problem seems that terms can be only english letters, 
as there is at least three places with

if (($letter lt 'A') || ($letter gt 'Z')) {

The following patch to textproc/dsssl-docbook-modular should help to fix 
problem, but at least LC_COLLATE or preferrably LANG should be propagated to 
collateindex.pl appropriately.

--- bin/collateindex.pl.orig    Thu Nov  4 09:53:39 2004
+++ bin/collateindex.pl Tue May 24 12:18:39 2005
@@ -18,6 +18,7 @@
 
 =cut
 
+use locale;
 use File::Basename;
 use Getopt::Std;
 
@@ -362,9 +363,10 @@
            $letter = uc(substr($letter, 0, 1));
 
            # symbols are a special case
-           if (($letter lt 'A') || ($letter gt 'Z')) {
+           # if (($letter lt 'A') || ($letter gt 'Z')) {
+           if ($letter !~ /^[[:alpha:]]+$/) {
                if (($group eq '')
-                   || (($group ge 'A') && ($group le 'Z'))) {
+                   || ($group =~ /^[[:alpha:]]+$/)) {
                    print OUT "</indexdiv>\n" if !$first;
                    print OUT "<indexdiv><title>$symbolsname</title>\n\n";
                    $group = $letter;
@@ -647,7 +649,7 @@
        $letter = $idx->{'primary'} if !$letter;
        $letter = uc(substr($letter, 0, 1));
 
-       if (($letter lt 'A') || ($letter gt 'Z')) {
+       if ($letter !~ /^[[:alpha:]]+$/) {
            push (@sym, $idx);
        } else {
            push (@new, $idx);


Sincerely,
D.Marck                                     [DM5020, MCK-RIPE, DM3-RIPN]
------------------------------------------------------------------------
*** Dmitry Morozovsky --- D.Marck --- Wild Woozle --- marck at rinet.ru ***
------------------------------------------------------------------------



More information about the freebsd-doc mailing list