aboutsummaryrefslogtreecommitdiff
path: root/fastjar
diff options
context:
space:
mode:
authorKaveh Ghazi <ghazi@caip.rutgers.edu>2000-12-14 18:45:35 +0000
committerKaveh Ghazi <ghazi@caip.rutgers.edu>2000-12-14 18:45:35 +0000
commite790fbe292d81d54a5909b76669f76ab66d621f6 (patch)
tree4038c59b8993142fec6dcdc3b59d41af2314c771 /fastjar
parent1d7a7da4e6cc5d5829150533631780c527f0f86e (diff)
Warning fixes:
* 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. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@38254 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'fastjar')
-rw-r--r--fastjar/ChangeLog27
-rw-r--r--fastjar/compress.c23
-rw-r--r--fastjar/compress.h16
-rw-r--r--fastjar/dostime.c9
-rw-r--r--fastjar/jargrep.c87
-rw-r--r--fastjar/jartool.c95
-rw-r--r--fastjar/pushback.c9
7 files changed, 181 insertions, 85 deletions
diff --git a/fastjar/ChangeLog b/fastjar/ChangeLog
index 9c1f0bb7453..f06b120afe9 100644
--- a/fastjar/ChangeLog
+++ b/fastjar/ChangeLog
@@ -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.
diff --git a/fastjar/compress.c b/fastjar/compress.c
index 0f919d76364..e88eff5ee4a 100644
--- a/fastjar/compress.c
+++ b/fastjar/compress.c
@@ -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.
@@ -67,16 +72,18 @@
#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;
diff --git a/fastjar/compress.h b/fastjar/compress.h
index f9fadba847f..9b3341e5ae9 100644
--- a/fastjar/compress.h
+++ b/fastjar/compress.h
@@ -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..
@@ -38,14 +43,15 @@
*/
/* 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 *);
diff --git a/fastjar/dostime.c b/fastjar/dostime.c
index c29d9913000..834ef4284aa 100644
--- a/fastjar/dostime.c
+++ b/fastjar/dostime.c
@@ -20,9 +20,14 @@
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,
diff --git a/fastjar/jargrep.c b/fastjar/jargrep.c
index 92461ac35b5..1f40eb3576d 100644
--- a/fastjar/jargrep.c
+++ b/fastjar/jargrep.c
@@ -21,9 +21,21 @@
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;
diff --git a/fastjar/jartool.c b/fastjar/jartool.c
index b7459e0bb62..5a5f235388a 100644
--- a/fastjar/jartool.c
+++ b/fastjar/jartool.c
@@ -17,9 +17,12 @@
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>
@@ -169,23 +172,22 @@
#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);
}
diff --git a/fastjar/pushback.c b/fastjar/pushback.c
index 03cdd651b42..26a267364a6 100644
--- a/fastjar/pushback.c
+++ b/fastjar/pushback.c
@@ -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;