/* extern.h - External declarations for cpio. Requires system.h.
Copyright (C) 1990, 1991, 1992 Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
arf_unknown
, arf_binary
, arf_oldascii
, arf_newascii
, arf_crcascii
,
arf_tar
, arf_ustar
, arf_hpoldascii
, arf_hpbinary
extern enum archive_format archive_format
;
extern int reset_time_flag
;
extern int io_block_size
;
extern int create_dir_flag
;
extern int unconditional_flag
;
extern int retain_time_flag
;
extern int swap_bytes_flag
;
extern int swap_halfwords_flag
;
extern int swapping_bytes
;
extern int swapping_halfwords
;
extern int set_owner_flag
;
extern int set_group_flag
;
extern int no_chown_flag
;
extern int last_header_start
;
extern int copy_matching_files
;
extern char *pattern_file_name
;
extern char *new_media_message
;
extern char *new_media_message_with_number
;
extern char *new_media_message_after_number
;
extern char *archive_name
;
extern unsigned long crc
;
extern char *input_buffer
, *output_buffer
;
extern char *in_buff
, *out_buff
;
extern long input_size
, output_size
;
extern long input_bytes
, output_bytes
;
extern char *directory_name
;
extern char **save_patterns
;
extern char input_is_special
;
extern char output_is_special
;
extern char input_is_seekable
;
extern char output_is_seekable
;
extern int f_force_local
;
extern char *program_name
;
extern void (*copy_function
) ();
#if __STDC__ || defined(__MSDOS__)
void read_in_header
P_((struct new_cpio_header
*file_hdr
, int in_des
));
void read_in_old_ascii
P_((struct new_cpio_header
*file_hdr
, int in_des
));
void read_in_new_ascii
P_((struct new_cpio_header
*file_hdr
, int in_des
));
void read_in_binary
P_((struct new_cpio_header
*file_hdr
, int in_des
));
void swab_array
P_((char *arg
, int count
));
void process_copy_in
P_((void));
void long_format
P_((struct new_cpio_header
*file_hdr
, char *link_name
));
void print_name_with_quoting
P_((char *p
));
void write_out_header
P_((struct new_cpio_header
*file_hdr
, int out_des
));
void process_copy_out
P_((void));
void process_copy_pass
P_((void));
char *dirname
P_((char *path
));
void error
P_((int status
, int errnum
, char *message
, ...));
void mode_string
P_((unsigned int mode
, char *str
));
void process_args
P_((int argc
, char *argv
[]));
void initialize_buffers
P_((void));
int make_path
P_((char *argpath
, int mode
, int parent_mode
,
uid_t owner
, gid_t group
, char *verbose_fmt_string
));
void strip_trailing_slashes
P_((char *path
));
void write_out_tar_header
P_((struct new_cpio_header
*file_hdr
, int out_des
));
int null_block
P_((long *block
, int size
));
void read_in_tar_header
P_((struct new_cpio_header
*file_hdr
, int in_des
));
int otoa
P_((char *s
, unsigned long *n
));
int is_tar_header
P_((char *buf
));
int is_tar_filename_too_long
P_((char *name
));
char *parse_user_spec
P_((char *name
, uid_t
*uid
, gid_t
*gid
,
char **username
, char **groupname
));
void empty_output_buffer
P_((int out_des
));
void swahw_array
P_((char *ptr
, int count
));
void fill_input_buffer
P_((int in_des
, int num_bytes
));
void copy_buf_out
P_((char *in_buf
, int out_des
, long num_bytes
));
void copy_in_buf
P_((char *in_buf
, int in_des
, long num_bytes
));
int peek_in_buf
P_((char *peek_buf
, int in_des
, int num_bytes
));
void toss_input
P_((int in_des
, long num_bytes
));
void copy_files
P_((int in_des
, int out_des
, long num_bytes
));
void create_all_directories
P_((char *name
));
void prepare_append
P_((int out_file_des
));
char *find_inode_file
P_((unsigned long node_num
,
unsigned long major_num
, unsigned long minor_num
));
void add_inode
P_((unsigned long node_num
, char *file_name
,
unsigned long major_num
, unsigned long minor_num
));
int open_archive
P_((char *file
));
void tape_offline
P_((int tape_des
));
void get_next_reel
P_((int tape_des
));
void set_new_media_message
P_((char *message
));
int chown
P_((char *path
, int owner
, int group
));
int utime
P_((char *filename
, struct utimbuf
*utb
));
char *add_cdf_double_slashes
P_((char *filename
));
char *xmalloc
P_((unsigned n
));
char *xrealloc
P_((char *p
, unsigned n
));
char *xstrdup
P_((char *string
));