aboutsummaryrefslogtreecommitdiffstats
path: root/qprintf.c
diff options
context:
space:
mode:
authorreinelt <reinelt@3ae390bd-cb1e-0410-b409-cd5a39f66f1f>2005-05-08 04:32:45 +0000
committerreinelt <reinelt@3ae390bd-cb1e-0410-b409-cd5a39f66f1f>2005-05-08 04:32:45 +0000
commitdbf5d92605a9db10e3e3cb154d03a515c5d5c5af (patch)
tree501d5dda3ce90fe924b893e487d9ef9f0683382b /qprintf.c
parenta1c471e9fb7cadb68bb182ab2e9715a0aa092386 (diff)
downloadlcd4linux-dbf5d92605a9db10e3e3cb154d03a515c5d5c5af.tar.gz
[lcd4linux @ 2005-05-08 04:32:43 by reinelt]
CodingStyle added and applied git-svn-id: https://ssl.bulix.org/svn/lcd4linux/trunk@547 3ae390bd-cb1e-0410-b409-cd5a39f66f1f
Diffstat (limited to 'qprintf.c')
-rw-r--r--qprintf.c311
1 files changed, 159 insertions, 152 deletions
diff --git a/qprintf.c b/qprintf.c
index 530d709..fd5bfd3 100644
--- a/qprintf.c
+++ b/qprintf.c
@@ -1,4 +1,4 @@
-/* $Id: qprintf.c,v 1.7 2005/01/18 06:30:23 reinelt Exp $
+/* $Id: qprintf.c,v 1.8 2005/05/08 04:32:45 reinelt Exp $
*
* simple but quick snprintf() replacement
*
@@ -26,6 +26,9 @@
*
*
* $Log: qprintf.c,v $
+ * Revision 1.8 2005/05/08 04:32:45 reinelt
+ * CodingStyle added and applied
+ *
* Revision 1.7 2005/01/18 06:30:23 reinelt
* added (C) to all copyright statements
*
@@ -72,161 +75,165 @@
#include <stdarg.h>
#include <string.h>
-static char *itoa(char* buffer, const size_t size, int value)
+static char *itoa(char *buffer, const size_t size, int value)
{
- char *p;
- int sign;
-
- /* sanity checks */
- if (buffer==NULL || size<2) return (NULL);
-
- /* remember sign of value */
- sign = 0;
- if (value < 0) {
- sign = 1;
- value = -value;
- }
-
- /* p points to last char */
- p = buffer+size-1;
-
- /* set terminating zero */
- *p='\0';
-
- do {
- *--p = value%10 + '0';
- value = value/10;
- } while (value!=0 && p>buffer);
-
- if (sign && p>buffer)
- *--p = '-';
-
- return p;
-}
-
-
-static char *utoa(char* buffer, const size_t size, unsigned int value)
+ char *p;
+ int sign;
+
+ /* sanity checks */
+ if (buffer == NULL || size < 2)
+ return (NULL);
+
+ /* remember sign of value */
+ sign = 0;
+ if (value < 0) {
+ sign = 1;
+ value = -value;
+ }
+
+ /* p points to last char */
+ p = buffer + size - 1;
+
+ /* set terminating zero */
+ *p = '\0';
+
+ do {
+ *--p = value % 10 + '0';
+ value = value / 10;
+ } while (value != 0 && p > buffer);
+
+ if (sign && p > buffer)
+ *--p = '-';
+
+ return p;
+}
+
+
+static char *utoa(char *buffer, const size_t size, unsigned int value)
{
- char *p;
-
- /* sanity checks */
- if (buffer==NULL || size<2) return (NULL);
-
- /* p points to last char */
- p = buffer+size-1;
-
- /* set terminating zero */
- *p='\0';
-
- do {
- *--p = value%10 + '0';
- value = value/10;
- } while (value!=0 && p>buffer);
-
- return p;
-}
-
-
-static char *utox(char* buffer, const size_t size, unsigned int value)
+ char *p;
+
+ /* sanity checks */
+ if (buffer == NULL || size < 2)
+ return (NULL);
+
+ /* p points to last char */
+ p = buffer + size - 1;
+
+ /* set terminating zero */
+ *p = '\0';
+
+ do {
+ *--p = value % 10 + '0';
+ value = value / 10;
+ } while (value != 0 && p > buffer);
+
+ return p;
+}
+
+
+static char *utox(char *buffer, const size_t size, unsigned int value)
{
- char *p;
- int digit;
-
- /* sanity checks */
- if (buffer==NULL || size<2) return (NULL);
-
- /* p points to last char */
- p = buffer+size-1;
-
- /* set terminating zero */
- *p='\0';
-
- do {
- digit = value%16;
- value = value/16;
- *--p = (digit < 10 ? '0' : 'a'-10) + digit;
- } while (value!=0 && p>buffer);
-
- return p;
-}
-
-
-int qprintf(char *str, const size_t size, const char *format, ...) {
-
- va_list ap;
- const char *src;
- char *dst;
- unsigned int len;
-
- src = format;
- dst = str;
- len = 0;
-
- va_start(ap, format);
-
- /* use size-1 for terminating zero */
- while (len < size-1) {
-
- if (*src=='%') {
- char buf[12], *s;
- int d;
- unsigned int u;
- switch (*++src) {
- case 's':
- src++;
- s = va_arg(ap, char *);
- while (len < size-1 && *s != '\0') {
- len++;
- *dst++ = *s++;
- }
- break;
- case 'd':
- src++;
- d = va_arg(ap, int);
- s = itoa (buf, sizeof(buf), d);
- while (len < size && *s != '\0') {
- len++;
- *dst++ = *s++;
- }
- break;
- case 'u':
- src++;
- u = va_arg(ap, unsigned int);
- s = utoa (buf, sizeof(buf), u);
- while (len < size-1 && *s != '\0') {
- len++;
- *dst++ = *s++;
- }
- break;
- case 'x':
- src++;
- u = va_arg(ap, unsigned int);
- s = utox (buf, sizeof(buf), u);
- while (len < size-1 && *s != '\0') {
- len++;
- *dst++ = *s++;
+ char *p;
+ int digit;
+
+ /* sanity checks */
+ if (buffer == NULL || size < 2)
+ return (NULL);
+
+ /* p points to last char */
+ p = buffer + size - 1;
+
+ /* set terminating zero */
+ *p = '\0';
+
+ do {
+ digit = value % 16;
+ value = value / 16;
+ *--p = (digit < 10 ? '0' : 'a' - 10) + digit;
+ } while (value != 0 && p > buffer);
+
+ return p;
+}
+
+
+int qprintf(char *str, const size_t size, const char *format, ...)
+{
+
+ va_list ap;
+ const char *src;
+ char *dst;
+ unsigned int len;
+
+ src = format;
+ dst = str;
+ len = 0;
+
+ va_start(ap, format);
+
+ /* use size-1 for terminating zero */
+ while (len < size - 1) {
+
+ if (*src == '%') {
+ char buf[12], *s;
+ int d;
+ unsigned int u;
+ switch (*++src) {
+ case 's':
+ src++;
+ s = va_arg(ap, char *);
+ while (len < size - 1 && *s != '\0') {
+ len++;
+ *dst++ = *s++;
+ }
+ break;
+ case 'd':
+ src++;
+ d = va_arg(ap, int);
+ s = itoa(buf, sizeof(buf), d);
+ while (len < size && *s != '\0') {
+ len++;
+ *dst++ = *s++;
+ }
+ break;
+ case 'u':
+ src++;
+ u = va_arg(ap, unsigned int);
+ s = utoa(buf, sizeof(buf), u);
+ while (len < size - 1 && *s != '\0') {
+ len++;
+ *dst++ = *s++;
+ }
+ break;
+ case 'x':
+ src++;
+ u = va_arg(ap, unsigned int);
+ s = utox(buf, sizeof(buf), u);
+ while (len < size - 1 && *s != '\0') {
+ len++;
+ *dst++ = *s++;
+ }
+ break;
+ default:
+ len++;
+ *dst++ = '%';
+ }
+ } else {
+ len++;
+ *dst++ = *src;
+ if (*src++ == '\0')
+ break;
}
- break;
- default:
+ }
+
+ va_end(ap);
+
+ /* enforce terminating zero */
+ if (len >= size - 1 && *(dst - 1) != '\0') {
len++;
- *dst++ = '%';
- }
- } else {
- len++;
- *dst++ = *src;
- if (*src++ == '\0') break;
+ *dst = '\0';
}
- }
-
- va_end(ap);
-
- /* enforce terminating zero */
- if (len>=size-1 && *(dst-1)!='\0') {
- len++;
- *dst='\0';
- }
-
- /* do not count terminating zero */
- return len-1;
-}
+ /* do not count terminating zero */
+ return len - 1;
+}