On Thu, Jul 03, 2003 at 06:44:21PM +0200, [EMAIL PROTECTED] wrote:
> > 3) YaRET is a batch system, so user interface really isn't part of it's
> > vocabulary (e.g. tar, rm, patch, all are similar, you can turn -on-
> > confirmation, but by default they assume what you said is what you meant
> > (except tar, who cowardly refuses to create empty archives :) )).
> 
> I wasn't aware of this fact, which goes to show I should have checked out
> YaRET before opening my mouth (by the way, nice acronym ;) (or whatever it's
> called)). Since my last post was based on false presumptions, consider it
> withdrawn.

Woot a proponent!

Anyway here is the patch.  Hopefully it's roughly how you would like it
done.
diff -x CVS -ur lame/frontend/parse.c lame-g1/frontend/parse.c
--- lame/frontend/parse.c       2003-06-01 12:20:34.000000000 -0500
+++ lame-g1/frontend/parse.c    2003-07-03 13:09:53.000000000 -0500
@@ -77,7 +77,8 @@
 /* we need to clean this up */
 sound_file_format input_format;   
 int swapbytes;              /* force byte swapping   default=0*/
-int silent;
+int silent;                 /* Verbosity */
+int ignore_tag_errors;      /* Ignore errors in values passed for tags */
 int brhist;
 float update_interval;      /* to use Frank's time status display */
 int mp3_delay;              /* to adjust the number of samples truncated
@@ -435,6 +436,7 @@
               "    --quiet         don't print anything on screen\n"
               "    --brief         print more useful information\n"
               "    --verbose       print a lot of useful information\n"
+                                                       "    --ignore-tag-errors  
Ignore errors in values passed for tags.\n"
               "\n"
               "  Noise shaping & psycho acoustic algorithms:\n"
               "    -q <arg>        <arg> = 0...9.  Default  -q 5 \n"
@@ -991,6 +993,7 @@
     outPath[0] = '\0';
     /* turn on display options. user settings may turn them off below */
     silent   = 0;
+               ignore_tag_errors = 0;
     brhist   = 1;
     enc_padding=-1;
     enc_delay=-1;
@@ -1268,33 +1271,100 @@
                 /* options for ID3 tag */
                 T_ELIF ("tt")
                     argUsed=1;
-                    id3tag_set_title(gfp, nextArg);
+                    if (id3tag_set_title(gfp, nextArg)) {
+                                                                                      
         if( ignore_tag_errors ) {
+                                                                                      
             if( silent < 10 ) {
+                                                                                      
                 fprintf(stderr,"Error setting title to: '%s'.  Blanking title.\n", 
nextArg);
+                                                                                      
                         }
+                                                                                      
                         id3tag_set_title(gfp, "");
+                                                                                      
         } else {
+                            fprintf(stderr,"Error setting title to: '%s'.\n", 
nextArg);
+                            return -1;
+                                                                                      
         }
+                    }
                 
                 T_ELIF ("ta")
                     argUsed=1;
-                    id3tag_set_artist(gfp, nextArg);
+                    if (id3tag_set_artist(gfp, nextArg)) {
+                                                                                      
         if( ignore_tag_errors ) {
+                                                                                      
             if( silent < 10 ) {
+                                                                                      
                 fprintf(stderr,"Error setting artist to: '%s'.  Blanking artist.\n", 
nextArg);
+                                                                                      
                         }
+                                                                                      
                         id3tag_set_artist(gfp, "");
+                                                                                      
         } else {
+                            fprintf(stderr,"Error setting artist to: '%s'.\n", 
nextArg);
+                            return -1;
+                                                                                      
         }
+                    }
                 
                 T_ELIF ("tl")
                     argUsed=1;
-                    id3tag_set_album(gfp, nextArg);
+                    if (id3tag_set_album(gfp, nextArg)) {
+                                                                                      
         if( ignore_tag_errors ) {
+                                                                                      
             if( silent < 10 ) {
+                                                                                      
                 fprintf(stderr,"Error setting album to: '%s'.  Blanking album.\n", 
nextArg);
+                                                                                      
                         }
+                                                                                      
                         id3tag_set_album(gfp, "");
+                                                                                      
         } else {
+                            fprintf(stderr,"Error setting album to: '%s'.\n", 
nextArg);
+                            return -1;
+                                                                                      
         }
+                    }
                 
                 T_ELIF ("ty")
                     argUsed=1;
