Handle NULL strings like g_strdup. s/g_strconcat_a/g_strconcat3_a/ to
authorJeff Garzik <jgarzik@src.gnome.org>
Sat, 2 Jan 1999 03:05:36 +0000 (03:05 +0000)
committerJeff Garzik <jgarzik@src.gnome.org>
Sat, 2 Jan 1999 03:05:36 +0000 (03:05 +0000)
        * glib.h:
        (g_strdup_a, g_strndup_a): Handle NULL strings like g_strdup.
        s/g_strconcat_a/g_strconcat3_a/ to reflect fixed number of args

        * testglib.c:
        Added g_strdup, g_strconcat checks.
        Added str==NULL checks for alloca string macros.
        s/g_strconcat_a/g_strconcat3_a/

12 files changed:
ChangeLog
ChangeLog.pre-2-0
ChangeLog.pre-2-10
ChangeLog.pre-2-12
ChangeLog.pre-2-2
ChangeLog.pre-2-4
ChangeLog.pre-2-6
ChangeLog.pre-2-8
glib.h
glib/glib.h
testglib.c
tests/testglib.c

index 9b6fc714dcf69b1d8ae35ad985936397783cb3cc..92c6b0c4cc530b6fffaf86386d15edc3040e30c4 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+Fri Jan  1 21:58:40 EST 1999  Jeff Garzik  <jgarzik@pobox.com>
+
+       * glib.h:
+       (g_strdup_a, g_strndup_a): Handle NULL strings like g_strdup.
+       s/g_strconcat_a/g_strconcat3_a/ to reflect fixed number of args
+
+       * testglib.c:
+       Added g_strdup, g_strconcat checks.
+       Added str==NULL checks for alloca string macros.
+       s/g_strconcat_a/g_strconcat3_a/
+
 Fri Jan  1 18:30:41 PST 1999 Manish Singh <yosh@gimp.org>
 
        * testglib.c: made the alloca tests follow the testglib style
index 9b6fc714dcf69b1d8ae35ad985936397783cb3cc..92c6b0c4cc530b6fffaf86386d15edc3040e30c4 100644 (file)
@@ -1,3 +1,14 @@
+Fri Jan  1 21:58:40 EST 1999  Jeff Garzik  <jgarzik@pobox.com>
+
+       * glib.h:
+       (g_strdup_a, g_strndup_a): Handle NULL strings like g_strdup.
+       s/g_strconcat_a/g_strconcat3_a/ to reflect fixed number of args
+
+       * testglib.c:
+       Added g_strdup, g_strconcat checks.
+       Added str==NULL checks for alloca string macros.
+       s/g_strconcat_a/g_strconcat3_a/
+
 Fri Jan  1 18:30:41 PST 1999 Manish Singh <yosh@gimp.org>
 
        * testglib.c: made the alloca tests follow the testglib style
index 9b6fc714dcf69b1d8ae35ad985936397783cb3cc..92c6b0c4cc530b6fffaf86386d15edc3040e30c4 100644 (file)
@@ -1,3 +1,14 @@
+Fri Jan  1 21:58:40 EST 1999  Jeff Garzik  <jgarzik@pobox.com>
+
+       * glib.h:
+       (g_strdup_a, g_strndup_a): Handle NULL strings like g_strdup.
+       s/g_strconcat_a/g_strconcat3_a/ to reflect fixed number of args
+
+       * testglib.c:
+       Added g_strdup, g_strconcat checks.
+       Added str==NULL checks for alloca string macros.
+       s/g_strconcat_a/g_strconcat3_a/
+
 Fri Jan  1 18:30:41 PST 1999 Manish Singh <yosh@gimp.org>
 
        * testglib.c: made the alloca tests follow the testglib style
index 9b6fc714dcf69b1d8ae35ad985936397783cb3cc..92c6b0c4cc530b6fffaf86386d15edc3040e30c4 100644 (file)
@@ -1,3 +1,14 @@
+Fri Jan  1 21:58:40 EST 1999  Jeff Garzik  <jgarzik@pobox.com>
+
+       * glib.h:
+       (g_strdup_a, g_strndup_a): Handle NULL strings like g_strdup.
+       s/g_strconcat_a/g_strconcat3_a/ to reflect fixed number of args
+
+       * testglib.c:
+       Added g_strdup, g_strconcat checks.
+       Added str==NULL checks for alloca string macros.
+       s/g_strconcat_a/g_strconcat3_a/
+
 Fri Jan  1 18:30:41 PST 1999 Manish Singh <yosh@gimp.org>
 
        * testglib.c: made the alloca tests follow the testglib style
