diff options
author | codemaster <codemaster@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2004-12-20 20:12:39 +0000 |
---|---|---|
committer | codemaster <codemaster@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2004-12-20 20:12:39 +0000 |
commit | a46c5b799de0d33be85dce39bdc32edc6edc3a65 (patch) | |
tree | f1fb609d1047963d843552e18e4561e4896cbe61 /src | |
parent | bb83a7c114c17b67e9209fcda27b125192ce6b5a (diff) | |
download | hercules-a46c5b799de0d33be85dce39bdc32edc6edc3a65.tar.gz hercules-a46c5b799de0d33be85dce39bdc32edc6edc3a65.tar.bz2 hercules-a46c5b799de0d33be85dce39bdc32edc6edc3a65.tar.xz hercules-a46c5b799de0d33be85dce39bdc32edc6edc3a65.zip |
* Updated makefiles to new strlib locations [Codemaster]
* Moved strlib.h and strlib.c into the common directory [Codemaster]
* Updated a bit of jA 1081 - it's not completly updated yet!!! [Codemaster]
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/branches/stable@682 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src')
-rw-r--r-- | src/common/strlib.c | 79 | ||||
-rw-r--r-- | src/common/strlib.h | 10 |
2 files changed, 89 insertions, 0 deletions
diff --git a/src/common/strlib.c b/src/common/strlib.c new file mode 100644 index 000000000..61439d7de --- /dev/null +++ b/src/common/strlib.c @@ -0,0 +1,79 @@ +#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "strlib.h"
+#include "utils.h"
+
+//-----------------------------------------------
+// string lib.
+unsigned char* jstrescape (unsigned char* pt) {
+ //copy from here
+ unsigned char * ptr;
+ int i =0, j=0;
+
+ //copy string to temporary
+ CREATE(ptr, char, J_MAX_MALLOC_SIZE);
+ strcpy (ptr,pt);
+
+ while (ptr[i] != '\0') {
+ switch (ptr[i]) {
+ case '\'':
+ pt[j++] = '\\';
+ pt[j++] = ptr[i++];
+ break;
+ case '\\':
+ pt[j++] = '\\';
+ pt[j++] = ptr[i++];
+ break;
+ default:
+ pt[j++] = ptr[i++];
+ }
+ }
+ pt[j++] = '\0';
+ free (ptr);
+ return (unsigned char*) &pt[0];
+}
+
+unsigned char* jstrescapecpy (unsigned char* pt,unsigned char* spt) {
+ //copy from here
+ int i =0, j=0;
+
+ while (spt[i] != '\0') {
+ switch (spt[i]) {
+ case '\'':
+ pt[j++] = '\\';
+ pt[j++] = spt[i++];
+ break;
+ case '\\':
+ pt[j++] = '\\';
+ pt[j++] = spt[i++];
+ break;
+ default:
+ pt[j++] = spt[i++];
+ }
+ }
+ pt[j++] = '\0';
+ return (unsigned char*) &pt[0];
+}
+int jmemescapecpy (unsigned char* pt,unsigned char* spt, int size) {
+ //copy from here
+ int i =0, j=0;
+
+ while (i < size) {
+ switch (spt[i]) {
+ case '\'':
+ pt[j++] = '\\';
+ pt[j++] = spt[i++];
+ break;
+ case '\\':
+ pt[j++] = '\\';
+ pt[j++] = spt[i++];
+ break;
+ default:
+ pt[j++] = spt[i++];
+ }
+ }
+ // copy size is 0 ~ (j-1)
+ return j;
+}
diff --git a/src/common/strlib.h b/src/common/strlib.h new file mode 100644 index 000000000..3321996e1 --- /dev/null +++ b/src/common/strlib.h @@ -0,0 +1,10 @@ +#ifndef _J_STR_LIB_H_
+#define _J_STR_LIB_H_
+#define J_MAX_MALLOC_SIZE 65535
+// String function library.
+// code by Jioh L. Jung (ziozzang@4wish.net)
+// This code is under license "BSD"
+unsigned char* jstrescape (unsigned char* pt);
+unsigned char* jstrescapecpy (unsigned char* pt,unsigned char* spt);
+int jmemescapecpy (unsigned char* pt,unsigned char* spt, int size);
+#endif
|