OSDN Git Service

* src/header.c: DUMP_HEADER is always true.
authorarai <arai@6a8cc165-1e22-0410-a132-eb4e3f353aba>
Sun, 11 Aug 2002 00:01:23 +0000 (00:01 +0000)
committerarai <arai@6a8cc165-1e22-0410-a132-eb4e3f353aba>
Sun, 11 Aug 2002 00:01:23 +0000 (00:01 +0000)
dump header when running `lha vvv foo.lzh'.
(get_header): added new extend type JAVA.

* src/lha_macro.h (EXTEND_JAVA): added new extend type JAVA.

* src/lharc.c (init_variable): `verbose' is changed to successive.
(main): ditto.

* src/lhlist.c (list_one): added new extend type JAVA.

* src/lhlist.c (list_one): fixed mode checks.

git-svn-id: svn+ssh://svn.sourceforge.jp/svnroot/lha/lha/trunk@458 6a8cc165-1e22-0410-a132-eb4e3f353aba

src/header.c
src/lha_macro.h
src/lharc.c
src/lhlist.c

index e718272..91242e7 100644 (file)
@@ -13,7 +13,7 @@
 /* ------------------------------------------------------------------------ */
 #include "lha.h"
 
-#define DUMP_HEADER 0           /* for debugging */
+#define DUMP_HEADER 1           /* for debugging */
 
 #if !STRCHR_8BIT_CLEAN
 /* should use 8 bit clean version */
@@ -71,22 +71,32 @@ calc_sum(p, len)
 static int
 dump_get_byte()
 {
-    int i;
-
-    printf("%02d %2d: ", get_ptr - start_ptr, 1);
-    i = GET_BYTE();
-    printf("%d(0x%02x)\n", i, i);
-    return i;
+    int c;
+
+    if (verbose_listing && verbose > 1)
+        printf("%02d %2d: ", get_ptr - start_ptr, 1);
+    c = GET_BYTE();
+    if (verbose_listing && verbose > 1) {
+        if (isprint(c))
+            printf("%d(0x%02x) '%c'\n", c, c, c);
+        else
+            printf("%d(0x%02x)\n", c, c);
+    }
+    return c;
 }
 
 static void
 dump_skip_bytes(len)
     int len;
 {
-    printf("%02d %2d:", get_ptr - start_ptr, len);
-    while (len--)
-        printf(" 0x%02x", GET_BYTE());
-    printf("\n");
+    if (verbose_listing && verbose > 1) {
+        printf("%02d %2d:", get_ptr - start_ptr, len);
+        while (len--)
+            printf(" 0x%02x", GET_BYTE());
+        printf("\n");
+    }
+    else
+        get_ptr += len;
 }
 #endif
 
@@ -98,13 +108,15 @@ get_word()
     int w;
 
 #if DUMP_HEADER
-    printf("%02d %2d: ", get_ptr - start_ptr, 2);
+    if (verbose_listing && verbose > 1)
+        printf("%02d %2d: ", get_ptr - start_ptr, 2);
 #endif
        b0 = GET_BYTE();
        b1 = GET_BYTE();
     w = (b1 << 8) + b0;
 #if DUMP_HEADER
-    printf("%hd(0x%04hx)\n", w, w);
+    if (verbose_listing && verbose > 1)
+        printf("%d(0x%04x)\n", w, w);
 #endif
        return w;
 }
@@ -126,7 +138,8 @@ get_longword()
     long l;
 
 #if DUMP_HEADER
-    printf("%02d %2d: ", get_ptr - start_ptr, 4);
+    if (verbose_listing && verbose > 1)
+        printf("%02d %2d: ", get_ptr - start_ptr, 4);
 #endif
        b0 = GET_BYTE();
        b1 = GET_BYTE();
@@ -134,7 +147,8 @@ get_longword()
        b3 = GET_BYTE();
     l = (b3 << 24) + (b2 << 16) + (b1 << 8) + b0;
 #if DUMP_HEADER
