diff -up ./src/xxd/xxd.c.xxdloc ./src/xxd/xxd.c --- ./src/xxd/xxd.c.xxdloc 2010-05-15 13:04:06.000000000 +0200 +++ ./src/xxd/xxd.c 2011-04-05 22:43:02.476835415 +0200 @@ -96,6 +96,7 @@ #if __MWERKS__ && !defined(BEBOX) # include <unix.h> /* for fdopen() on MAC */ #endif +#include <locale.h> #if defined(__BORLANDC__) && __BORLANDC__ <= 0x0410 && !defined(fileno) /* Missing define and prototype grabbed from the BC 4.0 <stdio.h> */ @@ -478,6 +479,11 @@ main(argc, argv) long length = -1, n = 0, seekoff = 0; static char l[LLEN+1]; /* static because it may be too big for stack */ char *pp; + char *lang=getenv("LANG"); + if(!lang) lang=getenv("LC_ALL"); + if(!lang) lang=getenv("LC_CTYPE"); + if(lang) + setlocale(LC_ALL, lang); #ifdef AMIGA /* This program doesn't work when started from the Workbench */ @@ -818,7 +824,7 @@ main(argc, argv) #else (e > 31 && e < 127) #endif - ? e : '.'; + ? e : isalnum(e) ? e : '.'; if (e) nonzero++; n++;