|
From: Philippe F. <pfe...@us...> - 2002-04-30 08:34:28
|
Update of /cvsroot/mpkg/mpkg/src
In directory usw-pr-cvs1:/tmp/cvs-serv28010/src
Modified Files:
rpm.c
Log Message:
Supporting filename containing spaces (required to specify the filename between quotes
Index: rpm.c
===================================================================
RCS file: /cvsroot/mpkg/mpkg/src/rpm.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** rpm.c 29 Nov 2001 09:16:06 -0000 1.5
--- rpm.c 30 Apr 2002 07:55:38 -0000 1.6
***************
*** 50,54 ****
struct group *grp; /* Pointer to group record */
char current[1024]; /* Current directory */
!
if (Verbosity)
--- 50,55 ----
struct group *grp; /* Pointer to group record */
char current[1024]; /* Current directory */
! char dst[1024]; /* Destination file */
! int dstlen;
if (Verbosity)
***************
*** 268,291 ****
fputs ("%files\n", fp);
for (i = dist->num_files, file = dist->files; i > 0; i--, file++)
switch (tolower (file->type))
{
case 'c':
fprintf (fp, "%%attr(%04o,%s,%s) %%config(noreplace) %s\n",
! file->mode, file->user, file->group, file->dst);
break;
case 'd':
fprintf (fp, "%%attr(%04o,%s,%s) %%dir %s\n", file->mode, file->user,
! file->group, file->dst);
break;
case 'f':
case 'l':
fprintf (fp, "%%attr(%04o,%s,%s) %s\n", file->mode, file->user,
! file->group, file->dst);
break;
case 'i':
fprintf (fp, "%%attr(0555,root,root) %s/init.d/%s\n", SoftwareDir,
! file->dst);
break;
}
fclose (fp);
--- 269,305 ----
fputs ("%files\n", fp);
for (i = dist->num_files, file = dist->files; i > 0; i--, file++)
+ {
+ if ( strchr(file->dst, ' ') != 0 )
+ { /* that file contains space characters */
+ dstlen = strlen(file->dst);
+ dst[0] = '\"';
+ strcpy(dst+1, file->dst);
+ dst[dstlen+1] = '\"';
+ dst[dstlen+2] = '\0';
+ }
+ else
+ strcpy(dst, file->dst);
+
switch (tolower (file->type))
{
case 'c':
fprintf (fp, "%%attr(%04o,%s,%s) %%config(noreplace) %s\n",
! file->mode, file->user, file->group, dst);
break;
case 'd':
fprintf (fp, "%%attr(%04o,%s,%s) %%dir %s\n", file->mode, file->user,
! file->group, dst);
break;
case 'f':
case 'l':
fprintf (fp, "%%attr(%04o,%s,%s) %s\n", file->mode, file->user,
! file->group, dst);
break;
case 'i':
fprintf (fp, "%%attr(0555,root,root) %s/init.d/%s\n", SoftwareDir,
! dst);
break;
}
+ }
fclose (fp);
|