stefanb@cip-s02.informatik.rwth-aachen.de (Stefan Becker) (09/26/90)
This adds a special Amiga option to UNIX lharc V1.02. Stefan -------- Cut here ------------------------------------------------------------- *** lharc.h.orig Fri Mar 16 02:46:37 1990 --- lharc.h Wed Sep 26 13:24:42 1990 *************** *** 281,286 **** --- 281,287 ---- extern boolean new_archive; extern boolean update_if_newer; extern boolean generic_format; + extern boolean amiga_format; /*----------------------------------------------------------------------*/ *** lharc.c.orig Fri Mar 16 02:46:41 1990 --- lharc.c Wed Sep 26 13:36:45 1990 *************** *** 61,66 **** --- 61,67 ---- boolean update_if_newer = FALSE; boolean delete_after_append = FALSE; boolean generic_format = FALSE; + boolean amiga_format = FALSE; boolean remove_temporary_at_error = FALSE; boolean recover_archive_when_interrupt = FALSE; *************** *** 82,88 **** { fprintf (stderr, "\ LHarc for UNIX V1.02 Copyright(C) 1989 Y.Tagawa\n\ ! usage: lharc {axelvudmcp}[qvnftgvd] archive_file [files or directories...]\n\ commands: options:\n\ a Add(or replace) to archive q quiet\n\ x,e EXtract from archive v verbose\n\ --- 83,90 ---- { fprintf (stderr, "\ LHarc for UNIX V1.02 Copyright(C) 1989 Y.Tagawa\n\ ! special Amiga option by S. Becker\n\ ! usage: lharc {axelvudmcp}[qvnftgvdA] archive_file [files or directories...]\n\ commands: options:\n\ a Add(or replace) to archive q quiet\n\ x,e EXtract from archive v verbose\n\ *************** *** 90,96 **** u Update newer files to archive f force (over write at extract)\n\ d Delete from archive t FILES are TEXT file\n\ m Move to archive (means 'ad') g [Generic] format (compatiblity)\n\ ! c re-Construct new archive\n\ p Print to STDOUT from archive d delete FILES after a/u/c command\n\ "); exit (1); --- 92,98 ---- u Update newer files to archive f force (over write at extract)\n\ d Delete from archive t FILES are TEXT file\n\ m Move to archive (means 'ad') g [Generic] format (compatiblity)\n\ ! c re-Construct new archive A Amiga format\n\ p Print to STDOUT from archive d delete FILES after a/u/c command\n\ "); exit (1); *************** *** 169,174 **** --- 171,177 ---- case 'n': noexec = TRUE; break; case 'g': generic_format = TRUE; break; case 'd': delete_after_append = TRUE; break; + case 'A': amiga_format = TRUE; break; default: fprintf (stderr, "LHarc: Unknown option '%c'.\n", p[-1]); *************** *** 810,815 **** --- 813,830 ---- } } + static + unix_to_amiga_filename (name, len) + register char *name; + register int len; + { + register int i; + + for (i = 0; i < len; i ++) + if (name[i] == '/') + name[i] = '\\'; + } + /*----------------------------------------------------------------------*/ /* */ /* Generic stamp format: */ *************** *** 1059,1064 **** --- 1074,1081 ---- } if (generic_format) unix_to_generic_filename (hdr->name, len); + else if (amiga_format) + unix_to_amiga_filename (hdr->name, len); } /* Write unix extended header or generic header. */ *************** *** 1083,1089 **** bcopy (hdr->name, data + I_NAME, name_length); setup_put (data + I_NAME + name_length); put_word (hdr->crc); ! if (generic_format) { header_size = I_GENERIC_HEADER_BOTTOM - 2 + name_length; } --- 1100,1106 ---- bcopy (hdr->name, data + I_NAME, name_length); setup_put (data + I_NAME + name_length); put_word (hdr->crc); ! if (generic_format || amiga_format) { header_size = I_GENERIC_HEADER_BOTTOM - 2 + name_length; } *** lhadd.c.orig Fri Mar 16 02:46:35 1990 --- lhadd.c Wed Sep 26 12:44:14 1990 *************** *** 141,146 **** --- 141,147 ---- } } + if (!(directory && amiga_format)) if (update_if_newer) { if (!oafp || /* not in archive */ ---------- Cut here ------------------------------------------------- Mail : Stefan Becker, Holsteinstrasse 9, 5100 Aachen, West Germany +-------+ Phone : +49-241-505705 FIDO: 2:242/7.6 +-----------------+ Call| InterNet: stefanb@cip-s02.informatik.rwth-aachen.de |Place free for ad's now!| UUCP : ..mcvax!unido!rwthinf!cip-s02!stefanb +-------------------------+