index 9b6fc714dcf69b1d8ae35ad985936397783cb3cc..92c6b0c4cc530b6fffaf86386d15edc3040e30c4 100644 (file)
@@ -1,3 +1,14 @@
+Fri Jan  1 21:58:40 EST 1999  Jeff Garzik  <jgarzik@pobox.com>
+
+       * glib.h:
+       (g_strdup_a, g_strndup_a): Handle NULL strings like g_strdup.
+       s/g_strconcat_a/g_strconcat3_a/ to reflect fixed number of args
+
+       * testglib.c:
+       Added g_strdup, g_strconcat checks.
+       Added str==NULL checks for alloca string macros.
+       s/g_strconcat_a/g_strconcat3_a/
+
 Fri Jan  1 18:30:41 PST 1999 Manish Singh <yosh@gimp.org>
 
        * testglib.c: made the alloca tests follow the testglib style
index 9b6fc714dcf69b1d8ae35ad985936397783cb3cc..92c6b0c4cc530b6fffaf86386d15edc3040e30c4 100644 (file)
@@ -1,3 +1,14 @@
+Fri Jan  1 21:58:40 EST 1999  Jeff Garzik  <jgarzik@pobox.com>
+
+       * glib.h:
+       (g_strdup_a, g_strndup_a): Handle NULL strings like g_strdup.
+       s/g_strconcat_a/g_strconcat3_a/ to reflect fixed number of args
+
+       * testglib.c:
+       Added g_strdup, g_strconcat checks.
+       Added str==NULL checks for alloca string macros.
+       s/g_strconcat_a/g_strconcat3_a/
+
 Fri Jan  1 18:30:41 PST 1999 Manish Singh <yosh@gimp.org>
 
        * testglib.c: made the alloca tests follow the testglib style
index 9b6fc714dcf69b1d8ae35ad985936397783cb3cc..92c6b0c4cc530b6fffaf86386d15edc3040e30c4 100644 (file)
@@ -1,3 +1,14 @@
+Fri Jan  1 21:58:40 EST 1999  Jeff Garzik  <jgarzik@pobox.com>
+
+       * glib.h:
+       (g_strdup_a, g_strndup_a): Handle NULL strings like g_strdup.
+       s/g_strconcat_a/g_strconcat3_a/ to reflect fixed number of args
+
+       * testglib.c:
+       Added g_strdup, g_strconcat checks.
+       Added str==NULL checks for alloca string macros.
+       s/g_strconcat_a/g_strconcat3_a/
+
 Fri Jan  1 18:30:41 PST 1999 Manish Singh <yosh@gimp.org>
 
        * testglib.c: made the alloca tests follow the testglib style
index 9b6fc714dcf69b1d8ae35ad985936397783cb3cc..92c6b0c4cc530b6fffaf86386d15edc3040e30c4 100644 (file)
@@ -1,3 +1,14 @@
+Fri Jan  1 21:58:40 EST 1999  Jeff Garzik  <jgarzik@pobox.com>
+
+       * glib.h:
+       (g_strdup_a, g_strndup_a): Handle NULL strings like g_strdup.
+       s/g_strconcat_a/g_strconcat3_a/ to reflect fixed number of args
+
+       * testglib.c:
+       Added g_strdup, g_strconcat checks.
+       Added str==NULL checks for alloca string macros.
+       s/g_strconcat_a/g_strconcat3_a/
+
 Fri Jan  1 18:30:41 PST 1999 Manish Singh <yosh@gimp.org>
 
        * testglib.c: made the alloca tests follow the testglib style
diff --git a/glib.h b/glib.h
index a818844aaef80babcdd02e708afb475e0918b1fa..a7160758d4b817bfe4c18703247c224d3e34ebd6 100644 (file)
--- a/glib.h
+++ b/glib.h
@@ -1461,26 +1461,32 @@ gpointer g_memdup               (gconstpointer mem,
 #if G_HAVE_ALLOCA
 
 #  define g_strdup_a(newstr,str) G_STMT_START { \
-         const char *__old = (str);            \
-         char *__new;                          \
-         size_t __len = strlen (__old) + 1;    \
-         __new = alloca (__len);               \
-         memcpy (__new, __old, __len);         \
-         (newstr) = __new;                     \
+         if ((str) == NULL) (newstr) = NULL;   \
+         else {                                \
+           const char *__old = (str);          \
+           char *__new;                        \
+           size_t __len = strlen (__old) + 1;  \
+           __new = alloca (__len);             \
+           memcpy (__new, __old, __len);       \
+           (newstr) = __new;                   \
+         }                                     \
    } G_STMT_END
 
 #  define g_strndup_a(newstr,str,n) G_STMT_START { \
