[MPlayer-cvslog] 	CVS: main subopt-helper.c, 1.2, 1.3 subopt-helper.h, 1.2, 1.3
    Reimar Döffinger CVS 
    syncmail at mplayerhq.hu
       
    Wed Jan 19 18:10:22 CET 2005
    
        - Previous message: [MPlayer-cvslog] CVS: main/loader ldt_keeper.c,1.15,1.16
- Next message: [MPlayer-cvslog] CVS: main/libvo vo_jpeg.c, 1.24, 1.25 vo_md5sum.c,	1.2, 1.3 vo_pnm.c, 1.3, 1.4 vo_yuv4mpeg.c, 1.20, 1.21
-  Messages sorted by: 
              [ date ]
              [ thread ]
              [ subject ]
              [ author ]
         
  
CVS change done by Reimar Döffinger CVS
Update of /cvsroot/mplayer/main
In directory mail:/var2/tmp/cvs-serv11220
Modified Files:
	subopt-helper.c subopt-helper.h 
Log Message:
New suboption type: malloc'ed, zero terminated string
Index: subopt-helper.c
===================================================================
RCS file: /cvsroot/mplayer/main/subopt-helper.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- subopt-helper.c	1 Jan 2005 19:03:22 -0000	1.2
+++ subopt-helper.c	19 Jan 2005 17:10:20 -0000	1.3
@@ -22,6 +22,7 @@
 
 #include <stdlib.h>
 #include <string.h>
+#include <limits.h>
 #include <assert.h>
 
 #ifndef MPDEBUG
@@ -144,6 +145,23 @@
                 last = parse_str( &str[parse_pos],
                                   (strarg_t *)opts[idx].valp );
                 break;
+              case OPT_ARG_MSTRZ:
+                {
+                  char **valp = opts[idx].valp;
+                  strarg_t tmp;
+                  tmp.str = NULL;
+                  tmp.len = 0;
+                  last = parse_str( &str[parse_pos], &tmp );
+                  if (*valp)
+                    free(*valp);
+                  *valp = NULL;
+                  if (tmp.str && tmp.len > 0) {
+                    *valp = malloc(tmp.len + 1);
+                    memcpy(*valp, tmp.str, tmp.len);
+                    *valp[tmp.len] = 0;
+                  }
+                  break;
+                }
               default:
                 assert( 0 && "Arg type of suboption doesn't exist!" );
                 last = NULL; // break parsing!
@@ -237,7 +255,7 @@
     match = &str[strlen(str)];
 
   // empty string or too long
-  if ((match == str) || (match - str > 255))
+  if ((match == str) || (match - str > INT_MAX))
     return NULL;
 
   valp->len = match - str;
Index: subopt-helper.h
===================================================================
RCS file: /cvsroot/mplayer/main/subopt-helper.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- subopt-helper.h	31 Dec 2004 14:57:12 -0000	1.2
+++ subopt-helper.h	19 Jan 2005 17:10:20 -0000	1.3
@@ -12,6 +12,7 @@
 #define OPT_ARG_BOOL 0
 #define OPT_ARG_INT  1
 #define OPT_ARG_STR  2
+#define OPT_ARG_MSTRZ 3 ///< A malloced, zero terminated string, use free()!
 
 typedef int (*opt_test_f)(void *);
 
@@ -34,7 +35,7 @@
 /*------------------ arg specific types and declaration -------------------*/
 typedef struct strarg_s
 {
-  unsigned char len; ///< length of the string determined by the parser
+  int len; ///< length of the string determined by the parser
   char const * str;  ///< pointer to position inside the parse string
 } strarg_t;
 
    
    
        
	- Previous message: [MPlayer-cvslog] CVS: main/loader ldt_keeper.c,1.15,1.16
- Next message: [MPlayer-cvslog] CVS: main/libvo vo_jpeg.c, 1.24, 1.25 vo_md5sum.c,	1.2, 1.3 vo_pnm.c, 1.3, 1.4 vo_yuv4mpeg.c, 1.20, 1.21
-  Messages sorted by: 
              [ date ]
              [ thread ]
              [ subject ]
              [ author ]
         
More information about the MPlayer-cvslog
mailing list