Przeglądaj źródła

add implementation for stpcpy

Chris Toshok 15 lat temu
rodzic
commit
d2d31bc32f
4 zmienionych plików z 19 dodań i 2 usunięć
  1. 1 1
      eglib/configure.ac
  2. 1 0
      eglib/src/eglib-remap.h
  3. 3 1
      eglib/src/glib.h
  4. 14 0
      eglib/src/gstr.c

+ 1 - 1
eglib/configure.ac

@@ -96,7 +96,7 @@ AC_CHECK_SIZEOF(int)
 AC_CHECK_SIZEOF(void *)
 AC_CHECK_SIZEOF(long)
 AC_CHECK_SIZEOF(long long)
-AC_CHECK_FUNCS(strndup strlcpy getpwuid_r strtok_r rewinddir vasprintf)
+AC_CHECK_FUNCS(strndup strlcpy stpcpy getpwuid_r strtok_r rewinddir vasprintf)
 AM_CONDITIONAL(NEED_VASPRINTF, test x$have_vasprintf = x )
 AC_CHECK_LIB(iconv, iconv_open, LIBS="$LIBS -liconv")
 AC_CHECK_LIB(iconv, libiconv_open, LIBS="$LIBS -liconv")

+ 1 - 0
eglib/src/eglib-remap.h

@@ -172,6 +172,7 @@
 #define g_spawn_async_with_pipes monoeg_g_spawn_async_with_pipes
 #define g_spawn_command_line_sync monoeg_g_spawn_command_line_sync
 #define g_sprintf monoeg_g_sprintf
+#define g_stpcpy monoeg_g_stpcpy
 #define g_str_equal monoeg_g_str_equal
 #define g_str_has_prefix monoeg_g_str_has_prefix
 #define g_str_has_suffix monoeg_g_str_has_suffix

+ 3 - 1
eglib/src/glib.h

@@ -301,7 +301,9 @@ gint         g_snprintf        (gchar *string, gulong n, gchar const *format, ..
 #define g_vsnprintf vsnprintf
 #define g_vasprintf vasprintf
 
-gsize       g_strlcpy          (gchar *dest, const gchar *src, gsize dest_size);
+gsize   g_strlcpy            (gchar *dest, const gchar *src, gsize dest_size);
+gchar  *g_stpcpy             (gchar *dest, const char *src);
+
 
 gchar   g_ascii_tolower      (gchar c);
 gchar  *g_ascii_strdown      (const gchar *str, gssize len);

+ 14 - 0
eglib/src/gstr.c

@@ -778,6 +778,20 @@ g_strlcpy (gchar *dest, const gchar *src, gsize dest_size)
 #endif
 }
 
+gchar *
+g_stpcpy (gchar *dest, const char *src)
+{
+	g_return_val_if_fail (dest != NULL, dest);
+	g_return_val_if_fail (src != NULL, dest);
+
+#if HAVE_STPCPY
+	return stpcpy (dest, src);
+#else
+	strcpy (dest, src);
+	return dest + strlen (src);
+#endif
+}
+
 static const gchar escaped_dflt [256] = {
 	1, 1, 1, 1, 1, 1, 1, 1, 'b', 't', 'n', 1, 'f', 'r', 1, 1,
 	1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,