diff options
Diffstat (limited to 'net-im/licq/files/licq-1.3.8-hebrew.patch')
-rw-r--r-- | net-im/licq/files/licq-1.3.8-hebrew.patch | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/net-im/licq/files/licq-1.3.8-hebrew.patch b/net-im/licq/files/licq-1.3.8-hebrew.patch new file mode 100644 index 000000000000..a0fdb936bdb2 --- /dev/null +++ b/net-im/licq/files/licq-1.3.8-hebrew.patch @@ -0,0 +1,95 @@ +--- configure ++++ configure +@@ -3283,7 +3283,7 @@ + + # Check whether --enable-hebrew was given. + if test "${enable_hebrew+set}" = set; then : +- enableval=$enable_hebrew; USE_HEBREW=yes ++ enableval=$enable_hebrew; USE_HEBREW=$enableval + else + USE_HEBREW=no + fi +--- src/hebrev.c ++++ src/hebrev.c +@@ -48,6 +48,7 @@ + short int mode = 0, imode; + const char *hmark = NULL, *lmark, *nmark, *nlmark; + char ch; ++ const char* srcstart = src; + + if (src == NULL) + return NULL; +@@ -69,7 +70,7 @@ + if (*src == 0 || iseng(*src)) + { + lmark = src-1; +- while ((!isheb(*lmark)) && (!ispunct(*lmark))) lmark--; ++ while (lmark > srcstart && !isheb(*lmark) && !ispunct(*lmark)) lmark--; + src = lmark; + imode = 0; + nmark = NULL; +@@ -114,6 +115,7 @@ + hmark = NULL; + mode = 0; + } ++ if (*src == '\0') *dest = '\0'; + } + if (!*src++) + break; +@@ -141,15 +143,16 @@ + char *temp=NULL, *tmp=NULL; + char *arg=NULL, *arg2=NULL; + int i=0; ++ char* saveptr = NULL; + + temp = (char*) malloc(strlen(input)+1); + tmp = temp; + + strcpy(temp, input); + +- arg = strtok(temp, "\n"); ++ arg = strtok_r(temp, "\n", &saveptr); + for(i = 0; (i < index) && (arg!=NULL); i++) +- arg = strtok(NULL, "\n"); ++ arg = strtok_r(NULL, "\n", &saveptr); + + if(arg != NULL) + { +@@ -164,6 +167,7 @@ + { + char* temp_str = NULL; + char* temp = NULL; ++ char* arg = NULL; + int i=0; + int size = 0; + if(src == NULL) +@@ -172,21 +176,23 @@ + if((temp_str = (char*)malloc(strlen(src)+1))== NULL) + return NULL; + +- temp = GetArg(src, i); +- while(temp != NULL) ++ arg = GetArg(src, i); ++ while(arg != NULL) + { + i++; +- temp = hebrew(temp); ++ temp = hebrew(arg); ++ free(arg); + memcpy(temp_str + size , temp, strlen(temp)); + size += strlen(temp) ; + temp_str[size++] = '\n'; + + free(temp); + temp = NULL; +- temp = GetArg(src, i); ++ arg = GetArg(src, i); + } +- free(temp); +- temp_str[size]= '\0'; ++ // Above loop adds a line break after last line that wasn't there in src ++ // replace it with the null terminator ++ temp_str[--size]= '\0'; + return temp_str; + } + |