-    printf("%ld(0x%08lx)\n", l, l);
+    if (verbose_listing && verbose > 1)
+        printf("%ld(0x%08lx)\n", l, l);
 #endif
        return (b3 << 24) + (b2 << 16) + (b1 << 8) + b0;
 }
@@ -158,13 +172,15 @@ get_bytes(buf, len, size)
     int i;
 
 #if DUMP_HEADER
-    printf("%02d %2d: ", get_ptr - start_ptr, len);
+    if (verbose_listing && verbose > 1)
+        printf("%02d %2d: ", get_ptr - start_ptr, len);
 #endif
     for (i = 0; i < len && i < size; i++)
         buf[i] = get_ptr[i];
     get_ptr += len;
 #if DUMP_HEADER
-    printf("\"%s\"\n", buf);
+    if (verbose_listing && verbose > 1)
+        printf("\"%*.*s\"\n", i, i, buf);
 #endif
     return i;
 }
@@ -1087,6 +1103,7 @@ get_header(fp, hdr)
     case EXTEND_OS68K:
     case EXTEND_XOSK:
     case EXTEND_UNIX:
+    case EXTEND_JAVA:
         filename_case = NONE;
         break;
 
index 67dc6fb..9edf1f6 100644 (file)
 
 #define EXTEND_TOWNSOS                 'T'
 #define EXTEND_XOSK                            'X' /* OS-9 for X68000 (?) */
+#define EXTEND_JAVA                            'J'
 
 /*---------------------------------------------------------------------------*/
 
index 891548d..445ba1a 100644 (file)
@@ -59,7 +59,7 @@ init_variable()               /* Added N.Watazaki */
 /* options */
        quiet                   = FALSE;
        text_mode               = FALSE;
-       verbose                 = FALSE;
+       verbose                 = 0;
        noexec                  = FALSE;        /* debugging option */
        force                   = FALSE;
        prof                    = FALSE;
@@ -283,7 +283,7 @@ main(argc, argv)
                        prof = TRUE;
                        break;
                case 'v':
-                       verbose = TRUE;
+                       verbose++;
                        break;
                case 't':
                        text_mode = TRUE;
index e881b4a..cafb5c2 100644 (file)
@@ -132,7 +132,7 @@ static void
 list_one(hdr)
        register LzHeader *hdr;
 {
-       register int    mode;
+       register int    mode = 0;
        register char  *p;
        char            method[6];
        char modebits[11];
@@ -143,7 +143,7 @@ list_one(hdr)
        strncpy(method, hdr->method, 5);
        method[5] = '\0';
 
-       switch (mode = hdr->extend_type) {
+       switch (hdr->extend_type) {
        case EXTEND_UNIX:
                mode = hdr->unix_mode;
 
@@ -224,6 +224,9 @@ list_one(hdr)
                        p = "[TownsOS]";
                        break;
 #endif
+               case EXTEND_JAVA:
+            p = "[JAVA]";
+            break;
                        /* Ouch!  Please customize it's ID.  */
                default:
                        p = "[unknown]";
@@ -233,7 +236,7 @@ list_one(hdr)
                break;
        }
 
-    switch (mode = hdr->extend_type) {
+    switch (hdr->extend_type) {
     case EXTEND_UNIX:
     case EXTEND_OS68K:
     case EXTEND_XOSK:
@@ -268,7 +271,7 @@ list_one(hdr)
                if ((mode & UNIX_FILE_SYMLINK) != UNIX_FILE_SYMLINK)
                        printf(" %s", hdr->name);
                else {
-                       char            buf[256], *b1, *b2;
+                       char buf[FILENAME_LENGTH], *b1, *b2;
                        strcpy(buf, hdr->name);
                        b1 = strtok(buf, "|");
                        b2 = strtok(NULL, "|");