Bueno parece que el error que yo detect� tal como sospechaba tiene
una repercusi�n bastante grande pero no es facil determinar con precisi�n
a que afecta y a que no afecta, asi que voy a recopilar la informaci�n
que me ha llegado gracias a vosotros.

La cosa en mi opini�n, es tan gorda que ten�a miedo de estar equivocandome 
en alguna tonter�a, pero ya con lo que me habeis dicho lo que me pregunto 
es como una cosa as� ha conseguido pasar desapercibida tanto tiempo.

        Afecta a Potato 2.2r3, pero tambi�n aparece en una RedHat 7.1 con 
        kernel 2.4.9, y a una Woody, pero seguro que no queda en eso la
        cosa.

        Afecta a LANG=es_ES pero no parece afectar a otras como LANG=es, 
        o LANG=es_AR, LANG=es_MX, etc.

        No parece que afecte al uso de '[[:upper:]]' y '[[:lower:]]'.
        
        No afecta por igual a todos los programas. Por ejemplo a sed
        parece que no le afecta y tengo noticias de que algunas
        pruebas con perl y python parecen funcionar sin problemas.

        Yo he realizado una prueba m�s con el propio bash y crei que
        no le afectaba (no hab�a exportado LANG) pero si.
        
        $ ls ?
        A  B  Y  Z  a  b  y  z
        
        $ ls [A-Z]
        A  B  Y  Z  b  y  z

        No he probado con lex pero tiene que haber muchos programas
        afectados.

        Parece que afecta a egrep '[A-Z]', egrep '[a-z] pero no es solo
        a egrep porque tambien afecta a bash como ya he dicho y a un 
        programita que hice yo en C que usaba directamente la familia 
        funci�nes GNU para expresiones regulares POSIX ( regcomp,  regexec,  
        regerror, regfree), que forman parte de la glibc. 
        
        El programa que yo hice es:

        
        ============8<-----------------------------------------------
        #include <stdio.h>
        #include <stdlib.h>
        #include <string.h>
        #include <locale.h>
        #include <libintl.h>
        #include <regex.h>
        char cadaux[300];
        
        int EvalRegExpReg(char *Patron, char *Cad){
        regex_t preg;
        int cod1, cod2;
        
          cod1=regcomp(&preg, Patron, REG_EXTENDED);
          if (cod1!=0){
                cod2=regerror(cod1, &preg, cadaux, sizeof(cadaux));
                fprintf(stderr, "Error '%s' compilando patr�n '%s'\n", 
                                cadaux, Patron);        
                return cod1;
          }
          cod1=regexec(&preg, Cad, 0, NULL,  0);
          if (cod1!=0){
                cod2=regerror(cod1, &preg, cadaux, sizeof(cadaux));
                fprintf(stderr, "ExpresionRegular='%s', Cadena='%s'\n",
                        Patron, Cad);   
                fprintf(stderr, "Resultado= '%s'\n", cadaux);   
          }
          regfree(&preg);
          return cod1;
        }
                  
        main(int argc, char **argv){
                setlocale(LC_ALL, "");
                if (argc!=3){
                        fprintf(stderr, "Uso:\nregexpr <patron> <cadena>\n");
                        exit (-1);
                }
                exit (EvalRegExpReg( argv[1], argv[2]));
        }
        
        ============8<------------------------------------------------------



        Manuel Garc�a <[EMAIL PROTECTED]> apunta la posibilidad de
        que sea alg�n problema con ..
        
        LC_CTYPE Character classification and case conversion.
        
        

Un saludo

Antonio Castro

+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
        /\     /\      Ciberdroide Inform�tica (Tienda de Linux)
          \\W//            <<< http://www.ciberdroide.com >>>
         _|0 0|_                                                    
+-oOOO--(___o___)--OOOo----------------------------------------------------+ 
|  . . . . U U . . . . Antonio Castro Snurmacher  [EMAIL PROTECTED]  |  
|  . . . . . . . . . .                                                     | 
+()()()----------()()()----------------------------------------------------+
| *** 1.700 sitios clasificados por temas sobre Linux en ***Donde_Linux*** |
| <<< http://www.ciberdroide.com/misc/donde/dondelinux.html >>>            |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+


Responder a