summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjbj <jbj>2007-11-04 13:51:28 +0000
committerjbj <jbj>2007-11-04 13:51:28 +0000
commit6a38a7e33aca951d054c78d2625de4133102e029 (patch)
tree2f062e6ee556c2843f25f8fefc101ea153d1f684
parent92ab571a6eb169a7015c2823a9bfe011f7192dde (diff)
downloadlibpopt-6a38a7e33aca951d054c78d2625de4133102e029.tar.gz
- jbj: change sizeof to use the type implicitly, rather than explicitly.
- jbj: remove incorrect casts, changing to size_t where needed. - jbj: remove unused STD_VFPRINTF macro.
-rw-r--r--.splintrc1
-rw-r--r--CHANGES4
-rw-r--r--poptint.c189
3 files changed, 93 insertions, 101 deletions
diff --git a/.splintrc b/.splintrc
index 8be1e2a..26806ab 100644
--- a/.splintrc
+++ b/.splintrc
@@ -45,7 +45,6 @@
+charint
-exportvar
+matchanyintegral
--loopswitchbreak
-varuse
# --- +partial artifacts
diff --git a/CHANGES b/CHANGES
index 3d77fc6..c93d02d 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,4 +1,8 @@
1.12 -> 1.13:
+ - jbj: change sizeof to use the type implicitly, rather than explicitly.
+ - jbj: remove incorrect casts, changing to size_t where needed.
+ - jbj: remove unused STD_VFPRINTF macro.
+ - jbj: reindent (and otherwise diddle) recent patch for popt coding style.
- jbj: remove splint bounds/branch annotations, little gain, much pain.
- jbj: revert alloca usage again again.
- jbj: handle Solaris signed character isspace(3) issues consistently.
diff --git a/poptint.c b/poptint.c
index bafd465..cf79bb4 100644
--- a/poptint.c
+++ b/poptint.c
@@ -15,142 +15,131 @@
#include "system.h"
#include "poptint.h"
-#define STD_VFPRINTF(stream, format, args, retval) \
- va_start ((args), (format)); \
- (retval) = vfprintf ((stream), (format), (args)); \
- va_end ((args));
-
#ifdef HAVE_ICONV
static char *
strdup_locale_from_utf8 (char *buffer)
{
- char *codeset = NULL;
- char *pout = NULL, *dest_str;
- iconv_t fd;
- int ib, ob, dest_size;
- int done, is_error;
- size_t err, used;
+ char *codeset = NULL;
+ char *pout = NULL, *dest_str;
+ iconv_t fd;
+ size_t ib, ob, dest_size;
+ int done, is_error;
+ size_t err, used;
- if (!buffer)
- return NULL;
+ if (!buffer)
+ return NULL;
#ifdef HAVE_LANGINFO_H
- codeset = nl_langinfo (CODESET);
+ codeset = nl_langinfo (CODESET);
#endif
- if (codeset &&
- strcmp (codeset, "UTF-8") &&
- (fd = iconv_open (codeset, "UTF-8")) != (iconv_t)-1) {
- char *pin = buffer;
- char *shift_pin = NULL;
-
- iconv (fd, NULL, (size_t*)&ib, &pout, (size_t*)&ob);
- ib = strlen (buffer);
- dest_size = ob = ib;
- dest_str = pout = malloc ((dest_size + 1) * sizeof (char));
- done = is_error = 0;
- while (!done && !is_error) {
- err = iconv (fd, (const char**)&pin, (size_t*)&ib, &pout, (size_t*)&ob);
-
- if (err == (size_t)-1) {
- switch (errno) {
- case EINVAL:
- done = 1;
- break;
- case E2BIG:
- used = pout - dest_str;
- dest_size *= 2;
- dest_str = realloc (dest_str, (dest_size + 1) * sizeof (char));
- pout = dest_str + used;
- ob = dest_size - used;
- break;
- case EILSEQ:
- is_error = 1;
- break;
- default:
- is_error = 1;
- break;
- }
- } else {
- if (!shift_pin) {
- shift_pin = pin;
- pin = NULL;
- ib = 0;
- } else {
- done = 1;
- }
- }
+ if (codeset && strcmp(codeset, "UTF-8")
+ && (fd = iconv_open(codeset, "UTF-8")) != (iconv_t)-1)
+ {
+ char *pin = buffer;
+ char *shift_pin = NULL;
+
+ err = iconv(fd, NULL, &ib, &pout, &ob);
+ dest_size = ob = ib = strlen(buffer);
+ dest_str = pout = malloc((dest_size + 1) * sizeof(*dest_str));
+ done = is_error = 0;
+ while (!done && !is_error) {
+ err = iconv(fd, &pin, &ib, &pout, &ob);
+
+ if (err == (size_t)-1) {
+ switch (errno) {
+ case EINVAL:
+ done = 1;
+ /*@switchbreak@*/ break;
+ case E2BIG:
+ used = pout - dest_str;
+ dest_size *= 2;
+ dest_str = realloc(dest_str, (dest_size + 1) * sizeof(*dest_str));
+ pout = dest_str + used;
+ ob = dest_size - used;
+ /*@switchbreak@*/ break;
+ case EILSEQ:
+ is_error = 1;
+ /*@switchbreak@*/ break;
+ default:
+ is_error = 1;
+ /*@switchbreak@*/ break;
+ }
+ } else {
+ if (!shift_pin) {
+ shift_pin = pin;
+ pin = NULL;
+ ib = 0;
+ } else {
+ done = 1;
+ }
+ }
+ }
+ iconv_close(fd);
+ *pout = '\0';
+ dest_str = strdup(dest_str);
+ } else {
+ dest_str = strdup(buffer);
}
- iconv_close (fd);
- *pout = '\0';
- dest_str = strdup (dest_str);
- } else {
- dest_str = strdup (buffer);
- }
-
- return dest_str;
+
+ return dest_str;
}
#endif
static char *
strdup_vprintf (const char *format, va_list ap)
{
- char *buffer = NULL;
- char c;
- va_list apc;
+ char *buffer = NULL;
+ char c;
+ va_list apc;
- va_copy(apc, ap); /* XXX linux amd64/ppc needs a copy. */
+ va_copy(apc, ap); /* XXX linux amd64/ppc needs a copy. */
- buffer = calloc (sizeof (char), vsnprintf (&c, 1, format, ap) + 1);
- vsprintf (buffer, format, apc);
+ buffer = calloc(sizeof(*buffer), vsnprintf (&c, 1, format, ap) + 1);
+ vsprintf(buffer, format, apc);
- va_end(apc);
+ va_end(apc);
- return buffer;
+ return buffer;
}
char *
POPT_prev_char (const char *str)
{
- char *p = (char*)str;
+ char *p = (char*)str;
- while (1) {
- p--;
- if ((*p & 0xc0) != 0x80)
- return (char *)p;
- }
+ while (1) {
+ p--;
+ if ((*p & 0xc0) != 0x80)
+ return (char *)p;
+ }
}
int
POPT_fprintf (FILE* stream, const char *format, ...)
{
- int retval = 0;
- va_list args;
- char *buffer = NULL;
+ int retval = 0;
+ va_list args;
+ char *buffer = NULL;
#ifdef HAVE_ICONV
- char *locale_str = NULL;
+ char *locale_str = NULL;
#endif
- va_start (args, format);
- buffer = strdup_vprintf (format, args);
- va_end (args);
+ va_start (args, format);
+ buffer = strdup_vprintf(format, args);
+ va_end (args);
#ifdef HAVE_ICONV
- locale_str = strdup_locale_from_utf8 (buffer);
- if (locale_str) {
- retval = fprintf (stream, "%s", locale_str);
- free (locale_str);
- } else {
-#endif
- retval = fprintf (stream, "%s", buffer);
-#ifdef HAVE_ICONV
- }
+ locale_str = strdup_locale_from_utf8(buffer);
+ if (locale_str) {
+ retval = fprintf(stream, "%s", locale_str);
+ free(locale_str);
+ } else
#endif
- free (buffer);
-
- return retval;
+ {
+ retval = fprintf(stream, "%s", buffer);
+ }
+ free (buffer);
+ return retval;
}
-
-#undef STD_VFPRINTF
-