Warning fixes:
authorKaveh R. Ghazi <ghazi@caip.rutgers.edu>
Thu, 14 Dec 2000 18:45:35 +0000 (18:45 +0000)
committerKaveh Ghazi <ghazi@gcc.gnu.org>
Thu, 14 Dec 2000 18:45:35 +0000 (18:45 +0000)
* compress.c: Include stdlib.h and compress.h.
(rcsid): Delete.
(report_str_error): Make static.
(ez_inflate_str): Delete unused variable.  Add parens in if-stmt.
(hrd_inflate_str): Likewise.

* compress.h (init_compression, end_compression, init_inflation,
end_inflation): Prototype void arguments.

* dostime.c (rcsid): Delete.

* jargrep.c: Include ctype.h, stdlib.h, zlib.h and compress.h.
Make functions static.  Cast ctype function argument to `unsigned
char'.  Add parens in if-stmts.  Constify.
(Usage): Change into a macro.
(jargrep): Remove unused parameter.

* jartool.c: Constify.  Add parens in if-stmts.  Align
signed/unsigned char pointers in functions calls using casts.
(rcsid): Delete.
(list_jar): Fix printf format specifier.
(usage): Chop long string into bits.  Reformat.

* pushback.c (rcsid): Delete.

From-SVN: r38254

fastjar/ChangeLog
fastjar/compress.c
fastjar/compress.h
fastjar/dostime.c
fastjar/jargrep.c
fastjar/jartool.c
fastjar/pushback.c

index 9c1f0bb74536ceb67871e5066d2c8db5e03541ed..f06b120afe911ffcc9c91e620a3a168a16b43243 100644 (file)
@@ -1,3 +1,30 @@
+2000-12-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * compress.c: Include stdlib.h and compress.h.
+       (rcsid): Delete.
+       (report_str_error): Make static.
+       (ez_inflate_str): Delete unused variable.  Add parens in if-stmt.
+       (hrd_inflate_str): Likewise.
+
+       * compress.h (init_compression, end_compression, init_inflation,
+       end_inflation): Prototype void arguments.
+
+       * dostime.c (rcsid): Delete.
+
+       * jargrep.c: Include ctype.h, stdlib.h, zlib.h and compress.h.
+       Make functions static.  Cast ctype function argument to `unsigned
+       char'.  Add parens in if-stmts.  Constify.
+       (Usage): Change into a macro.
+       (jargrep): Remove unused parameter.
+
+       * jartool.c: Constify.  Add parens in if-stmts.  Align
+       signed/unsigned char pointers in functions calls using casts.
+       (rcsid): Delete.
+       (list_jar): Fix printf format specifier.
+       (usage): Chop long string into bits.  Reformat.
+
+       * pushback.c (rcsid): Delete.
+
 2000-12-13  Tom Tromey  <tromey@redhat.com>
 
        * jartool.c (extract_jar): Use strchr, not index.
index 0f919d76364da41afd20a76fac5a25e6b926bb1e..e88eff5ee4a28c7356a70445bed63509528901aa 100644 (file)
@@ -1,6 +1,11 @@
-/* $Id: compress.c,v 1.7 2000/09/13 14:02:02 cory Exp $
+/* $Id: compress.c,v 1.1 2000/12/09 03:08:23 apbianco Exp $
 
    $Log: compress.c,v $
+   Revision 1.1  2000/12/09 03:08:23  apbianco
+   2000-12-08  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+           * fastjar: Imported.
+
    Revision 1.7  2000/09/13 14:02:02  cory
    Reformatted some of the code to more closly match the layout of the orriginal
    fastjar utility.
 #ifdef HAVE_UNISTD_H
 #include <unistd.h>
 #endif
+#ifdef STDC_HEADERS
+#include <stdlib.h>
+#endif
 
 #include <sys/types.h>
 
 #include "jartool.h"
 #include "pushback.h"
+#include "compress.h"
 
 extern int seekable;
 
-static char rcsid[] = "$Id: compress.c,v 1.7 2000/09/13 14:02:02 cory Exp $";
-
 static z_stream zs;
 
 void init_compression(){
@@ -335,7 +342,7 @@ purpose: Put out an error message corresponding to error code returned from zlib
 Be suitably cryptic seeing I don't really know exactly what these errors mean.
 */
 
