Re: Locale Frage

From: Bernd Walter <ticso(at)cicely12.cicely.de>
Date: Fri, 23 Sep 2005 13:24:17 +0200

On Fri, Sep 23, 2005 at 01:07:07PM +0200, Oliver Fromme wrote:
> Bernd Walter <ticso(at)cicely12.cicely.de> wrote:
> > Ich habe ein C Programm, in welchem ich zu Beginn folgendes setze:
> > setlocale(LC_CTYPE, "de_DE.ISO8859-1");
> >
> > Ein Configfile wird nun per lex/yacc eingelesen und benutzt im
> > Lexer [:graph:].
> > Eigendlich hätte ich jetzt erwartet, dass [:graph:] auch Umlaute
> > beinhaltet, aber der Matched trotzdem nur auf ASCII-Zeichen.
> > Dummerweise brauche ich Support für Latin1-Zeichen im Konfigfile.
>
> Ich bin nicht sicher, aber kann es sein, daß das Locale
> zu dem Zeitpunkt entscheidend ist, wenn der Lex-Scanner
> generiert wird? Immerhin werden Character-Classes in
> Form von konstanten Tables im Scanner abgelegt, glaube
> ich (aber ich mag mich irren).

Mag natürlich sein, der benutzt viele Tabellen.
Wie dem auch sein, ich brauche ctype auch an anderen Stellen.

> Auf jeden Fall ist die Problematik nicht unbekannt:
>
> http://lists.gnu.org/archive/html/help-flex/2003-10/msg00005.html

Danke, ich denke das hilft mir weiter.
Zum Glück brauche ich in dem Fall hardcoded latin1.

> Übrigens: Bist Du sicher, daß Du einen 8-Bit-Scanner er-
> zeugst? Manche flex-Optionen schalten implizit auf 7-Bit
> um, vornehmlich -CF und -Cf (und natürlich -7).

Ja:
lex -t conflex.l > conflex.c
cc -O2 -pipe -fno-strict-aliasing -march=pentium -g -Wsystem-headers -Wall -Wno-format-y2k -Wno-uninitialized -c conflex.c
conflex.l:430: warning: `yyunput' defined but not used

Sind die normalen FreeBSD mk includes, einfach als SRCS hinzugefügt
und letzlich libl gelinkt.

-- 
B.Walter                   BWCT                http://www.bwct.de
bernd(at)bwct.de                                  info(at)bwct.de
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Fri 23 Sep 2005 - 13:26:34 CEST

search this site