home *** CD-ROM | disk | FTP | other *** search
/ Meeting Pearls 3 / Meeting_Pearls_III.iso / Pearls / arc / Archiver / cpio / src / extern.h < prev    next >
C/C++ Source or Header  |  1992-09-19  |  5KB  |  171 lines

  1. /* extern.h - External declarations for cpio.  Requires system.h.
  2.    Copyright (C) 1990, 1991, 1992 Free Software Foundation, Inc.
  3.  
  4.    This program is free software; you can redistribute it and/or modify
  5.    it under the terms of the GNU General Public License as published by
  6.    the Free Software Foundation; either version 2, or (at your option)
  7.    any later version.
  8.  
  9.    This program is distributed in the hope that it will be useful,
  10.    but WITHOUT ANY WARRANTY; without even the implied warranty of
  11.    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  12.    GNU General Public License for more details.
  13.  
  14.    You should have received a copy of the GNU General Public License
  15.    along with this program; if not, write to the Free Software
  16.    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
  17.  
  18. enum archive_format
  19. {
  20.   arf_unknown, arf_binary, arf_oldascii, arf_newascii, arf_crcascii,
  21.   arf_tar, arf_ustar
  22. };
  23. extern enum archive_format archive_format;
  24. extern int reset_time_flag;
  25. extern int io_block_size;
  26. extern int create_dir_flag;
  27. extern int rename_flag;
  28. extern int table_flag;
  29. extern int unconditional_flag;
  30. extern int verbose_flag;
  31. extern int dot_flag;
  32. extern int link_flag;
  33. extern int retain_time_flag;
  34. extern int crc_i_flag;
  35. extern int append_flag;
  36. extern int swap_bytes_flag;
  37. extern int swap_halfwords_flag;
  38. extern int swapping_bytes;
  39. extern int swapping_halfwords;
  40. extern int set_owner_flag;
  41. extern uid_t set_owner;
  42. extern int set_group_flag;
  43. extern gid_t set_group;
  44. extern int no_chown_flag;
  45. extern int last_header_start;
  46. extern int copy_matching_files;
  47. extern int numeric_uid;
  48. extern char *pattern_file_name;
  49. extern char *new_media_message;
  50. extern char *new_media_message_with_number;
  51. extern char *new_media_message_after_number;
  52. extern int archive_des;
  53. extern char *archive_name;
  54. extern unsigned long crc;
  55.  
  56. extern char *input_buffer, *output_buffer;
  57. extern char *in_buff, *out_buff;
  58. extern int input_size, output_size;
  59. extern long input_bytes, output_bytes;
  60. extern char zeros_512[];
  61. extern char *directory_name;
  62. extern char **save_patterns;
  63. extern int num_patterns;
  64. extern char name_end;
  65. extern char input_is_special;
  66. extern char output_is_special;
  67. extern char input_is_seekable;
  68. extern char output_is_seekable;
  69. extern char *program_name;
  70. extern int (*xstat) ();
  71. extern void (*copy_function) ();
  72.  
  73. #if __STDC__ || defined(__MSDOS__)
  74. # define P_(s) s
  75. #else
  76. # define P_(s) ()
  77. #endif
  78.  
  79. /* copyin.c */
  80. void read_in_header P_((struct new_cpio_header *file_hdr, int in_des));
  81. void read_in_old_ascii P_((struct new_cpio_header *file_hdr, int in_des));
  82. void read_in_new_ascii P_((struct new_cpio_header *file_hdr, int in_des));
  83. void read_in_binary P_((struct new_cpio_header *file_hdr, int in_des));
  84. void swab_array P_((char *arg, int count));
  85. void process_copy_in P_((void));
  86. void long_format P_((struct new_cpio_header *file_hdr, char *link_name));
  87. void print_name_with_quoting P_((char *p));
  88.  
  89. /* copyout.c */
  90. void write_out_header P_((struct new_cpio_header *file_hdr, int out_des));
  91. void process_copy_out P_((void));
  92.  
  93. /* copypass.c */
  94. void process_copy_pass P_((void));
  95.  
  96. /* dirname.c */
  97. char *dirname P_((char *path));
  98.  
  99. /* error.c */
  100. void error P_((int status, int errnum, char *message, ...));
  101.  
  102. /* filemode.c */
  103. void mode_string P_((unsigned int mode, char *str));
  104.  
  105. /* idcache.c */
  106. #ifndef __MSDOS__
  107. char *getgroup ();
  108. char *getuser ();
  109. uid_t *getuidbyname ();
  110. gid_t *getgidbyname ();
  111. #endif
  112.  
  113. /* main.c */
  114. void usage P_((void));
  115. void process_args P_((int argc, char *argv[]));
  116. void initialize_buffers P_((void));
  117.  
  118. /* makepath.c */
  119. int make_path P_((char *argpath, int mode, int parent_mode,
  120.           uid_t owner, gid_t group, char *verbose_fmt_string));
  121.  
  122. /* stripslash.c */
  123. void strip_trailing_slashes P_((char *path));
  124.  
  125. /* tar.c */
  126. void write_out_tar_header P_((struct new_cpio_header *file_hdr, int out_des));
  127. int null_block P_((long *block, int size));
  128. void read_in_tar_header P_((struct new_cpio_header *file_hdr, int in_des));
  129. int otoa P_((char *s, unsigned long *n));
  130. int is_tar_header P_((char *buf));
  131. int is_tar_filename_too_long P_((char *name));
  132.  
  133. /* userspec.c */
  134. #ifndef __MSDOS__
  135. char *parse_user_spec P_((char *name, uid_t *uid, gid_t *gid,
  136.               char **username, char **groupname));
  137. #endif
  138.  
  139. /* util.c */
  140. void empty_output_buffer P_((int out_des));
  141. void swahw_array P_((char *ptr, int count));
  142. void fill_input_buffer P_((int in_des, int num_bytes));
  143. void copy_buf_out P_((char *in_buf, int out_des, long num_bytes));
  144. void copy_in_buf P_((char *in_buf, int in_des, long num_bytes));
  145. int peek_in_buf P_((char *peek_buf, int in_des, int num_bytes));
  146. void toss_input P_((int in_des, long num_bytes));
  147. void copy_files P_((int in_des, int out_des, long num_bytes));
  148. void create_all_directories P_((char *name));
  149. void prepare_append P_((int out_file_des));
  150. char *find_inode_file P_((unsigned long node_num,
  151.               unsigned long major_num, unsigned long minor_num));
  152. void add_inode P_((unsigned long node_num, char *file_name,
  153.            unsigned long major_num, unsigned long minor_num));
  154. int open_archive P_((char *file));
  155. void tape_offline P_((int tape_des));
  156. void get_next_reel P_((int tape_des));
  157. void set_new_media_message P_((char *message));
  158. #ifdef __MSDOS__
  159. int chown P_((char *path, int owner, int group));
  160. #endif
  161. #ifdef __TURBOC__
  162. int utime P_((char *filename, struct utimbuf *utb));
  163. #endif
  164.  
  165. /* xmalloc.c */
  166. char *xmalloc P_((unsigned n));
  167. char *xrealloc P_((char *p, unsigned n));
  168.  
  169. /* xstrdup.c */
  170. char *xstrdup P_((char *string));
  171.