/*
jartool.c - main functions for fastjar utility
- Copyright (C) 2002, 2004 Free Software Foundation
+ Copyright (C) 2002, 2004, 2005 Free Software Foundation
Copyright (C) 1999, 2000, 2001 Bryan Burns
This program is free software; you can redistribute it and/or
static char *get_next_arg (void);
static char *jt_strdup (char*);
static void expand_options (int *argcp, char ***argvp);
-static inline struct zipentry *find_entry (const char *);
-static inline int looks_like_dir (const char *);
+static struct zipentry *find_entry (const char *);
+static int looks_like_dir (const char *);
/* global variables */
ub1 file_header[30];
{ NULL, no_argument, NULL, 0 }
};
-int main(int argc, char **argv){
+int main(int argc, char **argv)
+{
char *mfile = NULL;
create_central_header(jarfd);
+#if ! (HAVE_FTRUNCATE || HAVE__CHSIZE)
+ #error neither ftruncate() or _chsize() available
+#endif
/* Check if the file shrunk when we updated it. */
if (action == ACTION_UPDATE)
+#if HAVE_FTRUNCATE
ftruncate (jarfd, lseek (jarfd, 0, SEEK_CUR));
+#else
+ _chsize (jarfd, lseek (jarfd, 0, SEEK_CUR));
+#endif
if (jarfd != STDIN_FILENO && close(jarfd) != 0) {
fprintf(stderr, "%s: error closing jar archive: %s\n",
static char **args_g;
static void
-init_args(args, current)
- char **args;
- int current;
+init_args(char **args, int current)
{
if(!read_names_from_stdin)
{
}
static char *
-get_next_arg ()
+get_next_arg (void)
{
static int reached_end = 0;
}
}
-void init_headers(){
+void init_headers(void)
+{
/* packing file header */
/* magic number */
file_header[0] = 0x50;
}
-void add_entry(struct zipentry *ze){
+void add_entry(struct zipentry *ze)
+{
if(ziplist == NULL){
ziplist = ze;
number_of_entries++;
}
-static inline struct zipentry *
+static struct zipentry *
find_entry (const char *fname)
{
struct zipentry *ze;
}
-static inline int
+static int
looks_like_dir (const char *fname)
{
struct zipentry *ze;
return 0;
}
-int make_manifest(int jfd, const char *mf_name, int updating){
+int make_manifest(int jfd, const char *mf_name, int updating)
+{
time_t current_time;
int nlen; /* length of file name */
int mod_time; /* file modification time */
exit(1);
}
+ if (eflen > 0)
+ consume(&pbf, eflen);
+
if(method == 8 || flags & 0x0008){
- consume(&pbf, eflen);
inflate_file(&pbf, f_fd, &ze);
} else {
printf("%d bytes written\n", out_a);
#endif
}
-
- consume(&pbf, eflen);
}
/* if there is a data descriptor left, compare the CRC */
exit (1);
}
-void version ()
+void version (void)
{
printf("jar (%s) %s\n\n", PACKAGE, VERSION);
printf("Copyright 1999, 2000, 2001 Bryan Burns\n");
}
static char *
-jt_strdup(s)
- char *s;
+jt_strdup(char *s)
{
char *result = (char*)malloc(strlen(s) + 1);
if (result == (char*)0)