-         const char *__old = (str);            \
-         char *__new;                          \
-         size_t __len = strlen (__old);        \
-         if (__len > (n)) __len = (n);         \
-         __new = alloca (__len + 1);           \
-         memcpy (__new, __old, __len);         \
-         __new[__len] = 0;                     \
-         (newstr) = __new;                     \
+         if ((str) == NULL) (newstr) = NULL;   \
+         else {                                \
+           const char *__old = (str);          \
+           char *__new;                        \
+           size_t __len = strlen (__old);      \
+           if (__len > (n)) __len = (n);       \
+           __new = alloca (__len + 1);         \
+           memcpy (__new, __old, __len);       \
+           __new[__len] = 0;                   \
+           (newstr) = __new;                   \
+         }                                     \
    } G_STMT_END
 
-#  define g_strconcat_a(newstr,str1,str2,str3) G_STMT_START { \
+#  define g_strconcat3_a(newstr,str1,str2,str3) G_STMT_START { \
          size_t __len1 = ((str1) == (gchar*)NULL) ? 0 : strlen((str1)); \
          size_t __len2 = ((str2) == (gchar*)NULL) ? 0 : strlen((str2)); \
          size_t __len3 = ((str3) == (gchar*)NULL) ? 0 : strlen((str3)); \
index a818844aaef80babcdd02e708afb475e0918b1fa..a7160758d4b817bfe4c18703247c224d3e34ebd6 100644 (file)
@@ -1461,26 +1461,32 @@ gpointer g_memdup               (gconstpointer mem,
 #if G_HAVE_ALLOCA
 
 #  define g_strdup_a(newstr,str) G_STMT_START { \
-         const char *__old = (str);            \
-         char *__new;                          \
-         size_t __len = strlen (__old) + 1;    \
-         __new = alloca (__len);               \
-         memcpy (__new, __old, __len);         \
-         (newstr) = __new;                     \
+         if ((str) == NULL) (newstr) = NULL;   \
+         else {                                \
+           const char *__old = (str);          \
+           char *__new;                        \
+           size_t __len = strlen (__old) + 1;  \
+           __new = alloca (__len);             \
+           memcpy (__new, __old, __len);       \
+           (newstr) = __new;                   \
+         }                                     \
    } G_STMT_END
 
 #  define g_strndup_a(newstr,str,n) G_STMT_START { \
-         const char *__old = (str);            \
-         char *__new;                          \
-         size_t __len = strlen (__old);        \
-         if (__len > (n)) __len = (n);         \
-         __new = alloca (__len + 1);           \
-         memcpy (__new, __old, __len);         \
-         __new[__len] = 0;                     \
-         (newstr) = __new;                     \
+         if ((str) == NULL) (newstr) = NULL;   \
+         else {                                \
+           const char *__old = (str);          \
+           char *__new;                        \
+           size_t __len = strlen (__old);      \
+           if (__len > (n)) __len = (n);       \
+           __new = alloca (__len + 1);         \
+           memcpy (__new, __old, __len);       \
+           __new[__len] = 0;                   \
+           (newstr) = __new;                   \
+         }                                     \
    } G_STMT_END
 
-#  define g_strconcat_a(newstr,str1,str2,str3) G_STMT_START { \
+#  define g_strconcat3_a(newstr,str1,str2,str3) G_STMT_START { \
          size_t __len1 = ((str1) == (gchar*)NULL) ? 0 : strlen((str1)); \
          size_t __len2 = ((str2) == (gchar*)NULL) ? 0 : strlen((str2)); \
          size_t __len3 = ((str3) == (gchar*)NULL) ? 0 : strlen((str3)); \