-                    id3tag_set_year(gfp, nextArg);
+                    if (id3tag_set_year(gfp, nextArg)) {
+                                                                                      
         if( ignore_tag_errors ) {
+                                                                                      
             if( silent < 10 ) {
+                                                                                      
                                         fprintf(stderr,"Error setting year to: '%s'.  
Number must be from 0000-9999.  Setting to zero.\n", nextArg);
+                                                                                      
                         }
+                                                                                      
                         id3tag_set_year(gfp, "0");
+                                                                                      
         } else {
+                                                                                      
                         fprintf(stderr,"Error setting year to: '%s'.  Number must be 
from 0000-9999.\n", nextArg);
+                            return -1;
+                                                                                      
         }
+                    }
                 
                 T_ELIF ("tc")
                     argUsed=1;
-                    id3tag_set_comment(gfp, nextArg);
+                    if (id3tag_set_comment(gfp, nextArg)) {
+                                                                                      
         if( ignore_tag_errors ) {
+                                                                                      
             if( silent < 10 ) {
+                                                                                      
     fprintf(stderr,"Error setting comment to: '%s'.  Blanking comment.\n", nextArg);
+                                                                                      
                         }
+                                                                                      
                         id3tag_set_comment(gfp, "");
+                                                                                      
         } else {
+                                                                                      
 fprintf(stderr,"Error setting comment to: '%s'.  Blanking comment.\n", nextArg);
+                            return -1;
+                                                                                      
         }
+                    }
                 
                 T_ELIF ("tn")
                     argUsed=1;
-                    id3tag_set_track(gfp, nextArg);
+                    if (id3tag_set_track(gfp, nextArg)) {
+                                                                                      
         if( ignore_tag_errors ) {
+                                                                                      
             if( silent < 10 ) {
+                                                                                      
                                         fprintf(stderr,"Error setting track number 
to: '%s'.  Number must be from 0-255. Setting to zero.n", nextArg);
+                                                                                      
                         }
+                                                                                      
                         id3tag_set_track(gfp, "0");
+                                                                                      
         } else {
+                                                                                      
                         fprintf(stderr,"Error setting track number to: '%s'.  Number 
must be from 0-255.\n", nextArg);
+                            return -1;
+                                                                                      
         }
+                    }
                 
                 T_ELIF ("tg")
                     argUsed=1;
                     if (id3tag_set_genre(gfp, nextArg)) {
-                        fprintf(stderr,"Unknown genre: %s.  Specify genre name or 
number\n", nextArg);
-                        return -1;
+                                                                                      
         if( ignore_tag_errors ) {
+                                                                                      
             if( silent < 10 ) {
+                                                                                      
                                         fprintf(stderr,"Unknown genre: '%s'.  Specify 
genre name or number.  Setting to 'Other'\n", nextArg);
+                                                                                      
                         }
+                                                                                      
                         id3tag_set_genre(gfp, "other");
+                                                                                      
         } else {
+                                                                                      
                         fprintf(stderr,"Unknown genre: '%s'.  Specify genre name or 
number\n", nextArg);
+                            return -1;
+                                                                                      
         }
                     }
                 
                 T_ELIF ("add-id3v2")
@@ -1485,6 +1555,8 @@
                     
                 T_ELIF ("verbose")
                     silent = -10;    /* print a lot on screen */
+                                                               T_ELIF 
("ignore-tag-errors")
+                                                                   ignore_tag_errors 
= 1;
                     
                 T_ELIF2 ("version", "license")
                     print_license ( gfp, stdout, ProgramName );
diff -x CVS -ur lame/include/lame.h lame-g1/include/lame.h
--- lame/include/lame.h 2003-06-01 12:20:34.000000000 -0500
+++ lame-g1/include/lame.h      2003-07-03 11:40:07.000000000 -0500
@@ -989,25 +989,30 @@
 /* pad version 2 tag with extra 128 bytes */
 extern void id3tag_pad_v2   (lame_global_flags *gfp);
 
-extern void id3tag_set_title(
+/* return non-zero result if title name is invalid */
+extern int id3tag_set_title(
         lame_global_flags*  gfp,
         const char*         title );
-extern void id3tag_set_artist(
+/* return non-zero result if artist name is invalid */
+extern int id3tag_set_artist(
         lame_global_flags*  gfp,
         const char*         artist );
-extern void id3tag_set_album(
+/* return non-zero result if album name  is invalid */
+extern int id3tag_set_album(
         lame_global_flags*  gfp,
         const char*         album );
-extern void id3tag_set_year(
+/* return non-zero result if year number is invalid */
+extern int id3tag_set_year(
         lame_global_flags*  gfp,
         const char*         year );
-extern void id3tag_set_comment(
+/* return non-zero result if comment name is invalid */
+extern int id3tag_set_comment(
         lame_global_flags*  gfp,
         const char*         comment );
-extern void id3tag_set_track(
+/* return non-zero result if tracknumber is invalid */
+extern int id3tag_set_track(
         lame_global_flags*  gfp,
         const char*         track );
-
 /* return non-zero result if genre name or number is invalid */
 extern int id3tag_set_genre(
         lame_global_flags*  gfp,
diff -x CVS -ur lame/libmp3lame/id3tag.c lame-g1/libmp3lame/id3tag.c
--- lame/libmp3lame/id3tag.c    2003-06-01 11:12:44.000000000 -0500
+++ lame-g1/libmp3lame/id3tag.c 2003-07-03 11:37:33.000000000 -0500
@@ -182,7 +182,7 @@
     gfc->tag_spec.flags |= PAD_V2_FLAG;
 }
 
-void
+int
 id3tag_set_title(lame_global_flags *gfp, const char *title)
 {
     lame_internal_flags *gfc = gfp->internal_flags;
@@ -192,7 +192,7 @@
     }
 }
 
-void
+int
 id3tag_set_artist(lame_global_flags *gfp, const char *artist)
 {
     lame_internal_flags *gfc = gfp->internal_flags;
@@ -202,7 +202,7 @@
     }
 }
 
-void
+int
 id3tag_set_album(lame_global_flags *gfp, const char *album)
 {
     lame_internal_flags *gfc = gfp->internal_flags;
@@ -212,18 +212,18 @@
     }
 }
 
-void
+int
 id3tag_set_year(lame_global_flags *gfp, const char *year)
 {
     lame_internal_flags *gfc = gfp->internal_flags;
     if (year && *year) {
         int num = atoi(year);
         if (num < 0) {
-            num = 0;
+            return -1;
         }
         /* limit a year to 4 digits so it fits in a version 1 tag */
         if (num > 9999) {
-            num = 9999;
+            return -1;
         }
         if (num) {
             gfc->tag_spec.year = num;
@@ -232,7 +232,7 @@
     }
 }
 
-void
+int
 id3tag_set_comment(lame_global_flags *gfp, const char *comment)
 {
     lame_internal_flags *gfc = gfp->internal_flags;
@@ -242,19 +242,19 @@
     }
 }
 
-void
+int
 id3tag_set_track(lame_global_flags *gfp, const char *track)
 {
     lame_internal_flags *gfc = gfp->internal_flags;
     if (track && *track) {
         int num = atoi(track);
         if (num < 0) {
-            num = 0;
+            return -1;
         }
         /* limit a track to 255 so it fits in a version 1 tag even though CD
          * audio doesn't allow more than 99 tracks */
         if (num > 255) {
-            num = 255;
+            return -1;
         }
         if (num) {
             gfc->tag_spec.track = num;
@@ -298,10 +298,10 @@
                 }
             }
             if (i == GENRE_NAME_COUNT) {
-                return -1;
+                                                               return -1;
             }
         } else if ((num < 0) || (num >= GENRE_NAME_COUNT)) {
-            return -1;
+                                   return -1;
         }
         gfc->tag_spec.genre = num;
         gfc->tag_spec.flags |= CHANGED_FLAG;
_______________________________________________
mp3encoder mailing list
[EMAIL PROTECTED]
http://minnie.tuhs.org/mailman/listinfo/mp3encoder

Reply via email to