Custom Query (245 matches)

Filters
 
Or
 
  
 
Columns

Show under each result:


Results (4 - 6 of 245)

1 2 3 4 5 6 7 8 9 10 11 12
Ticket Resolution Summary Owner Reporter
#5 wontfix @response handling incomplete bird Yuri Dario
Description

response file handling has problems: doesn't accept long lines, does not support multiple args per line, doesn't remove white spaces.

This is a partial fix

Index: lib/misc/response.c
===================================================================
RCS file: /netlabs.cvs/libc/src/emx/src/lib/misc/response.c,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 response.c
--- lib/misc/response.c	2004/06/08 12:03:44	1.1.1.1
+++ lib/misc/response.c	2005/10/24 14:56:24
@@ -1,6 +1,7 @@
 /* response.c (emx+gcc) -- Copyright (c) 1990-1996 by Eberhard Mattes */
 
 #include "libc-alias.h"
+#include <ctype.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
@@ -23,7 +24,7 @@
 {
   int i, old_argc, new_argc, new_alloc;
   char **old_argv, **new_argv;
-  char line[1+512], *p;
+  char line[1+8192], *p;
   FILE *f;
 
   old_argc = *argcp; old_argv = *argvp;
@@ -47,12 +48,29 @@
           line[0] = _ARG_NONZERO|_ARG_RESPONSE;
           while (fgets (line+1, sizeof (line)-1, f) != NULL)
             {
-              p = strchr (line+1, '\n');
-              if (p != NULL) *p = 0;
-              p = strdup (line);
-              if (p == NULL)
-                goto out_of_memory;
-              RPUT (p+1);
+              char* token;
+              p = line+1;
+              // YD tokenize line, OOo uses \t to separate arguments
+              token = strtok( p, " \t\r\n");
+              while( token) {
+                char* p1 = strdup (token);
+                if (p1 == NULL)
+                  goto out_of_memory;
+                // YD strip begin/end whitespaces
+                while (isspace(p1[strlen(p1)-1]))
+                  p1[strlen(p1)-1] = 0;
+                while (isspace(*p1))
+                  p1++;
+                // YD strip begin&end quotes
+                if (*p1 == '\"' && p1[strlen(p1)-1] == '\"') {
+                  p1++;
+                  p1[strlen(p1)-1] = 0;
+                }
+                // YD don't add zero-len arguments!
+                if (strlen(p1)>0)
+                  RPUT (p1);
+                token = strtok( NULL, " \t\r\n");
+              }
             }
           if (ferror (f))
             {

#7 fixed emxomf: 255 name limit and weak symbols bird bird
Description

There is a problem with the encoding of weak symbols and the 255 limit. Weak symbols can excess 255 chars with their $w$<stuff> while the references will not, thus causing the linking to fail. What needs doing is to standardize the length of the $w$ suffix (only using timestamp, prefering TSC) and limit standard symbols (i.e. non-weak) and symbol references to a length where they will be trunkated when the weak ones will be. $w$<64-bit hex#> == 3+16, so the limit should be dropped from 255 to 236.

#8 fixed libc: fcntl(F_SETFL) w/ O_NONBLOCK on sockets bird bird
Description

the above doesn't work. See http://ubb.innotek.de/cgi-bin/ultimatebb.cgi?ubb=get_topic&f=33&t=000132#000001

1 2 3 4 5 6 7 8 9 10 11 12
Note: See TracQuery for help on using queries.