Module Name: src
Committed By: tsutsui
Date: Sat Aug 30 14:24:02 UTC 2014
Modified Files:
src/sys/lib/libsa: subr_prf.c
Log Message:
Revert stupid and untested changes. There was no extra copy in the macros.
Christos, you should reread our commit guideline as a Core member.
To generate a diff of this commit:
cvs rdiff -u -r1.26 -r1.27 src/sys/lib/libsa/subr_prf.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/lib/libsa/subr_prf.c
diff -u src/sys/lib/libsa/subr_prf.c:1.26 src/sys/lib/libsa/subr_prf.c:1.27
--- src/sys/lib/libsa/subr_prf.c:1.26 Sat Aug 30 13:09:27 2014
+++ src/sys/lib/libsa/subr_prf.c Sat Aug 30 14:24:02 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: subr_prf.c,v 1.26 2014/08/30 13:09:27 christos Exp $ */
+/* $NetBSD: subr_prf.c,v 1.27 2014/08/30 14:24:02 tsutsui Exp $ */
/*-
* Copyright (c) 1993
@@ -79,22 +79,30 @@ const char hexdigits[16] = "0123456789ab
#define ZEROPAD 0x40
#define NEGATIVE 0x80
#define KPRINTN(base) kprintn(put, ul, base, lflag, width)
-#define LADJUSTPAD(c) \
+#define RADJUSTZEROPAD() \
+do { \
+ if ((lflag & (ZEROPAD|LADJUST)) == ZEROPAD) { \
+ while (width-- > 0) \
+ put('0'); \
+ } \
+} while (/*CONSTCOND*/0)
+#define LADJUSTPAD() \
do { \
if (lflag & LADJUST) { \
while (width-- > 0) \
- put(c); \
+ put(' '); \
} \
} while (/*CONSTCOND*/0)
-#define RADJUSTPAD(c) \
+#define RADJUSTPAD() \
do { \
if ((lflag & (ZEROPAD|LADJUST)) == 0) { \
while (width-- > 0) \
- put(c); \
+ put(' '); \
} \
} while (/*CONSTCOND*/0)
#else /* LIBSA_PRINTF_WIDTH_SUPPORT */
#define KPRINTN(base) kprintn(put, ul, base)
+#define RADJUSTZEROPAD() /**/
#define LADJUSTPAD() /**/
#define RADJUSTPAD() /**/
#endif /* LIBSA_PRINTF_WIDTH_SUPPORT */
@@ -227,9 +235,9 @@ reswitch:
#ifdef LIBSA_PRINTF_WIDTH_SUPPORT
--width;
#endif
- RADJUSTPAD(' ');
+ RADJUSTPAD();
put(ch & 0xFF);
- LADJUSTPAD(' ');
+ LADJUSTPAD();
break;
case 's':
p = va_arg(ap, char *);
@@ -238,10 +246,10 @@ reswitch:
continue;
width -= q - p;
#endif
- RADJUSTPAD(' ');
+ RADJUSTPAD();
while ((ch = (unsigned char)*p++))
put(ch);
- LADJUSTPAD(' ');
+ LADJUSTPAD();
break;
case 'd':
ul =
@@ -324,10 +332,10 @@ kprintn(void (*put)(int), UINTMAX_T ul,
put(*--p);
}
#endif
- RADJUSTPAD(' ');
- RADJUSTPAD('0');
+ RADJUSTPAD();
+ RADJUSTZEROPAD();
do {
put(*--p);
} while (p > buf);
- LADJUSTPAD(' ');
+ LADJUSTPAD();
}