[Debburn-changes] r695 - in cdrkit/trunk: . debian wodim

Eduard Bloch blade at alioth.debian.org
Fri Jan 26 01:31:25 CET 2007


Author: blade
Date: 2007-01-26 01:31:24 +0100 (Fri, 26 Jan 2007)
New Revision: 695

Modified:
   cdrkit/trunk/Changelog
   cdrkit/trunk/debian/changelog
   cdrkit/trunk/wodim/wodim.c
Log:
    + dealing with newline when searching for device (closes: #408456)
    + corrected picking up of the SCSI transfer size (closes: #407773)



Modified: cdrkit/trunk/Changelog
===================================================================
--- cdrkit/trunk/Changelog	2007-01-23 18:26:04 UTC (rev 694)
+++ cdrkit/trunk/Changelog	2007-01-26 00:31:24 UTC (rev 695)
@@ -2,6 +2,8 @@
 
   * Fixed fishing for transfer size in sysfs, now ready for
     /dev/class/scsi_generic contents
+  * Dealing with the last newline char when processing
+    /proc/sys/dev/cdrom/info contents
 
  -- Eduard Bloch <blade at debian.org>  Tue, 23 Jan 2007 19:13:44 +0100
 

Modified: cdrkit/trunk/debian/changelog
===================================================================
--- cdrkit/trunk/debian/changelog	2007-01-23 18:26:04 UTC (rev 694)
+++ cdrkit/trunk/debian/changelog	2007-01-26 00:31:24 UTC (rev 695)
@@ -1,5 +1,8 @@
-cdrkit (9:1.1.2-2) unstable; urgency=low
+cdrkit (9:1.1.3-1) unstable; urgency=low
 
+  * New upstream version with minor bugfixes
+    + dealing with newline when searching for device (closes: #408456)
+    + corrected picking up of the SCSI transfer size (closes: #407773)
   * Relaxed version dependency of cmake (closes: #407163)
 
  -- Eduard Bloch <blade at debian.org>  Fri, 19 Jan 2007 08:54:05 +0100

Modified: cdrkit/trunk/wodim/wodim.c
===================================================================
--- cdrkit/trunk/wodim/wodim.c	2007-01-23 18:26:04 UTC (rev 694)
+++ cdrkit/trunk/wodim/wodim.c	2007-01-26 00:31:24 UTC (rev 695)
@@ -1682,7 +1682,7 @@
 	fprintf(stderr, "\t-xamix		Subsequent tracks are CD-ROM XA mode 2 form 1/2 - 2332 bytes\n");
 	fprintf(stderr, "\t-cdi		Subsequent tracks are CDI tracks\n");
 	fprintf(stderr, "\t-isosize	Use iso9660 file system size for next data track\n");
-	fprintf(stderr, "\t-preemp		Audio tracks are mastered with 50/15 µs preemphasis\n");
+	fprintf(stderr, "\t-preemp		Audio tracks are mastered with 50/15 microseconds preemphasis\n");
 	fprintf(stderr, "\t-nopreemp	Audio tracks are mastered with no preemphasis (default)\n");
 	fprintf(stderr, "\t-copy		Audio tracks have unlimited copy permission\n");
 	fprintf(stderr, "\t-nocopy		Audio tracks may only be copied once for personal use (default)\n");
@@ -3742,7 +3742,7 @@
 	if ( (!*devp || 0 == strcmp(*devp, "-1")) && (*flagsp & (F_VERSION|F_SCANBUS)) == 0) {
 #ifdef __linux__
 		struct stat statbuf;
-		char *type="CD-R", *key="Can write CD-R:", *guessdev="/dev/cdrw", *res=NULL;
+		char *type="CD-R", *key="Can write CD-R:", *guessdev="/dev/cdrw", *result=NULL;
 		long long filesize=0;
 		FILE *fh;
 
@@ -3761,7 +3761,7 @@
 
 		fprintf(stderr, "Quickly guessing the name of a drive capable to write %s, please wait...\n", type);
 		if(0==stat(guessdev, &statbuf))
-			res=guessdev;
+			result=guessdev;
 		else if(0!= (fh = fopen("/proc/sys/dev/cdrom/info", "r")) ) {
 			/* ok, going the hard way */
 			char *nameline=NULL;
@@ -3771,31 +3771,29 @@
 			buf[255]='\0';
 
 			while(fgets(buf, sizeof(buf), fh)) {
-				if(0==strncmp(buf, "drive name:", 11)) {
-					char *t;
+				if(0==strncmp(buf, "drive name:", 11))
 					nameline=strdup(buf);
-				}
 				if(nameline && 0==strncmp(buf, key, kn)) {
 					int p=kn;
-					char *t=nameline+11; /* start at the known whitespace */
+					char *descptr=nameline+11; /* start at the known whitespace */
 					while(p<sizeof(buf) && buf[p]) {
 						if(buf[p]=='1' || buf[p]=='0') {
-							/* move to a non-whitespace char */
-							for(;*t=='\t' || *t==' ';t++)
+							/* find the beginning of the descriptor */
+							for(;isspace((Uchar) *descptr);descptr++)
 								;
 						}
 						if(buf[p]=='1') {
-							res=t-5;
-							/* terminate on whitespace and stop there */
-							for(;*t;t++) {
-								if(*t=='\t' || *t==' ')
-									*(t--)='\0';
+							result=descptr-5;
+							/* terminate on space/newline and stop there */
+							for(;*descptr;descptr++) {
+								if(isspace((Uchar) *descptr))
+									*(descptr--)='\0';
 							}
-							strncpy(res, "/dev/", 5);
+							strncpy(result, "/dev/", 5);
 							break;
 						}
-						else { /* no hit, move to next whitespace */
-							for(;*t && *t!='\t' && *t!=' ';t++)
+						else { /* no hit, move to after word ending */
+							for(; *descptr && ! isspace((Uchar) *descptr); descptr++)
 								;
 						}
 						p++;
@@ -3806,9 +3804,9 @@
 			fclose(fh);
 		}
 
-		if(res) {
-			fprintf(stderr, "Found %s, assuming dev=%s\n", res, res);
-			*devp=res;
+		if(result) {
+			fprintf(stderr, "Found %s, assuming dev=%s\n", result, result);
+			*devp=result;
 		}
 		else {
 			fprintf(stderr,	"Unable to guess the target drive. Please specify manually using\n"




More information about the Debburn-changes mailing list