1994-12-13 18:08:34 +00:00
|
|
|
/*
|
|
|
|
* udl - Convert EOL formats freely between MS-DOS (CR/LF), Unix/Amiga (LF),
|
|
|
|
* and Apple (CR).
|
|
|
|
*
|
|
|
|
* Header file for routines common to both the Unix and Apple IIgs versions.
|
|
|
|
*
|
1996-02-04 01:34:31 +00:00
|
|
|
* $Id: common.h,v 1.9 1996/02/04 01:34:27 gdr Exp $
|
1994-12-13 18:08:34 +00:00
|
|
|
*
|
1995-02-08 06:12:49 +00:00
|
|
|
* Copyright (c) 1993-1995 Soenke Behrens, Devin Reade
|
1994-12-13 18:08:34 +00:00
|
|
|
*/
|
|
|
|
|
|
|
|
#include <stdio.h>
|
|
|
|
#include <stdlib.h>
|
|
|
|
#include <stddef.h>
|
|
|
|
#include <string.h>
|
|
|
|
#include <ctype.h>
|
|
|
|
#include <limits.h>
|
|
|
|
#include <unistd.h>
|
|
|
|
#include <sys/types.h>
|
|
|
|
#include <sys/param.h>
|
|
|
|
#include <sys/stat.h>
|
|
|
|
#include <dirent.h>
|
|
|
|
|
|
|
|
#define BUFFERSIZE 0x2000
|
|
|
|
#define PATHLIST_QUANTUM 20
|
1996-02-04 01:34:31 +00:00
|
|
|
#define UDL_VERSION "Version 1.1.5"
|
1995-02-08 05:05:49 +00:00
|
|
|
#define STACKSIZE 2048
|
|
|
|
#define BYTES_PER_DEPTH 40
|
|
|
|
#define BASESIZE 700
|
1994-12-13 18:08:34 +00:00
|
|
|
|
1996-02-04 01:34:31 +00:00
|
|
|
/* define the equivalents of LF and CR that your compiler uses */
|
|
|
|
/* "Standard" settings should work for most systems */
|
|
|
|
#define LF '\n'
|
|
|
|
#define CR '\r'
|
|
|
|
|
1994-12-13 18:08:34 +00:00
|
|
|
#ifndef FALSE
|
|
|
|
# define FALSE 0
|
|
|
|
# define TRUE !FALSE
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef EXIT_FAILURE
|
|
|
|
# define EXIT_FAILURE 1
|
|
|
|
# define EXIT_SUCCESS 0
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef HAS_ATEXIT
|
|
|
|
# define EXIT(a) exit(a)
|
|
|
|
#else
|
|
|
|
# define EXIT(a) { cleanup(); exit(a); }
|
|
|
|
#endif
|
|
|
|
|
1996-02-04 01:34:31 +00:00
|
|
|
enum file_format { unknown = 0, tunix = 1, dos, apple, binary };
|
1994-12-13 18:08:34 +00:00
|
|
|
|
|
|
|
/* Since udl is so small, I dare to use some globals :) */
|
1995-02-08 05:25:26 +00:00
|
|
|
extern char *program_name; /* How was udl invoked? */
|
|
|
|
extern char *current_file; /* Name of current file */
|
|
|
|
extern char *tempfile; /* Name of temporary file */
|
|
|
|
extern unsigned char *in_buffer; /* My own buffering scheme instead of */
|
|
|
|
extern unsigned char *out_buffer; /* setvbuf() */
|
|
|
|
extern int verbose;
|
|
|
|
extern char filebuffer[MAXPATHLEN]; /* a scratch buffer for file names */
|
|
|
|
extern char currentDirectory[MAXPATHLEN];
|
|
|
|
extern char rootdir[MAXPATHLEN]; /* the initial directory */
|
|
|
|
extern struct stat tstat; /* temporary variable used to stat files */
|
|
|
|
extern int pathSlotsUsed; /* number of used and available slots in pathList,*/
|
|
|
|
extern int pathSlots; /* respectively. Both are initially zero. */
|
|
|
|
extern char **pathList; /* the list of files to process, given relative */
|
1994-12-13 18:08:34 +00:00
|
|
|
/* to the initial directory. Initially NULL, */
|
|
|
|
/* and NULL terminated. */
|
1995-02-08 05:25:26 +00:00
|
|
|
extern char dirbrk; /* the character used to separate parts of a path name */
|
|
|
|
extern int recursionDepth; /* levels of subdirectories that we've traversed */
|
1994-12-13 18:08:34 +00:00
|
|
|
extern int optind; /* part of getopt library */
|
|
|
|
extern int opterr;
|
|
|
|
|
|
|
|
/* Prototypes of functions in common.c */
|
|
|
|
|
|
|
|
extern void convert_gs (FILE *infile, FILE *outfile);
|
|
|
|
extern void convert_messy (FILE *infile, FILE *outfile);
|
|
|
|
extern void convert_tunix (FILE *infile, FILE *outfile);
|
|
|
|
extern int convert_fast_gs (FILE *infile, FILE *outfile);
|
|
|
|
extern int convert_fast_messy (FILE *infile, FILE *outfile);
|
|
|
|
extern int convert_fast_tunix (FILE *infile, FILE *outfile);
|
|
|
|
extern enum file_format get_file_format (unsigned char *buffer);
|
|
|
|
extern FILE *tryopen (char *file, char *mode);
|
|
|
|
extern int my_fread (FILE *infile, int howmuch);
|
|
|
|
extern void my_fwrite (unsigned char *buffer, FILE *outfile, int howmuch);
|
|
|
|
extern void cleanup (void);
|
|
|
|
extern void usage (void);
|
1995-02-08 06:12:49 +00:00
|
|
|
extern void build_file_list(char *file, short recurse);
|
1994-12-13 18:08:34 +00:00
|
|
|
extern void add_to_pathList(char *thisdir, char *file);
|
1996-01-22 01:01:36 +00:00
|
|
|
extern char *Mktemp(const char *base);
|
1996-02-04 01:34:31 +00:00
|
|
|
extern char *get_path(const char *name);
|
|
|
|
|
1994-12-13 18:08:34 +00:00
|
|
|
extern int needsgno(void);
|
|
|
|
|
|
|
|
/* not strictly necessary, but it cuts down on warnings from gcc */
|
1995-02-08 06:12:49 +00:00
|
|
|
#if defined(__GNUC__) || defined(_AIX)
|
1994-12-13 18:08:34 +00:00
|
|
|
extern char *getwd(char *);
|
1995-02-08 06:12:49 +00:00
|
|
|
#endif
|
|
|
|
|
1996-02-04 01:34:31 +00:00
|
|
|
#if defined (__GNUC__) && !defined (__DJGPP__)
|
1994-12-13 18:08:34 +00:00
|
|
|
extern char getopt(int, char **, char *);
|
|
|
|
#endif
|
1995-02-13 19:47:38 +00:00
|
|
|
|
|
|
|
/* End Of File */
|