[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Processing binary files sometimes has locale and UTF-8 dependent side-ef
From: |
Tim Landscheidt |
Subject: |
Processing binary files sometimes has locale and UTF-8 dependent side-effect on -w switch |
Date: |
Sun, 08 Feb 2009 22:15:54 +0000 |
User-agent: |
Gnus/5.11 (Gnus v5.11) Emacs/22.3 (gnu/linux) |
Hi,
if there is a match in a binary file, there sometimes seems
to be an undocumented locale and UTF-8 dependent side-effect
on the -w switch:
| address@hidden ~]$ unset LANG
| address@hidden ~]$ export LC_ALL=C LANG
| address@hidden ~]$ fgrep --version
| fgrep (GNU grep) 2.5.1
| Copyright 1988, 1992-1999, 2000, 2001 Free Software Foundation, Inc.
| This is free software; see the source for copying conditions. There is NO
| warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
| address@hidden ~]$ fgrep -w 4
/usr/src/kernels/2.6.27.12-170.2.5.fc10.i686/include/asm-generic/errno.h
| address@hidden ~]$ fgrep -w 4
/usr/src/kernels/2.6.27.12-170.2.5.fc10.i686/include/asm-generic/errno.h
/usr/share/man/man0p/errno.h.0p.gz
| Binary file /usr/share/man/man0p/errno.h.0p.gz matches
| address@hidden ~]$ # Swap the arguments.
| address@hidden ~]$ fgrep -w 4 /usr/share/man/man0p/errno.h.0p.gz
/usr/src/kernels/2.6.27.12-170.2.5.fc10.i686/include/asm-generic/errno.h
| Binary file /usr/share/man/man0p/errno.h.0p.gz matches
| address@hidden ~]$ # With another binary file ...
| address@hidden ~]$ fgrep -w 4 /boot/grub/splash.xpm.gz
/usr/src/kernels/2.6.27.12-170.2.5.fc10.i686/include/asm-generic/errno.h
| Binary file /boot/grub/splash.xpm.gz matches
| address@hidden ~]$ # Now with locale de_DE ...
| address@hidden ~]$ unset LC_ALL
| address@hidden ~]$ export LANG=de_DE
| address@hidden ~]$ fgrep -w 4
/usr/src/kernels/2.6.27.12-170.2.5.fc10.i686/include/asm-generic/errno.h
| address@hidden ~]$ fgrep -w 4
/usr/src/kernels/2.6.27.12-170.2.5.fc10.i686/include/asm-generic/errno.h
/usr/share/man/man0p/errno.h.0p.gz
| �bereinstimmungen in Bin�rdatei /usr/share/man/man0p/errno.h.0p.gz.
| address@hidden ~]$ # Now swap the arguments.
| address@hidden ~]$ fgrep -w 4 /usr/share/man/man0p/errno.h.0p.gz
/usr/src/kernels/2.6.27.12-170.2.5.fc10.i686/include/asm-generic/errno.h
| �bereinstimmungen in Bin�rdatei /usr/share/man/man0p/errno.h.0p.gz.
| address@hidden ~]$ # On the other hand ...
| address@hidden ~]$ fgrep -w 4 /boot/grub/splash.xpm.gz
/usr/src/kernels/2.6.27.12-170.2.5.fc10.i686/include/asm-generic/errno.h
| �bereinstimmungen in Bin�rdatei /boot/grub/splash.xpm.gz.
| address@hidden ~]$ # Now with locale de_DE.UTF-8
| address@hidden ~]$ unset LC_ALL
| address@hidden ~]$ export LANG=de_DE.UTF-8
| address@hidden ~]$ fgrep -w 4
/usr/src/kernels/2.6.27.12-170.2.5.fc10.i686/include/asm-generic/errno.h
| address@hidden ~]$ fgrep -w 4
/usr/src/kernels/2.6.27.12-170.2.5.fc10.i686/include/asm-generic/errno.h
/usr/share/man/man0p/errno.h.0p.gz
| Übereinstimmungen in Binärdatei /usr/share/man/man0p/errno.h.0p.gz.
| address@hidden ~]$ # Now swap the arguments - ooops!
| address@hidden ~]$ fgrep -w 4 /usr/share/man/man0p/errno.h.0p.gz
/usr/src/kernels/2.6.27.12-170.2.5.fc10.i686/include/asm-generic/errno.h
| Übereinstimmungen in Binärdatei /usr/share/man/man0p/errno.h.0p.gz.
|
/usr/src/kernels/2.6.27.12-170.2.5.fc10.i686/include/asm-generic/errno.h:#define
ELOOP 40 /* Too many symbolic links encountered */
|
/usr/src/kernels/2.6.27.12-170.2.5.fc10.i686/include/asm-generic/errno.h:#define
ENOMSG 42 /* No message of desired type */
|
/usr/src/kernels/2.6.27.12-170.2.5.fc10.i686/include/asm-generic/errno.h:#define
EIDRM 43 /* Identifier removed */
|
/usr/src/kernels/2.6.27.12-170.2.5.fc10.i686/include/asm-generic/errno.h:#define
ECHRNG 44 /* Channel number out of range */
|
/usr/src/kernels/2.6.27.12-170.2.5.fc10.i686/include/asm-generic/errno.h:#define
EL2NSYNC 45 /* Level 2 not synchronized */
|
/usr/src/kernels/2.6.27.12-170.2.5.fc10.i686/include/asm-generic/errno.h:#define
EL3HLT 46 /* Level 3 halted */
|
/usr/src/kernels/2.6.27.12-170.2.5.fc10.i686/include/asm-generic/errno.h:#define
EL3RST 47 /* Level 3 reset */
|
/usr/src/kernels/2.6.27.12-170.2.5.fc10.i686/include/asm-generic/errno.h:#define
ELNRNG 48 /* Link number out of range */
|
/usr/src/kernels/2.6.27.12-170.2.5.fc10.i686/include/asm-generic/errno.h:#define
EUNATCH 49 /* Protocol driver not attached */
|
/usr/src/kernels/2.6.27.12-170.2.5.fc10.i686/include/asm-generic/errno.h:#define
EXFULL 54 /* Exchange full */
|
/usr/src/kernels/2.6.27.12-170.2.5.fc10.i686/include/asm-generic/errno.h:#define
ENONET 64 /* Machine is not on the network */
|
/usr/src/kernels/2.6.27.12-170.2.5.fc10.i686/include/asm-generic/errno.h:#define
EBADMSG 74 /* Not a data message */
|
/usr/src/kernels/2.6.27.12-170.2.5.fc10.i686/include/asm-generic/errno.h:#define
EILSEQ 84 /* Illegal byte sequence */
|
/usr/src/kernels/2.6.27.12-170.2.5.fc10.i686/include/asm-generic/errno.h:#define
ESOCKTNOSUPPORT 94 /* Socket type not supported */
|
/usr/src/kernels/2.6.27.12-170.2.5.fc10.i686/include/asm-generic/errno.h:#define
ECONNRESET 104 /* Connection reset by peer */
|
/usr/src/kernels/2.6.27.12-170.2.5.fc10.i686/include/asm-generic/errno.h:#define
EALREADY 114 /* Operation already in progress */
|
/usr/src/kernels/2.6.27.12-170.2.5.fc10.i686/include/asm-generic/errno.h:#define
EMEDIUMTYPE 124 /* Wrong medium type */
| address@hidden ~]$ # On the other hand ...
| address@hidden ~]$ fgrep -w 4 /boot/grub/splash.xpm.gz
/usr/src/kernels/2.6.27.12-170.2.5.fc10.i686/include/asm-generic/errno.h
| Übereinstimmungen in Binärdatei /boot/grub/splash.xpm.gz.
| address@hidden ~]$ # Locale version.
| address@hidden ~]$ rpm -qf /usr/share/i18n/locales/de_DE
| glibc-common-2.9-3.i386
| address@hidden ~]$
I have attached the sample files.
HTH,
Tim
--
Tim Landscheidt Voice: +49 40 60816408,
+49 179 2258485
Washingtonallee 44 eMail: address@hidden
DE-22111 Hamburg ICQ: #66781347
splash.xpm.gz
Description: GNU Zip compressed data
errno.h.0p.gz
Description: GNU Zip compressed data
#ifndef _ASM_GENERIC_ERRNO_H
#define _ASM_GENERIC_ERRNO_H
#include <asm-generic/errno-base.h>
#define EDEADLK 35 /* Resource deadlock would occur */
#define ENAMETOOLONG 36 /* File name too long */
#define ENOLCK 37 /* No record locks available */
#define ENOSYS 38 /* Function not implemented */
#define ENOTEMPTY 39 /* Directory not empty */
#define ELOOP 40 /* Too many symbolic links encountered */
#define EWOULDBLOCK EAGAIN /* Operation would block */
#define ENOMSG 42 /* No message of desired type */
#define EIDRM 43 /* Identifier removed */
#define ECHRNG 44 /* Channel number out of range */
#define EL2NSYNC 45 /* Level 2 not synchronized */
#define EL3HLT 46 /* Level 3 halted */
#define EL3RST 47 /* Level 3 reset */
#define ELNRNG 48 /* Link number out of range */
#define EUNATCH 49 /* Protocol driver not attached */
#define ENOCSI 50 /* No CSI structure available */
#define EL2HLT 51 /* Level 2 halted */
#define EBADE 52 /* Invalid exchange */
#define EBADR 53 /* Invalid request descriptor */
#define EXFULL 54 /* Exchange full */
#define ENOANO 55 /* No anode */
#define EBADRQC 56 /* Invalid request code */
#define EBADSLT 57 /* Invalid slot */
#define EDEADLOCK EDEADLK
#define EBFONT 59 /* Bad font file format */
#define ENOSTR 60 /* Device not a stream */
#define ENODATA 61 /* No data available */
#define ETIME 62 /* Timer expired */
#define ENOSR 63 /* Out of streams resources */
#define ENONET 64 /* Machine is not on the network */
#define ENOPKG 65 /* Package not installed */
#define EREMOTE 66 /* Object is remote */
#define ENOLINK 67 /* Link has been severed */
#define EADV 68 /* Advertise error */
#define ESRMNT 69 /* Srmount error */
#define ECOMM 70 /* Communication error on send */
#define EPROTO 71 /* Protocol error */
#define EMULTIHOP 72 /* Multihop attempted */
#define EDOTDOT 73 /* RFS specific error */
#define EBADMSG 74 /* Not a data message */
#define EOVERFLOW 75 /* Value too large for defined data type */
#define ENOTUNIQ 76 /* Name not unique on network */
#define EBADFD 77 /* File descriptor in bad state */
#define EREMCHG 78 /* Remote address changed */
#define ELIBACC 79 /* Can not access a needed shared library */
#define ELIBBAD 80 /* Accessing a corrupted shared library */
#define ELIBSCN 81 /* .lib section in a.out corrupted */
#define ELIBMAX 82 /* Attempting to link in too many shared
libraries */
#define ELIBEXEC 83 /* Cannot exec a shared library directly */
#define EILSEQ 84 /* Illegal byte sequence */
#define ERESTART 85 /* Interrupted system call should be restarted
*/
#define ESTRPIPE 86 /* Streams pipe error */
#define EUSERS 87 /* Too many users */
#define ENOTSOCK 88 /* Socket operation on non-socket */
#define EDESTADDRREQ 89 /* Destination address required */
#define EMSGSIZE 90 /* Message too long */
#define EPROTOTYPE 91 /* Protocol wrong type for socket */
#define ENOPROTOOPT 92 /* Protocol not available */
#define EPROTONOSUPPORT 93 /* Protocol not supported */
#define ESOCKTNOSUPPORT 94 /* Socket type not supported */
#define EOPNOTSUPP 95 /* Operation not supported on transport
endpoint */
#define EPFNOSUPPORT 96 /* Protocol family not supported */
#define EAFNOSUPPORT 97 /* Address family not supported by protocol */
#define EADDRINUSE 98 /* Address already in use */
#define EADDRNOTAVAIL 99 /* Cannot assign requested address */
#define ENETDOWN 100 /* Network is down */
#define ENETUNREACH 101 /* Network is unreachable */
#define ENETRESET 102 /* Network dropped connection because of reset
*/
#define ECONNABORTED 103 /* Software caused connection abort */
#define ECONNRESET 104 /* Connection reset by peer */
#define ENOBUFS 105 /* No buffer space available */
#define EISCONN 106 /* Transport endpoint is already connected */
#define ENOTCONN 107 /* Transport endpoint is not connected */
#define ESHUTDOWN 108 /* Cannot send after transport endpoint
shutdown */
#define ETOOMANYREFS 109 /* Too many references: cannot splice */
#define ETIMEDOUT 110 /* Connection timed out */
#define ECONNREFUSED 111 /* Connection refused */
#define EHOSTDOWN 112 /* Host is down */
#define EHOSTUNREACH 113 /* No route to host */
#define EALREADY 114 /* Operation already in progress */
#define EINPROGRESS 115 /* Operation now in progress */
#define ESTALE 116 /* Stale NFS file handle */
#define EUCLEAN 117 /* Structure needs cleaning */
#define ENOTNAM 118 /* Not a XENIX named type file */
#define ENAVAIL 119 /* No XENIX semaphores available */
#define EISNAM 120 /* Is a named type file */
#define EREMOTEIO 121 /* Remote I/O error */
#define EDQUOT 122 /* Quota exceeded */
#define ENOMEDIUM 123 /* No medium found */
#define EMEDIUMTYPE 124 /* Wrong medium type */
#define ECANCELED 125 /* Operation Canceled */
#define ENOKEY 126 /* Required key not available */
#define EKEYEXPIRED 127 /* Key has expired */
#define EKEYREVOKED 128 /* Key has been revoked */
#define EKEYREJECTED 129 /* Key was rejected by service */
/* for robust mutexes */
#define EOWNERDEAD 130 /* Owner died */
#define ENOTRECOVERABLE 131 /* State not recoverable */
#endif
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Processing binary files sometimes has locale and UTF-8 dependent side-effect on -w switch,
Tim Landscheidt <=