
git-svn-id: https://svn.code.sf.net/p/rathena/svn/athena@172 54d463be-8e91-2dee-dedb-b68131a5f0ec
80 lines
1.4 KiB
C
80 lines
1.4 KiB
C
#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;
|
|
}
|