]> granicus.if.org Git - onig/blobdiff - src/regposerr.c
add encoding argument into str_dup()
[onig] / src / regposerr.c
index c6db2e20efc35ff79b867ec2ec8dfcf3eaed0aa1..2e2a8e22cf14ae5398bee87ec0d596cd97fd5f73 100644 (file)
@@ -2,7 +2,7 @@
   regposerr.c - Oniguruma (regular expression library)
 **********************************************************************/
 /*-
- * Copyright (c) 2002-2007  K.Kosako  <sndgk393 AT ybb DOT ne DOT jp>
+ * Copyright (c) 2002-2018  K.Kosako  <sndgk393 AT ybb DOT ne DOT jp>
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * SUCH DAMAGE.
  */
 
+/* Can't include regint.h etc.. for conflict of regex_t.
+   Define ONIGURUMA_EXPORT here for onigposix.h.
+ */
+#ifndef ONIGURUMA_EXPORT
+#define ONIGURUMA_EXPORT
+#endif
+
 #include "config.h"
 #include "onigposix.h"
 
 
 #if defined(_WIN32) && !defined(__GNUC__)
 #define xsnprintf   sprintf_s
+#define xstrncpy(dest,src,size)   strncpy_s(dest,size,src,_TRUNCATE)
 #else
 #define xsnprintf   snprintf
+#define xstrncpy    strncpy
 #endif
 
 static char* ESTRING[] = {
@@ -96,7 +105,7 @@ regerror(int posix_ecode, const regex_t* reg ARG_UNUSED, char* buf,
   len = strlen(s) + 1; /* use strlen() because s is ascii encoding. */
 
   if (buf != NULL && size > 0) {
-    strncpy(buf, s, size - 1);
+    xstrncpy(buf, s, size - 1);
     buf[size - 1] = '\0';
   }
   return len;