-void report_str_error(int val) {
+static void report_str_error(int val) {
        switch(val) {
        case Z_STREAM_END:
                break;
@@ -376,10 +383,9 @@ static Bytef *ez_inflate_str(pb_file *pbf, ub4 csize, ub4 usize) {
        Bytef *out_buff;
        Bytef *in_buff;
        unsigned int rdamt;
-       ub4 crc = 0;
 
-       if(zs.next_in = in_buff = (Bytef *) malloc(csize)) {
-               if(zs.next_out = out_buff = (Bytef *) malloc(usize + 1)) { 
+       if((zs.next_in = in_buff = (Bytef *) malloc(csize))) {
+               if((zs.next_out = out_buff = (Bytef *) malloc(usize + 1))) { 
                        if((rdamt = pb_read(pbf, zs.next_in, csize)) == csize) {
                                zs.avail_in = csize;
                                zs.avail_out = usize;
@@ -430,7 +436,6 @@ static Bytef *hrd_inflate_str(pb_file *pbf, ub4 *csize, ub4 *usize) {
        unsigned int rdamt;
        int i;
        int zret;
-       ub4 crc = 0;
 
        i = 1; 
        out_buff = NULL;
@@ -441,7 +446,7 @@ static Bytef *hrd_inflate_str(pb_file *pbf, ub4 *csize, ub4 *usize) {
                zs.avail_out = 0;
                zs.next_in = in_buff;
                do {
-                       if(tmp = (Bytef *) realloc(out_buff, (RDSZ * i) + 1)) {
+                       if((tmp = (Bytef *) realloc(out_buff, (RDSZ * i) + 1))) {
                                out_buff = tmp;
                                zs.next_out = &(out_buff[(RDSZ * (i - 1)) - zs.avail_out]);
                                zs.avail_out += RDSZ;
index f9fadba847fcc097e24054cc6d31e383127253cc..9b3341e5ae942f5eb9bb90ccd4cdfef2930da9ea 100644 (file)
@@ -1,6 +1,11 @@
-/* $Id: compress.h,v 1.1.1.1 1999/12/06 03:09:12 toast Exp $
+/* $Id: compress.h,v 1.1 2000/12/09 03:08:23 apbianco Exp $
 
    $Log: compress.h,v $
+   Revision 1.1  2000/12/09 03:08:23  apbianco
+   2000-12-08  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+           * fastjar: Imported.
+
    Revision 1.1.1.1  1999/12/06 03:09:12  toast
    initial checkin..
 
  */
 
 /* Initializes the compression data structure(s) */
-void init_compression();
+void init_compression(void);
 
 /* Compresses the file specified by in_fd and appends it to out_fd */
 int compress_file(int in_fd, int out_fd, struct zipentry *ze);
 
 /* Frees memory used by compression function */
-void end_compression();
+void end_compression(void);
 
-void init_inflation();
+void init_inflation(void);
 int inflate_file(pb_file *, int, struct zipentry *);
-void end_inflation();
+void end_inflation(void);
+Bytef *inflate_string(pb_file *, ub4 *, ub4 *);
index c29d9913000969eb31929bed3630f739a4dfa1e3..834ef4284aaddf3c40f2edb455a1236d9ebb2659 100644 (file)
   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 */
 
-/* $Id: dostime.c,v 1.1.1.1 1999/12/06 03:09:12 toast Exp $
+/* $Id: dostime.c,v 1.1 2000/12/09 03:08:23 apbianco Exp $
 
    $Log: dostime.c,v $
+   Revision 1.1  2000/12/09 03:08:23  apbianco
+   2000-12-08  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+           * fastjar: Imported.
+
    Revision 1.1.1.1  1999/12/06 03:09:12  toast
    initial checkin..
 
@@ -55,8 +60,6 @@
 
 #include "dostime.h"
 
-static char rcsid[] = "$Id: dostime.c,v 1.1.1.1 1999/12/06 03:09:12 toast Exp $";
-
 /*
 
  Copyright (C) 1990-1997 Mark Adler, Richard B. Wales, Jean-loup Gailly,
index 92461ac35b56cc37d67752aaa8f6ce11203e5446..1f40eb3576d4d697f6bd9bc224d6b525392e1628 100644 (file)
   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 */
 
-/* $Id: jargrep.c,v 1.1 2000/12/09 03:08:23 apbianco Exp $
+/* $Id: jargrep.c,v 1.2 2000/12/11 02:59:55 apbianco Exp $
 
 $Log: jargrep.c,v $
+Revision 1.2  2000/12/11 02:59:55  apbianco
+2000-12-10  Robert Lipe <robertlipe@usa.net>
+
+       * jargrep.c (jargrep): Added null statement after case.
+
+2000-12-10  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+       * Makefile: Removed.
+       * Makefile.in: Rebuilt with `-i' and `--enable-foreign'.
+
+(http://gcc.gnu.org/ml/gcc/2000-12/msg00294.html)
+
 Revision 1.1  2000/12/09 03:08:23  apbianco
 2000-12-08  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 
@@ -49,12 +61,18 @@ will test some other platforms later.
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <fcntl.h>
+#include <ctype.h>
+#ifdef STDC_HEADERS
+#include <stdlib.h>
+#endif
 #include "jargrep.h"
 #include "jartool.h"
 #include "pushback.h"
 #include "zipfile.h"
+#include "zlib.h"
+#include "compress.h"
 
-char *Usage = { "Usage: %s [-bcinsw] <-e regexp | regexp> file(s)\n" };
+#define Usage "Usage: %s [-bcinsw] <-e regexp | regexp> file(s)\n"
 
 extern char *optarg;
 
@@ -66,7 +84,7 @@ together.
 returns: TRUE if options are valid, FALSE otherwise.
 */
 
-int opt_valid(int options) {
+static int opt_valid(int options) {
        int retflag;
 
        if((options & JG_PRINT_COUNT) && 
@@ -90,18 +108,17 @@ expression.
 returns: Newly allocated compile regular expression ready to be used in an regexec call.
 */
 
-regex_t *create_regexp(char *regstr, int options) {
+static regex_t *create_regexp(const char *regstr, int options) {
        regex_t *exp;
-       int exp_flags = 0;
        int errcode;
        int msgsize;
        char *errmsg;
 
-       if(exp = (regex_t *) malloc(sizeof(regex_t)))
+       if((exp = (regex_t *) malloc(sizeof(regex_t))))
        {
-               if(errcode = regcomp(exp, regstr, (options & JG_IGNORE_CASE) ? REG_ICASE : 0)) {
+               if((errcode = regcomp(exp, regstr, (options & JG_IGNORE_CASE) ? REG_ICASE : 0))) {
                        fprintf(stderr, "regcomp of regex failed,\n");
-                       if(errmsg = (char *) malloc(msgsize = regerror(errcode, exp, NULL, 0) + 1)) {
+                       if((errmsg = (char *) malloc(msgsize = regerror(errcode, exp, NULL, 0) + 1))) {
                                regerror(errcode, exp, errmsg, msgsize);
                                fprintf(stderr, "Error: %s\n", errmsg);
                                free(exp);
@@ -135,7 +152,7 @@ we have read beyound the embedded file list and can exit knowing we have read al
 relevent information.  2 means we still haven't reached embdedded file list and need to
 do some more reading.
 */
-int check_sig(ub1 *scratch, pb_file *pbfp) {
+static int check_sig(ub1 *scratch, pb_file *pbfp) {
        ub4 signature;
        int retflag = 0;
 
@@ -175,7 +192,7 @@ args        csize           Pointer to embedded file's compressed size.
 Purpose: Unpack the series of values from file_header.
 */
 
-void decd_siz(ub4 *csize, ub4 *usize, ub2 *fnlen, ub2 *eflen, ub2 *flags, ub2 *method, ub1 *file_header) {
+static void decd_siz(ub4 *csize, ub4 *usize, ub2 *fnlen, ub2 *eflen, ub2 *flags, ub2 *method, ub1 *file_header) {
     *csize = UNPACK_UB4(file_header, LOC_CSIZE);
 #ifdef DEBUG    
     printf("Compressed size is %u\n", *csize);
@@ -216,7 +233,7 @@ purpose:    Read in the embedded file name from jar file.
 returns: Pointer to newly allocated string containing file name.
 */
 
-char *new_filename(pb_file *pbf, ub4 len) {
+static char *new_filename(pb_file *pbf, ub4 len) {
        char *filename;
 
        if(!(filename = (char *) malloc(len + 1))) {
@@ -241,10 +258,10 @@ purpose:  Create a string containing the contents of the embedded noncompressed f
 returns: Pointer to newly allocated string containing embedded file contents.
 */
 
-char *read_string(pb_file *pbf, int size) {
+static char *read_string(pb_file *pbf, int size) {
        char *page;
        
-       if(page = (char *) malloc(size + 1)) {
+       if((page = (char *) malloc(size + 1))) {
                pb_read(pbf, page, size);
                page[size] = '\0';
        }
@@ -270,16 +287,16 @@ The matching line that is printed out by jargrep is generated by this function.
 returns: Pointer to newly allocated string containing matched expression.
 */
 
-char *extract_line(char *stream, regoff_t begin, regoff_t end, int *b) {
+static char *extract_line(const char *stream, regoff_t begin, regoff_t end, int *b) {
        int e;
        int length;
        char *retstr;
 
-       for(*b = begin; *b >= 0 && !iscntrl(stream[*b]); (*b)--);
+       for(*b = begin; *b >= 0 && !iscntrl((unsigned char)stream[*b]); (*b)--);
        (*b)++;
-       for(e = end; stream[e] == '\t' || !iscntrl(stream[e]); e++);
+       for(e = end; stream[e] == '\t' || !iscntrl((unsigned char)stream[e]); e++);
        length = e - *b;
-       if(retstr = (char *) malloc(length + 1)) {
+       if((retstr = (char *) malloc(length + 1))) {
                sprintf(retstr, "%d:", *b);
                strncpy(retstr, &(stream[*b]), length);
                retstr[length] = '\0';
@@ -302,24 +319,26 @@ word and not a substring of another word.
 returns: TRUE if it is a word, FALSE of it is a substring.
 */
 
-int chk_wrd(regex_t *exp, char *str) {
+static int chk_wrd(regex_t *exp, const char *str) {
        int wrd_fnd = FALSE;
        int regflag;
        int frnt_ok;
        int bck_ok;
-       char *str2;
+       const char *str2;
        regmatch_t match;
 
        str2 = str;
        frnt_ok = bck_ok = FALSE;
        while(!wrd_fnd && !(regflag = regexec(exp, str2, 1, &match, 0))) {
                if(!match.rm_so && (str2 == str)) frnt_ok = TRUE;
-               else if(!isalnum(str2[match.rm_so - 1]) && str2[match.rm_so - 1] != '_')
+               else if(!isalnum((unsigned char)str2[match.rm_so - 1])
+                       && str2[match.rm_so - 1] != '_')
                        frnt_ok = TRUE;
                else frnt_ok = FALSE;
                if(frnt_ok) {
                        if(str2[match.rm_eo] == '\0') bck_ok = TRUE;
-                       else if(!isalnum(str2[match.rm_eo]) && str2[match.rm_eo] != '_')
+                       else if(!isalnum((unsigned char)str2[match.rm_eo])
+                               && str2[match.rm_eo] != '_')
                                bck_ok = TRUE;
                        else bck_ok = FALSE;
                }
@@ -348,7 +367,7 @@ purpose:    Control output of jargrep.  Output is controlled by which options have
 set at the command line.
 */
 
-void prnt_mtchs(regex_t *exp, char *filename, char *stream, regmatch_t *pmatch, regmatch_t *nl_offset, int num, int lines, int options) {
+static void prnt_mtchs(regex_t *exp, const char *filename, const char *stream, regmatch_t *pmatch, regmatch_t *nl_offset, int num, int lines, int options) {
        int i;
        int j = 0;
        int ln_cnt;
@@ -388,13 +407,13 @@ args:     pbf             Pointer to pushback file pointer for jar file.
 purpose:       Verify the CRC matches that as what is stored in the jar file.
 */
 
-void check_crc(pb_file *pbf, char *stream, ub4 usize) {
+static void check_crc(pb_file *pbf, const char *stream, ub4 usize) {
        ub4 crc;
        ub4 lcrc;
        ub1 scratch[16];
 
        crc = crc32(crc, NULL, 0);
-       crc = crc32(crc, stream, usize);
+       crc = crc32(crc, (const unsigned char *)stream, usize);
        if(pb_read(pbf, scratch, 16) != 16) {
                perror("read");
         exit(1);
@@ -420,11 +439,13 @@ permits grepping of binary files as well by converting non ASCII and control cha
 into '\n'.
 */
 
-void mk_ascii(char *stream, int usize) {
-       int i;
+static void mk_ascii(char *stream, size_t usize) {
+       size_t i;
 
        for(i = 0; i < usize; i++) 
-               if(stream[i] != '\t' && (iscntrl(stream[i]) || (unsigned char) stream[i] >= 128))
+               if(stream[i] != '\t'
+                  && (iscntrl((unsigned char)stream[i])
+                      || (unsigned char) stream[i] >= 128))
                        stream[i] = '\n';
 }
 
@@ -439,7 +460,7 @@ returns:  Pointer to newly allocated array of regmatch_t which gives indexes to
 and end of matches.  NULL is returned upon no matches found.
 */
 
-regmatch_t *fnd_match(regex_t *exp, char *str_stream, int *i) {
+static regmatch_t *fnd_match(regex_t *exp, const char *str_stream, int *i) {
        int regflag;
        regmatch_t match;
        regmatch_t *match_array;
@@ -449,8 +470,8 @@ regmatch_t *fnd_match(regex_t *exp, char *str_stream, int *i) {
        for(*i = 0, regflag = regexec(exp, str_stream, 1, &match, 0); !regflag; 
                regflag = regexec(exp, &(str_stream[match.rm_eo]), 1, &match, 0), (*i)++)
        {
-               if(tmp = (regmatch_t *) 
-                       realloc(match_array, sizeof(regmatch_t) * ((*i) + 1))) 
+               if((tmp = (regmatch_t *) 
+                   realloc(match_array, sizeof(regmatch_t) * ((*i) + 1))))
                {
                        match_array = tmp;
                        if(*i) {
@@ -483,7 +504,7 @@ read and then the embeded file is extracted and grepped.
 returns: FALSE upon failure, TRUE otherwise.
 */
 
-int cont_grep(regex_t *exp, regex_t *nl_exp, int fd, char *jarfile, pb_file *pbf, int options) {
+static int cont_grep(regex_t *exp, regex_t *nl_exp, int fd, pb_file *pbf, int options) {
        int retflag = TRUE;
        int i;
        int j;
@@ -538,7 +559,7 @@ purpose:    Open jar file.  Check signatures.  When right signature is found go to
 grep routine.
 */
 
-void jargrep(regex_t *exp, regex_t *nl_exp, char *jarfile, int options) {
+static void jargrep(regex_t *exp, regex_t *nl_exp, const char *jarfile, int options){
        int fd;
        int floop = TRUE;
        pb_file pbf;
@@ -559,7 +580,7 @@ void jargrep(regex_t *exp, regex_t *nl_exp, char *jarfile, int options) {
                        else {
                                switch (check_sig(scratch, &pbf)) {
                                case 0:
-                                       floop = cont_grep(exp, nl_exp, fd, jarfile, &pbf, options);
+                                       floop = cont_grep(exp, nl_exp, fd, &pbf, options);
                                        break;
                                case 1:
                                        floop = FALSE;
index b7459e0bb6228a2cb34353516ff27f7905b3f273..5a5f235388a9aef041a51cb14ea998b4869a6e06 100644 (file)
   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 */
 
-/* $Id: jartool.c,v 1.1 2000/12/09 03:08:23 apbianco Exp $
+/* $Id: jartool.c,v 1.2 2000/12/13 18:11:57 tromey Exp $
 
    $Log: jartool.c,v $
+   Revision 1.2  2000/12/13 18:11:57  tromey
+       * jartool.c (extract_jar): Use strchr, not index.
+
    Revision 1.1  2000/12/09 03:08:23  apbianco
    2000-12-08  Alexandre Petit-Bianco  <apbianco@cygnus.com>
 
 #endif
 
 static char version_string[] = VERSION;
-static char rcsid[] = "$Id: jartool.c,v 1.1 2000/12/09 03:08:23 apbianco Exp $";
 
 extern int errno;
 
-void usage(char*);
+void usage(const char*);
 void add_entry(struct zipentry *);
-void init_headers();
+void init_headers(void);
 
 int consume(pb_file *, int);
 int list_jar(int, char**, int);
 int extract_jar(int, char**, int);
-int add_file_to_jar(int, int, char*, struct stat*);
-int add_to_jar(int, char*, char*);
+int add_file_to_jar(int, int, const char*, struct stat*);
+int add_to_jar(int, const char*, const char*);
 int create_central_header(int);
-int make_manifest(int, char*);
+int make_manifest(int, const char*);
 static void init_args(char **, int);
-static char *get_next_arg ();
+static char *get_next_arg (void);
 
 /* global variables */
 ub1 file_header[30];
@@ -371,7 +373,7 @@ int main(int argc, char **argv){
   }
 
   if(action == ACTION_CREATE || action == ACTION_UPDATE){
-    char *arg;
+    const char *arg;
     init_headers();
 
    if((action == ACTION_UPDATE) && file) {
@@ -397,8 +399,8 @@ int main(int argc, char **argv){
     while ((arg = get_next_arg ())){
 
       if(!strcmp(arg, "-C")){
-       char *dir_to_change = get_next_arg ();
-       char *file_to_add = get_next_arg ();
+       const char *dir_to_change = get_next_arg ();
+       const char *file_to_add = get_next_arg ();
         if(!dir_to_change 
           || !file_to_add
           || add_to_jar(jarfd, dir_to_change, file_to_add)){
@@ -570,7 +572,7 @@ void add_entry(struct zipentry *ze){
   number_of_entries++;
 }
 
-int make_manifest(int jfd, char *mf_name){
+int make_manifest(int jfd, const char *mf_name){
   time_t current_time;
   int nlen;   /* length of file name */
   int mod_time; /* file modification time */
@@ -622,14 +624,14 @@ int make_manifest(int jfd, char *mf_name){
     int mf_len = 37 + strlen(VERSION);
     char *mf;
 
-    if(mf = (char *) malloc(mf_len + 1)) {
+    if((mf = (char *) malloc(mf_len + 1))) {
     uLong crc;
 
     sprintf(mf, "Manifest-Version: 1.0\nCreated-By: %s\n\n", VERSION);
 
     crc = crc32(0L, Z_NULL, 0);
     
-    crc = crc32(crc, mf, mf_len);
+    crc = crc32(crc, (const unsigned char *)mf, mf_len);
 
     nlen = 20;  /* once again, trust me */
 
@@ -703,7 +705,7 @@ int make_manifest(int jfd, char *mf_name){
   return 0;
 }
 
-int add_to_jar(int fd, char *new_dir, char *file){
+int add_to_jar(int fd, const char *new_dir, const char *file){
   struct stat statbuf;
   DIR *dir;
   struct dirent *de;
@@ -857,7 +859,7 @@ int add_to_jar(int fd, char *new_dir, char *file){
   return 0;
 }
 
-int add_file_to_jar(int jfd, int ffd, char *fname, struct stat *statbuf){
+int add_file_to_jar(int jfd, int ffd, const char *fname, struct stat *statbuf){
 
   unsigned short file_name_length;
   unsigned long mod_time;
@@ -1259,7 +1261,7 @@ int extract_jar(int fd, char **files, int file_num){
       handle = FALSE;
       
       for(j = 0; j < file_num; j++)
-        if(strcmp(files[j], filename) == 0){
+        if(strcmp(files[j], (const char *)filename) == 0){
           handle = TRUE;
           break;
         }
@@ -1271,16 +1273,16 @@ int extract_jar(int fd, char **files, int file_num){
     /* OK, there is some directory information in the file.  Nothing to do
        but ensure the directory(s) exist, and create them if they don't.
        What a pain! */
-    if(strchr(filename, '/') != NULL && handle){
+    if(strchr((const char *)filename, '/') != NULL && handle){
       /* Loop through all the directories in the path, (everything w/ a '/') */
-      ub1 *start = filename;
+      const ub1 *start = filename;
       char *tmp_buff;
       struct stat sbuf;
 
-      tmp_buff = malloc(sizeof(char) * strlen(filename));
+      tmp_buff = malloc(sizeof(char) * strlen((const char *)filename));
 
       for(;;){
-        ub1 *idx = strchr(start, '/');
+        const ub1 *idx = (const unsigned char *)strchr((const char *)start, '/');
 
         if(idx == NULL)
           break;
@@ -1290,7 +1292,7 @@ int extract_jar(int fd, char **files, int file_num){
         }
         start = idx + 1;
 
-        strncpy(tmp_buff, filename, (idx - filename));
+        strncpy(tmp_buff, (const char *)filename, (idx - filename));
         tmp_buff[(idx - filename)] = '\0';
 
 #ifdef DEBUG    
@@ -1327,26 +1329,26 @@ int extract_jar(int fd, char **files, int file_num){
       }
 
       /* only a directory */
-      if(strlen(start) == 0)
+      if(strlen((const char *)start) == 0)
         dir = TRUE;
 
 #ifdef DEBUG    
-      printf("Leftovers are \"%s\" (%d)\n", start, strlen(start));
+      printf("Leftovers are \"%s\" (%d)\n", start, strlen((const char *)start));
 #endif
 
       /* If the entry was just a directory, don't write to file, etc */
-      if(strlen(start) == 0)
+      if(strlen((const char *)start) == 0)
         f_fd = -1;
 
       free(tmp_buff);
     }
 
     if(f_fd != -1 && handle){
-      f_fd = creat(filename, 00644);
+      f_fd = creat((const char *)filename, 00644);
 
       if(f_fd < 0){
         fprintf(stderr, "Error extracting JAR archive!\n");
-        perror(filename);
+        perror((const char *)filename);
         exit(1);
       }
     }
@@ -1568,7 +1570,7 @@ int list_jar(int fd, char **files, int file_num){
          we'll only display those, otherwise we'll display everything */
       if(file_num > 0){
         for(j = 0; j < file_num; j++)
-          if(strcmp(files[j], filename) == 0){
+          if(strcmp(files[j], (const char *)filename) == 0){
             if(verbose)
               printf("%6d %s %s\n", usize, ascii_date, filename);
             else
@@ -1705,7 +1707,7 @@ int list_jar(int fd, char **files, int file_num){
         
 
 #ifdef DEBUG
-        printf("Skipping %d bytes\n", size);
+        printf("Skipping %ld bytes\n", (long)size);
 #endif
 
         consume(&pbf, size);
@@ -1713,7 +1715,7 @@ int list_jar(int fd, char **files, int file_num){
       /* print out the listing */
       if(file_num > 0){
         for(j = 0; j < file_num; j++)
-          if(strcmp(files[j], filename) == 0){
+          if(strcmp(files[j], (const char *)filename) == 0){
             if(verbose)
               printf("%6d %s %s\n", usize, ascii_date, filename);
             else
@@ -1755,8 +1757,37 @@ int consume(pb_file *pbf, int amt){
   return 0;
 }
 
-void usage(char *filename){
-  fprintf(stderr, "Usage: %s {ctxuV}[vfm0ME@] [jar-file] [manifest-file] [-C dir] files ...\nOptions\n -c  create new archive\n -t  list table of contents for archive\n -x  extract named (or all) files from archive\n -u  update existing archive\n -V  display version information\n -v  generate verbose output on standard output\n -f  specify archive file name\n -m  include manifest information from specified manifest file\n -0  store only; use no ZIP compression\n -M  Do not create a manifest file for the entries\n -C  change to the specified directory and include the following file\n -E  don't include the files found in a directory\n -@  Read names from stdin\nIf any file is a directory then it is processed recursively.\nThe manifest file name and the archive file name needs to be specified\nin the same order the 'm' and 'f' flags are specified.\n\nExample 1: to archive two class files into an archive called classes.jar: \n     jar cvf classes.jar Foo.class Bar.class \nExample 2: use an existing manifest file 'mymanifest' and archive all the\n     files in the foo/ directory into 'classes.jar': \n     jar cvfm classes.jar mymanifest -C foo/ .\n", filename);
+void usage(const char *filename){
+  fprintf(stderr, "\
+Usage: %s {ctxuV}[vfm0ME@] [jar-file] [manifest-file] [-C dir] files ...\n\
+Options\n\
+ -c  create new archive\n\
+ -t  list table of contents for archive\n\
+ -x  extract named (or all) files from archive\n\
+", filename);
+  fprintf(stderr, "\
+ -u  update existing archive\n\
+ -V  display version information\n\
+ -v  generate verbose output on standard output\n\
+ -f  specify archive file name\n\
+ -m  include manifest information from specified manifest file\n\
+ -0  store only; use no ZIP compression\n\
+ -M  Do not create a manifest file for the entries\n\
+ -C  change to the specified directory and include the following file\n\
+ -E  don't include the files found in a directory\n\
+ -@  Read names from stdin\n\
+");
+  fprintf(stderr, "\
+If any file is a directory then it is processed recursively.\n\
+The manifest file name and the archive file name needs to be specified\n\
+in the same order the 'm' and 'f' flags are specified.\n\
+\n\
+Example 1: to archive two class files into an archive called classes.jar: \n\
+     jar cvf classes.jar Foo.class Bar.class \n\
+Example 2: use an existing manifest file 'mymanifest' and archive all the\n\
+     files in the foo/ directory into 'classes.jar': \n\
+     jar cvfm classes.jar mymanifest -C foo/ .\n\
+");
 
   exit(1);
 }
index 03cdd651b424b20c14d61193afcd981355f09182..26a267364a6e210cb3640b81dbfe1120a78ad40d 100644 (file)
@@ -1,6 +1,11 @@
-/* $Id: pushback.c,v 1.2 2000/08/23 19:42:17 cory Exp $
+/* $Id: pushback.c,v 1.1 2000/12/09 03:08:23 apbianco Exp $
 
    $Log: pushback.c,v $
+   Revision 1.1  2000/12/09 03:08:23  apbianco
+   2000-12-08  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+           * fastjar: Imported.
+
    Revision 1.2  2000/08/23 19:42:17  cory
    Added support for more Unix platforms.  The following code has been hacked
    to work on AIX, Solaris, True 64, and HP-UX.
@@ -43,8 +48,6 @@
 #include "jartool.h"
 #include "pushback.h"
 
-static char rcsid[] = "$Id: pushback.c,v 1.2 2000/08/23 19:42:17 cory Exp $";
-
 void pb_init(pb_file *pbf, int fd){
   pbf->fd = fd;
   pbf->next = pbf->pb_buff;