summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
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.patch95
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;
+ }
+