]> granicus.if.org Git - procps-ng/commitdiff
Alexandra N. Kossovsky's KOI8-R locale fix #153043
authoralbert <>
Tue, 8 Oct 2002 18:45:19 +0000 (18:45 +0000)
committeralbert <>
Tue, 8 Oct 2002 18:45:19 +0000 (18:45 +0000)
proc/output.c
w.c

index 66e4e4074fc3141b5451826ae513a0faba093431..a1a0c6a59729b606261edd5e25ff285d2b4ef9cf 100644 (file)
@@ -16,7 +16,7 @@ unsigned print_str(FILE* file, char *s, unsigned max) {
            fputc(s[i], file);
        else {
            if (max - i > 3) {
-               fprintf(file, "\\%03o", s[i]);
+               fprintf(file, "\\%03o", (unsigned char)s[i]);
                i += 3; /* 4 printed, but i counts one */
            } else
                return max - i;
@@ -36,7 +36,7 @@ unsigned print_strlist(FILE* file, char **strs, char* sep, unsigned max) {
                fputc(strs[0][i], file);
            else {
                if (max-(n+i) > 3) {
-                   fprintf(file, "\\%03o", strs[0][i]);
+                   fprintf(file, "\\%03o", (unsigned char)strs[0][i]);
                    n += 3; /* 4 printed, but i counts one */
                } else
                    return max - n;
diff --git a/w.c b/w.c
index 7d112b9173965023ab724df5a43d8bccade9ad06..dfb7ee3bccb3bd5733e14a074084f48dd471beca 100644 (file)
--- a/w.c
+++ b/w.c
@@ -23,7 +23,7 @@
 #include <time.h>
 #include <unistd.h>
 #include <utmp.h>
-/* #include <sys/param.h>*/    /* for HZ */
+#include <locale.h>
 
 static int ignoreuser = 0;     /* for '-u' */
 static proc_t **procs;         /* our snapshot of the process table */
@@ -238,6 +238,7 @@ int main(int argc, char **argv) {
     from = 0;
 #endif
 
+    setlocale(LC_ALL, "");
     for (args=0; (ch = getopt(argc, argv, "hlusfV")) != EOF; args++)
        switch (ch) {
          case 'h': header = 0;         break;