toy@ecse.rpi.edu (Ray Toy) (10/06/89)
I tried building GNUindent 1.1 on a System V machine, and
there were a few errors. One was no "strings.h" file.
The other problem was multiply defined globals that the
machine doesn't like. The fixes are:
o Added USG for USG machines
o Added HAVE_MEMCPY if you have it already
o Removed multiply defined globals
Keep up the good work!
Ray -----> toy@ecse.rpi.edu
Toy
*** ../dist-indent/globs.c Thu Aug 31 20:40:37 1989
--- globs.c Thu Oct 5 11:52:34 1989
***************
*** 48,53 ****
--- 48,54 ----
return val;
}
+ #ifndef HAVE_MEMCPY
/* Some systems lack memcpy so this does the same thing.
If your system-supplied memcpy is more efficient, you might want
to put "#define mymemcpy memcpy" in indent_globs.h.
***************
*** 64,66 ****
--- 65,68 ----
*destaddr++ = *srcaddr++;
return destaddr;
}
+ #endif
*** ../dist-indent/indent.c Tue Sep 5 21:10:57 1989
--- indent.c Thu Oct 5 12:31:20 1989
***************
*** 30,35 ****
--- 30,37 ----
static char sccsid[] = "@(#)indent.c 5.11 (Berkeley) 9/15/88";
#endif /* not lint */
+ #define INDENT_MAIN
+
#include "indent_globs.h"
#include <ctype.h>
*** ../dist-indent/indent_globs.h Sun Sep 3 13:56:48 1989
--- indent_globs.h Thu Oct 5 11:52:04 1989
***************
*** 20,31 ****
* @(#)indent_globs.h 5.7 (Berkeley) 9/15/88
*/
#include <stdio.h>
! #include <strings.h>
/* Standard memory allocation routines. */
char *malloc ();
char *realloc ();
/* Do the same thing, but abort with an error if out of memory
(see globs.c). */
char *xmalloc ();
--- 20,47 ----
* @(#)indent_globs.h 5.7 (Berkeley) 9/15/88
*/
+ #ifdef INDENT_MAIN
+ #define EXTERN
+ #else
+ #define EXTERN extern
+ #endif
+
#include <stdio.h>
!
! #ifdef USG
! # include <string.h>
! # include <malloc.h>
! # include <memory.h>
! # ifndef HAVE_MEMCPY
! # define HAVE_MEMCPY
! # endif
! #else
! # include <strings.h>
/* Standard memory allocation routines. */
char *malloc ();
char *realloc ();
+ #endif
/* Do the same thing, but abort with an error if out of memory
(see globs.c). */
char *xmalloc ();
***************
*** 35,41 ****
--- 51,59 ----
mymemcpy. If you system memcpy is more efficient, you might
want to use it by uncommenting the following line. */
/* #define mymemcpy memcpy */
+ #ifndef HAVE_MEMCPY
char *mymemcpy ();
+ #endif
#define BACKSLASH '\\'
#define label_offset 2 /* number of levels a label is placed to left
***************
*** 68,86 ****
/* Name of input file. */
extern char *in_name;
! char *in_prog; /* pointer to the null-terminated input program */
/* Point to the position in the input program which we are currently
looking at. */
! char *in_prog_pos;
/* Point to the start of the current line. */
! char *cur_line;
/* Size of the input program, not including the ' \n\0' we add at the end */
! int in_prog_size;
! FILE *output; /* the output file */
#define check_code_size \
if (e_code >= l_code) { \
--- 86,104 ----
/* Name of input file. */
extern char *in_name;
! EXTERN char *in_prog; /* pointer to the null-terminated input program */
/* Point to the position in the input program which we are currently
looking at. */
! EXTERN char *in_prog_pos;
/* Point to the start of the current line. */
! EXTERN char *cur_line;
/* Size of the input program, not including the ' \n\0' we add at the end */
! EXTERN int in_prog_size;
! EXTERN FILE *output; /* the output file */
#define check_code_size \
if (e_code >= l_code) { \
***************
*** 109,139 ****
s_lab = labbuf + 1; \
}
! char *labbuf; /* buffer for label */
! char *s_lab; /* start ... */
! char *e_lab; /* .. and end of stored label */
! char *l_lab; /* limit of label buffer */
! char *codebuf; /* buffer for code section */
! char *s_code; /* start ... */
! char *e_code; /* .. and end of stored code */
! char *l_code; /* limit of code section */
!
! char *combuf; /* buffer for comments */
! char *s_com; /* start ... */
! char *e_com; /* ... and end of stored comments */
! char *l_com; /* limit of comment buffer */
! char *buf_ptr; /* ptr to next character to be taken from
* in_buffer */
! char *buf_end; /* ptr to first after last char in in_buffer */
/* pointer to the token that lexi() has just found */
! char *token;
/* points to the first char after the end of token */
! char *token_end;
/* Functions from lexi.c */
! enum codes lexi ();
/* Used to keep track of buffers. */
struct buf {
--- 127,157 ----
s_lab = labbuf + 1; \
}
! EXTERN char *labbuf; /* buffer for label */
! EXTERN char *s_lab; /* start ... */
! EXTERN char *e_lab; /* .. and end of stored label */
! EXTERN char *l_lab; /* limit of label buffer */
! EXTERN char *codebuf; /* buffer for code section */
! EXTERN char *s_code; /* start ... */
! EXTERN char *e_code; /* .. and end of stored code */
! EXTERN char *l_code; /* limit of code section */
!
! EXTERN char *combuf; /* buffer for comments */
! EXTERN char *s_com; /* start ... */
! EXTERN char *e_com; /* ... and end of stored comments */
! EXTERN char *l_com; /* limit of comment buffer */
! EXTERN char *buf_ptr; /* ptr to next character to be taken from
* in_buffer */
! EXTERN char *buf_end; /* ptr to first after last char in in_buffer */
/* pointer to the token that lexi() has just found */
! EXTERN char *token;
/* points to the first char after the end of token */
! EXTERN char *token_end;
/* Functions from lexi.c */
! EXTERN enum codes lexi ();
/* Used to keep track of buffers. */
struct buf {
***************
*** 166,238 ****
need_chars) and the using of the buffer (where buf_ptr points into
it) occur at different times, we can get away with it (it would not
be trivial to fix). */
! struct buf save_com;
! char *bp_save; /* saved value of buf_ptr when taking input
* from save_com */
! char *be_save; /* similarly saved value of buf_end */
! int pointer_as_binop;
! int blanklines_after_declarations;
! int blanklines_before_blockcomments;
extern int blanklines_after_procs;
! int blanklines_around_conditional_compilation;
! int swallow_optional_blanklines;
! int n_real_blanklines;
! int prefix_blankline_requested;
! int postfix_blankline_requested;
! int break_comma; /* when true and not in parens, break after a
* comma */
/* number of spaces to indent braces from the suround if, while, etc.
in -bl (bype_2 == 0) code */
! int brace_indent;
! int btype_2; /* when true, brace should be on same line as
* if, while, etc */
/* If true, a space is inserted between if, while, or for, and a semicolon
for example
while (*p++ == ' ') ;
*/
! int space_sp_semicolon;
/* True if a #else or #endif has been encountered. */
extern int else_or_endif;
! int case_ind; /* indentation level to be used for a "case
* n:" in spaces */
! int code_lines; /* count of lines with code */
! int had_eof; /* set to true when input is exhausted */
! int line_no; /* the current line number. */
! int max_col; /* the maximum allowable line length */
! int verbose; /* when true, non-essential error messages are
* printed */
! int cuddle_else; /* true if else should cuddle up to '}' */
! int star_comment_cont; /* true iff comment continuation lines should
* have stars at the beginning of each line. */
! int comment_delimiter_on_blankline;
! int troff; /* true iff were generating troff input */
! int procnames_start_line; /* if true, the names of procedures
* being defined get placed in column
* 1 (ie. a newline is placed between
* the type of the procedure and its
* name) */
! int proc_calls_space; /* If true, procedure calls look like:
* foo (bar) rather than foo(bar) */
! int cast_space; /* If true, casts look like:
* (char *) bar rather than (char *)bar */
/* If comments which start in column 1 are to be magically reformatted */
! int format_col1_comments;
/* If any comments are to be reformatted */
! int format_comments;
extern int suppress_blanklines;/* set iff following blanklines should be
* suppressed */
! int continuation_indent;/* set to the indentation between the edge of
* code and continuation lines in spaces */
! int lineup_to_parens; /* if true, continued code within parens will
* be lined up to the open paren */
/* The position that we will line the current line up with when it
--- 184,256 ----
need_chars) and the using of the buffer (where buf_ptr points into
it) occur at different times, we can get away with it (it would not
be trivial to fix). */
! EXTERN struct buf save_com;
! EXTERN char *bp_save; /* saved value of buf_ptr when taking input
* from save_com */
! EXTERN char *be_save; /* similarly saved value of buf_end */
! EXTERN int pointer_as_binop;
! EXTERN int blanklines_after_declarations;
! EXTERN int blanklines_before_blockcomments;
extern int blanklines_after_procs;
! EXTERN int blanklines_around_conditional_compilation;
! EXTERN int swallow_optional_blanklines;
! EXTERN int n_real_blanklines;
! EXTERN int prefix_blankline_requested;
! EXTERN int postfix_blankline_requested;
! EXTERN int break_comma; /* when true and not in parens, break after a
* comma */
/* number of spaces to indent braces from the suround if, while, etc.
in -bl (bype_2 == 0) code */
! EXTERN int brace_indent;
! EXTERN int btype_2; /* when true, brace should be on same line as
* if, while, etc */
/* If true, a space is inserted between if, while, or for, and a semicolon
for example
while (*p++ == ' ') ;
*/
! EXTERN int space_sp_semicolon;
/* True if a #else or #endif has been encountered. */
extern int else_or_endif;
! EXTERN int case_ind; /* indentation level to be used for a "case
* n:" in spaces */
! EXTERN int code_lines; /* count of lines with code */
! EXTERN int had_eof; /* set to true when input is exhausted */
! EXTERN int line_no; /* the current line number. */
! EXTERN int max_col; /* the maximum allowable line length */
! EXTERN int verbose; /* when true, non-essential error messages are
* printed */
! EXTERN int cuddle_else; /* true if else should cuddle up to '}' */
! EXTERN int star_comment_cont; /* true iff comment continuation lines should
* have stars at the beginning of each line. */
! EXTERN int comment_delimiter_on_blankline;
! EXTERN int troff; /* true iff were generating troff input */
! EXTERN int procnames_start_line; /* if true, the names of procedures
* being defined get placed in column
* 1 (ie. a newline is placed between
* the type of the procedure and its
* name) */
! EXTERN int proc_calls_space; /* If true, procedure calls look like:
* foo (bar) rather than foo(bar) */
! EXTERN int cast_space; /* If true, casts look like:
* (char *) bar rather than (char *)bar */
/* If comments which start in column 1 are to be magically reformatted */
! EXTERN int format_col1_comments;
/* If any comments are to be reformatted */
! EXTERN int format_comments;
extern int suppress_blanklines;/* set iff following blanklines should be
* suppressed */
! EXTERN int continuation_indent;/* set to the indentation between the edge of
* code and continuation lines in spaces */
! EXTERN int lineup_to_parens; /* if true, continued code within parens will
* be lined up to the open paren */
/* The position that we will line the current line up with when it
***************
*** 239,247 ****
comes time to print it (if we are lining up to parentheses). */
extern int paren_target;
! int Bill_Shannon; /* true iff a blank should always be inserted
* after sizeof */
! int blanklines_after_declarations_at_proctop; /* This is vaguely
* similar to
* blanklines_after_decla
* rations except that
--- 257,265 ----
comes time to print it (if we are lining up to parentheses). */
extern int paren_target;
! EXTERN int Bill_Shannon; /* true iff a blank should always be inserted
* after sizeof */
! EXTERN int blanklines_after_declarations_at_proctop; /* This is vaguely
* similar to
* blanklines_after_decla
* rations except that
***************
*** 254,261 ****
* to be generated even
* if there are no
* declarations */
! int block_comment_max_col;
! int extra_expression_indent; /* True if continuation lines from the
* expression part of "if(e)",
* "while(e)", "for(e;e;e)" should be
* indented an extra tab stop so that
--- 272,279 ----
* to be generated even
* if there are no
* declarations */
! EXTERN int block_comment_max_col;
! EXTERN int extra_expression_indent; /* True if continuation lines from the
* expression part of "if(e)",
* "while(e)", "for(e;e;e)" should be
* indented an extra tab stop so that
***************
*** 298,304 ****
};
char *chfont();
! struct fstate
keywordf, /* keyword font */
stringf, /* string font */
boxcomf, /* Box comment font */
--- 316,322 ----
};
char *chfont();
! EXTERN struct fstate
keywordf, /* keyword font */
stringf, /* string font */
boxcomf, /* Box comment font */