/* ëÁË ÚÁÓÔÁ×ÉÔØ ÓÔÁÒÙÅ ×ÅÒÓÉÉ glimpse 3.0, 3.5, 4.0 éóëáôø ðï òõóóëé ? */ /* Glimpse 4.15 _ÚÁÓÔÁ×ÌÑÔØ_ îå îáäï. ïÎ É ÔÁË ËÏÒÒÅËÔÎÏ ÉÝÅÔ ÐÏ ÒÕÓÓËÉ ÉÓÐÏÌØÚÕÑ ÌÏËÁÌØ $ENV{LANG}="ru_RU.koi8r"; óËÏÍÐÉÌÉÒÕÊÔÅ ÅÇÏ (4.15), É ÉÓÐÏÌØÚÕÊÔÅ ÎÁ ÚÄÏÒÏ×ØÅ. */ /* * Óðïóïâ No 1. Ëïòòåëôîùê * 1. Óëïíðéìéòï÷áôø ó æìáçïí ISO_CHAR_SET = 1 äìñ üôïçï äïâá÷éôø ÷ CFLAGS -DISO_CHAR_SET=1 ÷ï ÷óå Makefile 2. Õóôáîï÷éôø îá ëïíðøàôåòå îïòíáìøîùê locale óïïô÷åôóô÷õàýéê éóðïìøúõåíïê ëïäéòï÷ëå. 3. × .profile õóôáîá÷ìé÷áåí ðåòåíåîîùå ïëòõöåîéñ LANG=ru export LANG 4. × cgi-óëòéðôáè: äïâá÷ìñåí óôòïþëõ $ENV{LANG} = 'ru'; # Perl LANG=ru export LANG # Shell-óëòéðôù # ×ïúíïöîï é ôáëïå îáú÷áîéå: ru.RU.KOI8-R LANG=ru_RU.KOI8-R LC_CTYPE=ru_RU.KOI8-R Òáâïôáåô ôïìøëï îáþéîáñ ó glimpse ÷åòóéé 4.0, ðïôïíõ þôï ÷ glimpse 3.* óëïíðéìéòï÷áîîùí ó æìáçïí ISO ïô÷áìé÷áìáóø ïðãéñ -n - "îõíåòï÷áôø óôòïëé"... */ /* * Óðïóïâ No 2. Îåëïòòåëôîùê, îï òáâïôáàýéê ðòé ìàâïê ðïçïäå * Åóìé îå õäáåôóñ îáêôé ëïíðìåëô ìïëáìéúáãéé äìñ ÷áûåçï Unix, ïóôáåôóñ, * åóôåóô÷åîîï, îáóéìéå îáä éóèïäîùíé ôåëóôáíé * ÷åúäå é ÷óàäõ glimpse ïðòåäåìñåô, âõë÷á ìé óéí÷ïì, éìé âõë÷á/éìé/ãéæòá éóðïìøúõñ óôáîäáòôîùå æõîëãéé éú ctype é locale ëáôåçïòéê isalpha(), isalnum(), islower(), isupper(), tolower(), toupper() Íïòáìø: ÷óàäõ ÷ ôåëóôå íåîñåí éè îá ó÷ïé é ðïäëìáäù÷áåí äïðïìîéôåìøîùê íïäõìø îá ëïíðéìñãéé Makefile.linux ISO_CHAR_SET = 1 LINKFLAGS = /home/moshkow/locale.o compress/Makefile.linux ISO_CHAR_SET = 1 LINKFLAGS = /home/moshkow/locale.o agrep/Makefile.linux ISO_CHAR_SET = 1 LINKFLAGS = /home/moshkow/locale.o index/Makefile.linux ISO_CHAR_SET = 1 LINKFLAGS = /home/moshkow/locale.o Óëïðéòõêôå üôïô æáêì locale.c ÷ ëáôáìïç /home/moshkow ×óëòïêôå ÷ /home/moshkow éóèïäîéëé glimpse É óäåìáêôå COPY PASTE óìåäõàýåçï æòáçíåîôá ðòñíï ÷ ïëïûëï xterm'á Ðïóìå üôïçï íïöîï ÷èïäéôø ÷ ëáôáìïç glimse-?.? é çï÷ïòéôø ôáí "make" ###----------------------- CUT ---------------------------------------- USERDIR=/home/moshkow export USERDIR cd [ -d $USERDIR ] || USERDIR=`pwd` cd $USERDIR cat > lechitelx <<\EOF #!/bin/sh TMP=/tmp/anti$$ sed -e " s/isalpha/BESTAisAlpha/g s/isalnum/BESTAisAlnum/g s/isupper/BESTAisUpper/g s/islower/BESTAisLower/g s/toupper/BESTAtoUpper/g s/tolower/BESTAtoLower/g s/^ISO_CHAR_SET = 0$/ISO_CHAR_SET = 1/ s%^LINKFLAGS.*= %LINKFLAGS = $USERDIR/locale.o % s%^LDFLAGS.*= %LDFLAGS = $USERDIR/locale.o % s/OPTIMIZEFLAGS.*=.*-O$/OPTIMIZEFLAGS = -O2/ " $1 > $TMP mv $TMP $1 EOF chmod a+x lechitelx [ -f locale.c ] || cp public_html/book/WEBMASTER/locale.c . gcc -O2 -c locale.c cd glimpse-4.1 || exit 1 sh configure find . -type f \( -name "*.c" -o -name "*.h" -o -name "Makefile*" \) -exec $USERDIR/lechitelx {} \; -print ###----------------------- END CUT ---------------------------------------- Æáêì locale.c : */ static unsigned char BESTA_ISALPHA [256]={ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0, 0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 }; static unsigned char BESTA_ISALNUM [256]={ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,8,8,8,8,8,8,8,8,8,0,0,0,0,0,0, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0, 0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 }; static unsigned char BESTA_ISUPPER [256]={ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, }; static unsigned char BESTA_ISLOWER [256]={ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 }; static unsigned char BESTA_ASCII [256]={ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, '0','1','2','3','4','5','6','7','8','9', 58, 59, 60, 61, 62, 63, '@','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O', 'P','Q','R','S','T','U','V','W','X','Y','Z','[', 92,']','^','_', '`','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o', 'p','q','r','s','t','u','v','w','x','y','z','{','|','}','~',127, 128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143, 144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159, 160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175, 176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191, 'À','Á','Â','Ã','Ä','Å','Æ','Ç','È','É','Ê','Ë','Ì','Í','Î','Ï', 'Ð','Ñ','Ò','Ó','Ô','Õ','Ö','×','Ø','Ù','Ú','Û','Ü','Ý','Þ','ß', 'à','á','â','ã','ä','å','æ','ç','è','é','ê','ë','ì','í','î','ï', 'ð','ñ','ò','ó','ô','õ','ö','÷','ø','ù','ú','û','ü','ý','þ',255 }; static unsigned char BESTA_TOLOWER [256]={ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o', 'p','q','r','s','t','u','v','w','x','y','z', 91, 92, 93, 94, 95, 96,'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o', 'p','q','r','s','t','u','v','w','x','y','z',123,124,125,126,127, 128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143, 144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159, 160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175, 176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191, 'à','á','â','ã','ä','å','æ','ç','è','é','ê','ë','ì','í','î','ï', 'ð','ñ','ò','ó','ô','õ','ö','÷','ø','ù','ú','û','ü','ý','þ',255, 'à','á','â','ã','ä','å','æ','ç','è','é','ê','ë','ì','í','î','ï', 'ð','ñ','ò','ó','ô','õ','ö','÷','ø','ù','ú','û','ü','ý','þ','ß' }; static unsigned char BESTA_TOUPPER [256]={ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O', 'P','Q','R','S','T','U','V','W','X','Y','Z', 91, 92, 93, 94, 95, 96,'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O', 'P','Q','R','S','T','U','V','W','X','Y','Z',123,124,125,126,127, 128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143, 144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159, 160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175, 176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191, 'À','Á','Â','Ã','Ä','Å','Æ','Ç','È','É','Ê','Ë','Ì','Í','Î','Ï', 'Ð','Ñ','Ò','Ó','Ô','Õ','Ö','×','Ø','Ù','Ú','Û','Ü','Ý','Þ','ß', 'À','Á','Â','Ã','Ä','Å','Æ','Ç','È','É','Ê','Ë','Ì','Í','Î','Ï', 'Ð','Ñ','Ò','Ó','Ô','Õ','Ö','×','Ø','Ù','Ú','Û','Ü','Ý','Þ','¬' }; BESTAisAlpha(c) unsigned char c ;{return BESTA_ISALPHA [c];} BESTAisAlnum(c) unsigned char c ;{return BESTA_ISALNUM [c];} BESTAisLower(c) unsigned char c ;{return BESTA_ISLOWER [c];} BESTAisUpper(c) unsigned char c ;{return BESTA_ISUPPER [c];} BESTAtoLower(c) unsigned char c ;{return BESTA_TOLOWER [c];} BESTAtoUpper(c) unsigned char c ;{return BESTA_TOUPPER [c];}