index 852d5582a62cce00747a948c0f9537a354f91c42..70e9ee85e4cd0aaf493666cfb019b2be921de361 100644 (file)
@@ -748,6 +748,29 @@ main (int   argc,
 
   g_print ("ok\n");
 
+  g_print ("checking g_strdup...");
+  g_assert(g_strdup(NULL) == NULL);
+  string = g_strdup(GLIB_TEST_STRING);
+  g_assert(string != NULL);
+  g_assert(strcmp(string, GLIB_TEST_STRING) == 0);
+  g_free(string);
+
+  g_print ("ok\n");
+
+  g_print ("checking g_strconcat...");
+  string = g_strconcat(GLIB_TEST_STRING, NULL);
+  g_assert(string != NULL);
+  g_assert(strcmp(string, GLIB_TEST_STRING) == 0);
+  g_free(string);
+  string = g_strconcat(GLIB_TEST_STRING, GLIB_TEST_STRING, 
+                      GLIB_TEST_STRING, NULL);
+  g_assert(string != NULL);
+  g_assert(strcmp(string, GLIB_TEST_STRING GLIB_TEST_STRING
+                         GLIB_TEST_STRING) == 0);
+  g_free(string);
+  
+  g_print ("ok\n");
+
   /* g_debug (argv[0]); */
 
   /* Relation tests */
@@ -879,13 +902,17 @@ main (int   argc,
   g_strdup_a(string, GLIB_TEST_STRING);
   g_assert(string != NULL);
   g_assert(strcmp(string, GLIB_TEST_STRING) == 0);
+  g_strdup_a(string, NULL);
+  g_assert(string == NULL);
 
   g_strndup_a(string, GLIB_TEST_STRING, 5);
   g_assert(string != NULL);
   g_assert(strlen(string) == 5);
   g_assert(strcmp(string, GLIB_TEST_STRING_5) == 0);
+  g_strndup_a(string, NULL, 20);
+  g_assert(string == NULL);
 
-  g_strconcat_a(string, GLIB_TEST_STRING, GLIB_TEST_STRING, GLIB_TEST_STRING);
+  g_strconcat3_a(string, GLIB_TEST_STRING, GLIB_TEST_STRING, GLIB_TEST_STRING);
   g_assert(string != NULL);
   g_assert(strcmp(string, GLIB_TEST_STRING GLIB_TEST_STRING
                          GLIB_TEST_STRING) == 0);
index 852d5582a62cce00747a948c0f9537a354f91c42..70e9ee85e4cd0aaf493666cfb019b2be921de361 100644 (file)
@@ -748,6 +748,29 @@ main (int   argc,
 
   g_print ("ok\n");
 
+  g_print ("checking g_strdup...");
+  g_assert(g_strdup(NULL) == NULL);
+  string = g_strdup(GLIB_TEST_STRING);
+  g_assert(string != NULL);
+  g_assert(strcmp(string, GLIB_TEST_STRING) == 0);
+  g_free(string);
+
+  g_print ("ok\n");
+
+  g_print ("checking g_strconcat...");
+  string = g_strconcat(GLIB_TEST_STRING, NULL);
+  g_assert(string != NULL);
+  g_assert(strcmp(string, GLIB_TEST_STRING) == 0);
+  g_free(string);
+  string = g_strconcat(GLIB_TEST_STRING, GLIB_TEST_STRING, 
+                      GLIB_TEST_STRING, NULL);
+  g_assert(string != NULL);
+  g_assert(strcmp(string, GLIB_TEST_STRING GLIB_TEST_STRING
+                         GLIB_TEST_STRING) == 0);
+  g_free(string);
+  
+  g_print ("ok\n");
+
   /* g_debug (argv[0]); */
 
   /* Relation tests */
@@ -879,13 +902,17 @@ main (int   argc,
   g_strdup_a(string, GLIB_TEST_STRING);
   g_assert(string != NULL);
   g_assert(strcmp(string, GLIB_TEST_STRING) == 0);
+  g_strdup_a(string, NULL);
+  g_assert(string == NULL);
 
   g_strndup_a(string, GLIB_TEST_STRING, 5);
   g_assert(string != NULL);
   g_assert(strlen(string) == 5);
   g_assert(strcmp(string, GLIB_TEST_STRING_5) == 0);
+  g_strndup_a(string, NULL, 20);
+  g_assert(string == NULL);
 
-  g_strconcat_a(string, GLIB_TEST_STRING, GLIB_TEST_STRING, GLIB_TEST_STRING);
+  g_strconcat3_a(string, GLIB_TEST_STRING, GLIB_TEST_STRING, GLIB_TEST_STRING);
   g_assert(string != NULL);
   g_assert(strcmp(string, GLIB_TEST_STRING GLIB_TEST_STRING
                          GLIB_TEST_STRING) == 0);