Make this compile cleanly when warnings are enabled:
- ANSIfy function declarations - braces around initializers structs within structs - add parens in complicated expressions - disambiguate dangling elses - no more implicit int - make functions static where possible - use prototypes - don't use varargs hack for diag() Requested by: joerg MFC after: 2 weeks
This commit is contained in:
parent
76c83512ef
commit
7916863d82
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=85632
@ -52,6 +52,7 @@ static const char rcsid[] =
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include "indent_globs.h"
|
||||
#include "indent.h"
|
||||
|
||||
/* profile types */
|
||||
#define PRO_SPECIAL 1 /* special case */
|
||||
@ -69,6 +70,8 @@ static const char rcsid[] =
|
||||
#define STDIN 3 /* use stdin */
|
||||
#define KEY 4 /* type (keyword) */
|
||||
|
||||
static void scan_profile(FILE *);
|
||||
|
||||
char *option_source = "?";
|
||||
|
||||
/*
|
||||
@ -85,80 +88,81 @@ struct pro {
|
||||
int *p_obj; /* the associated variable */
|
||||
} pro[] = {
|
||||
|
||||
"T", PRO_SPECIAL, 0, KEY, 0,
|
||||
"bacc", PRO_BOOL, false, ON, &blanklines_around_conditional_compilation,
|
||||
"badp", PRO_BOOL, false, ON, &blanklines_after_declarations_at_proctop,
|
||||
"bad", PRO_BOOL, false, ON, &blanklines_after_declarations,
|
||||
"bap", PRO_BOOL, false, ON, &blanklines_after_procs,
|
||||
"bbb", PRO_BOOL, false, ON, &blanklines_before_blockcomments,
|
||||
"bc", PRO_BOOL, true, OFF, &ps.leave_comma,
|
||||
"bl", PRO_BOOL, true, OFF, &btype_2,
|
||||
"br", PRO_BOOL, true, ON, &btype_2,
|
||||
"bs", PRO_BOOL, false, ON, &Bill_Shannon,
|
||||
"cdb", PRO_BOOL, true, ON, &comment_delimiter_on_blankline,
|
||||
"cd", PRO_INT, 0, 0, &ps.decl_com_ind,
|
||||
"ce", PRO_BOOL, true, ON, &cuddle_else,
|
||||
"ci", PRO_INT, 0, 0, &continuation_indent,
|
||||
"cli", PRO_SPECIAL, 0, CLI, 0,
|
||||
"c", PRO_INT, 33, 0, &ps.com_ind,
|
||||
"di", PRO_INT, 16, 0, &ps.decl_indent,
|
||||
"dj", PRO_BOOL, false, ON, &ps.ljust_decl,
|
||||
"d", PRO_INT, 0, 0, &ps.unindent_displace,
|
||||
"eei", PRO_BOOL, false, ON, &extra_expression_indent,
|
||||
"ei", PRO_BOOL, true, ON, &ps.else_if,
|
||||
"fbc", PRO_FONT, 0, 0, (int *) &blkcomf,
|
||||
"fbx", PRO_FONT, 0, 0, (int *) &boxcomf,
|
||||
"fb", PRO_FONT, 0, 0, (int *) &bodyf,
|
||||
"fc1", PRO_BOOL, true, ON, &format_col1_comments,
|
||||
"fcb", PRO_BOOL, true, ON, &format_block_comments,
|
||||
"fc", PRO_FONT, 0, 0, (int *) &scomf,
|
||||
"fk", PRO_FONT, 0, 0, (int *) &keywordf,
|
||||
"fs", PRO_FONT, 0, 0, (int *) &stringf,
|
||||
"ip", PRO_BOOL, true, ON, &ps.indent_parameters,
|
||||
"i", PRO_INT, 8, 0, &ps.ind_size,
|
||||
"lc", PRO_INT, 0, 0, &block_comment_max_col,
|
||||
"lp", PRO_BOOL, true, ON, &lineup_to_parens,
|
||||
"l", PRO_INT, 78, 0, &max_col,
|
||||
"nbacc", PRO_BOOL, false, OFF, &blanklines_around_conditional_compilation,
|
||||
"nbadp", PRO_BOOL, false, OFF, &blanklines_after_declarations_at_proctop,
|
||||
"nbad", PRO_BOOL, false, OFF, &blanklines_after_declarations,
|
||||
"nbap", PRO_BOOL, false, OFF, &blanklines_after_procs,
|
||||
"nbbb", PRO_BOOL, false, OFF, &blanklines_before_blockcomments,
|
||||
"nbc", PRO_BOOL, true, ON, &ps.leave_comma,
|
||||
"nbs", PRO_BOOL, false, OFF, &Bill_Shannon,
|
||||
"ncdb", PRO_BOOL, true, OFF, &comment_delimiter_on_blankline,
|
||||
"nce", PRO_BOOL, true, OFF, &cuddle_else,
|
||||
"ndj", PRO_BOOL, false, OFF, &ps.ljust_decl,
|
||||
"neei", PRO_BOOL, false, OFF, &extra_expression_indent,
|
||||
"nei", PRO_BOOL, true, OFF, &ps.else_if,
|
||||
"nfc1", PRO_BOOL, true, OFF, &format_col1_comments,
|
||||
"nfcb", PRO_BOOL, true, OFF, &format_block_comments,
|
||||
"nip", PRO_BOOL, true, OFF, &ps.indent_parameters,
|
||||
"nlp", PRO_BOOL, true, OFF, &lineup_to_parens,
|
||||
"npcs", PRO_BOOL, false, OFF, &proc_calls_space,
|
||||
"npro", PRO_SPECIAL, 0, IGN, 0,
|
||||
"npsl", PRO_BOOL, true, OFF, &procnames_start_line,
|
||||
"nps", PRO_BOOL, false, OFF, &pointer_as_binop,
|
||||
"nsc", PRO_BOOL, true, OFF, &star_comment_cont,
|
||||
"nsob", PRO_BOOL, false, OFF, &swallow_optional_blanklines,
|
||||
"nv", PRO_BOOL, false, OFF, &verbose,
|
||||
"pcs", PRO_BOOL, false, ON, &proc_calls_space,
|
||||
"psl", PRO_BOOL, true, ON, &procnames_start_line,
|
||||
"ps", PRO_BOOL, false, ON, &pointer_as_binop,
|
||||
"sc", PRO_BOOL, true, ON, &star_comment_cont,
|
||||
"sob", PRO_BOOL, false, ON, &swallow_optional_blanklines,
|
||||
"st", PRO_SPECIAL, 0, STDIN, 0,
|
||||
"troff", PRO_BOOL, false, ON, &troff,
|
||||
"v", PRO_BOOL, false, ON, &verbose,
|
||||
{"T", PRO_SPECIAL, 0, KEY, 0},
|
||||
{"bacc", PRO_BOOL, false, ON, &blanklines_around_conditional_compilation},
|
||||
{"badp", PRO_BOOL, false, ON, &blanklines_after_declarations_at_proctop},
|
||||
{"bad", PRO_BOOL, false, ON, &blanklines_after_declarations},
|
||||
{"bap", PRO_BOOL, false, ON, &blanklines_after_procs},
|
||||
{"bbb", PRO_BOOL, false, ON, &blanklines_before_blockcomments},
|
||||
{"bc", PRO_BOOL, true, OFF, &ps.leave_comma},
|
||||
{"bl", PRO_BOOL, true, OFF, &btype_2},
|
||||
{"br", PRO_BOOL, true, ON, &btype_2},
|
||||
{"bs", PRO_BOOL, false, ON, &Bill_Shannon},
|
||||
{"cdb", PRO_BOOL, true, ON, &comment_delimiter_on_blankline},
|
||||
{"cd", PRO_INT, 0, 0, &ps.decl_com_ind},
|
||||
{"ce", PRO_BOOL, true, ON, &cuddle_else},
|
||||
{"ci", PRO_INT, 0, 0, &continuation_indent},
|
||||
{"cli", PRO_SPECIAL, 0, CLI, 0},
|
||||
{"c", PRO_INT, 33, 0, &ps.com_ind},
|
||||
{"di", PRO_INT, 16, 0, &ps.decl_indent},
|
||||
{"dj", PRO_BOOL, false, ON, &ps.ljust_decl},
|
||||
{"d", PRO_INT, 0, 0, &ps.unindent_displace},
|
||||
{"eei", PRO_BOOL, false, ON, &extra_expression_indent},
|
||||
{"ei", PRO_BOOL, true, ON, &ps.else_if},
|
||||
{"fbc", PRO_FONT, 0, 0, (int *) &blkcomf},
|
||||
{"fbx", PRO_FONT, 0, 0, (int *) &boxcomf},
|
||||
{"fb", PRO_FONT, 0, 0, (int *) &bodyf},
|
||||
{"fc1", PRO_BOOL, true, ON, &format_col1_comments},
|
||||
{"fcb", PRO_BOOL, true, ON, &format_block_comments},
|
||||
{"fc", PRO_FONT, 0, 0, (int *) &scomf},
|
||||
{"fk", PRO_FONT, 0, 0, (int *) &keywordf},
|
||||
{"fs", PRO_FONT, 0, 0, (int *) &stringf},
|
||||
{"ip", PRO_BOOL, true, ON, &ps.indent_parameters},
|
||||
{"i", PRO_INT, 8, 0, &ps.ind_size},
|
||||
{"lc", PRO_INT, 0, 0, &block_comment_max_col},
|
||||
{"lp", PRO_BOOL, true, ON, &lineup_to_parens},
|
||||
{"l", PRO_INT, 78, 0, &max_col},
|
||||
{"nbacc", PRO_BOOL, false, OFF, &blanklines_around_conditional_compilation},
|
||||
{"nbadp", PRO_BOOL, false, OFF, &blanklines_after_declarations_at_proctop},
|
||||
{"nbad", PRO_BOOL, false, OFF, &blanklines_after_declarations},
|
||||
{"nbap", PRO_BOOL, false, OFF, &blanklines_after_procs},
|
||||
{"nbbb", PRO_BOOL, false, OFF, &blanklines_before_blockcomments},
|
||||
{"nbc", PRO_BOOL, true, ON, &ps.leave_comma},
|
||||
{"nbs", PRO_BOOL, false, OFF, &Bill_Shannon},
|
||||
{"ncdb", PRO_BOOL, true, OFF, &comment_delimiter_on_blankline},
|
||||
{"nce", PRO_BOOL, true, OFF, &cuddle_else},
|
||||
{"ndj", PRO_BOOL, false, OFF, &ps.ljust_decl},
|
||||
{"neei", PRO_BOOL, false, OFF, &extra_expression_indent},
|
||||
{"nei", PRO_BOOL, true, OFF, &ps.else_if},
|
||||
{"nfc1", PRO_BOOL, true, OFF, &format_col1_comments},
|
||||
{"nfcb", PRO_BOOL, true, OFF, &format_block_comments},
|
||||
{"nip", PRO_BOOL, true, OFF, &ps.indent_parameters},
|
||||
{"nlp", PRO_BOOL, true, OFF, &lineup_to_parens},
|
||||
{"npcs", PRO_BOOL, false, OFF, &proc_calls_space},
|
||||
{"npro", PRO_SPECIAL, 0, IGN, 0},
|
||||
{"npsl", PRO_BOOL, true, OFF, &procnames_start_line},
|
||||
{"nps", PRO_BOOL, false, OFF, &pointer_as_binop},
|
||||
{"nsc", PRO_BOOL, true, OFF, &star_comment_cont},
|
||||
{"nsob", PRO_BOOL, false, OFF, &swallow_optional_blanklines},
|
||||
{"nv", PRO_BOOL, false, OFF, &verbose},
|
||||
{"pcs", PRO_BOOL, false, ON, &proc_calls_space},
|
||||
{"psl", PRO_BOOL, true, ON, &procnames_start_line},
|
||||
{"ps", PRO_BOOL, false, ON, &pointer_as_binop},
|
||||
{"sc", PRO_BOOL, true, ON, &star_comment_cont},
|
||||
{"sob", PRO_BOOL, false, ON, &swallow_optional_blanklines},
|
||||
{"st", PRO_SPECIAL, 0, STDIN, 0},
|
||||
{"troff", PRO_BOOL, false, ON, &troff},
|
||||
{"v", PRO_BOOL, false, ON, &verbose},
|
||||
/* whew! */
|
||||
0, 0, 0, 0, 0
|
||||
{0, 0, 0, 0, 0}
|
||||
};
|
||||
|
||||
/*
|
||||
* set_profile reads $HOME/.indent.pro and ./.indent.pro and handles arguments
|
||||
* given in these files.
|
||||
*/
|
||||
set_profile()
|
||||
void
|
||||
set_profile(void)
|
||||
{
|
||||
register FILE *f;
|
||||
char fname[BUFSIZ];
|
||||
@ -176,8 +180,8 @@ set_profile()
|
||||
option_source = "Command line";
|
||||
}
|
||||
|
||||
scan_profile(f)
|
||||
register FILE *f;
|
||||
static void
|
||||
scan_profile(register FILE *f)
|
||||
{
|
||||
register int i;
|
||||
register char *p;
|
||||
@ -196,11 +200,10 @@ scan_profile(f)
|
||||
}
|
||||
}
|
||||
|
||||
char *param_start;
|
||||
char *param_start;
|
||||
|
||||
eqin(s1, s2)
|
||||
register char *s1;
|
||||
register char *s2;
|
||||
static int
|
||||
eqin(char *s1, char *s2)
|
||||
{
|
||||
while (*s1) {
|
||||
if (*s1++ != *s2++)
|
||||
@ -213,7 +216,8 @@ eqin(s1, s2)
|
||||
/*
|
||||
* Set the defaults.
|
||||
*/
|
||||
set_defaults()
|
||||
void
|
||||
set_defaults(void)
|
||||
{
|
||||
register struct pro *p;
|
||||
|
||||
@ -227,11 +231,10 @@ set_defaults()
|
||||
*p->p_obj = p->p_default;
|
||||
}
|
||||
|
||||
set_option(arg)
|
||||
register char *arg;
|
||||
void
|
||||
set_option(char *arg)
|
||||
{
|
||||
register struct pro *p;
|
||||
extern double atof();
|
||||
|
||||
arg++; /* ignore leading "-" */
|
||||
for (p = pro; p->p_name; p++)
|
||||
|
@ -56,9 +56,12 @@ static const char rcsid[] =
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <ctype.h>
|
||||
#include "indent_globs.h"
|
||||
#include "indent_codes.h"
|
||||
#include <ctype.h>
|
||||
#include "indent.h"
|
||||
|
||||
static void bakcopy(void);
|
||||
|
||||
char *in_name = "Standard Input"; /* will always point to name of input
|
||||
* file */
|
||||
@ -66,20 +69,17 @@ char *out_name = "Standard Output"; /* will always point to name
|
||||
* of output file */
|
||||
char bakfile[MAXPATHLEN] = "";
|
||||
|
||||
static void usage __P((void));
|
||||
|
||||
main(argc, argv)
|
||||
int argc;
|
||||
char **argv;
|
||||
int
|
||||
main(int argc, char **argv)
|
||||
{
|
||||
|
||||
extern int found_err; /* flag set in diag() on error */
|
||||
extern int found_err; /* flag set in diagN() on error */
|
||||
int dec_ind; /* current indentation for declarations */
|
||||
int di_stack[20]; /* a stack of structure indentation levels */
|
||||
int flushed_nl; /* used when buffering up comments to remember
|
||||
* that a newline was passed over */
|
||||
int force_nl; /* when true, code must be broken */
|
||||
int hd_type; /* used to store type of stmt for if (...),
|
||||
int hd_type = 0; /* used to store type of stmt for if (...),
|
||||
* for (...), etc */
|
||||
register int i; /* local loop counter */
|
||||
int scase; /* set to true when we see a case, so we will
|
||||
@ -252,7 +252,7 @@ main(argc, argv)
|
||||
parse(semicolon);
|
||||
{
|
||||
register char *p = buf_ptr;
|
||||
register col = 1;
|
||||
register int col = 1;
|
||||
|
||||
while (1) {
|
||||
if (*p == ' ')
|
||||
@ -349,7 +349,7 @@ main(argc, argv)
|
||||
|
||||
if (sc_end >= &(save_com[sc_size])) { /* check for temp buffer
|
||||
* overflow */
|
||||
diag(1, "Internal buffer overflow - Move big comment from right after if, while, or whatever.");
|
||||
diag2(1, "Internal buffer overflow - Move big comment from right after if, while, or whatever.");
|
||||
fflush(output);
|
||||
exit(1);
|
||||
}
|
||||
@ -363,10 +363,10 @@ main(argc, argv)
|
||||
if (flushed_nl) /* if we flushed a newline, make sure it is
|
||||
* put back */
|
||||
force_nl = true;
|
||||
if (type_code == sp_paren && *token == 'i'
|
||||
&& last_else && ps.else_if
|
||||
|| type_code == sp_nparen && *token == 'e'
|
||||
&& e_code != s_code && e_code[-1] == '}')
|
||||
if ((type_code == sp_paren && *token == 'i'
|
||||
&& last_else && ps.else_if)
|
||||
|| (type_code == sp_nparen && *token == 'e'
|
||||
&& e_code != s_code && e_code[-1] == '}'))
|
||||
force_nl = false;
|
||||
|
||||
if (sc_end == 0) { /* ignore buffering if comment wasnt
|
||||
@ -383,7 +383,7 @@ main(argc, argv)
|
||||
*sc_end++ = ' ';
|
||||
if (verbose && !flushed_nl) /* print error msg if the line
|
||||
* was not already broken */
|
||||
diag(0, "Line broken");
|
||||
diag2(0, "Line broken");
|
||||
flushed_nl = false;
|
||||
}
|
||||
for (t_ptr = token; *t_ptr; ++t_ptr)
|
||||
@ -419,7 +419,7 @@ main(argc, argv)
|
||||
|| s_com != e_com) /* must dump end of line */
|
||||
dump_line();
|
||||
if (ps.tos > 1) /* check for balanced braces */
|
||||
diag(1, "Stuff missing from end of file.");
|
||||
diag2(1, "Stuff missing from end of file.");
|
||||
|
||||
if (verbose) {
|
||||
printf("There were %d output lines and %d comments\n",
|
||||
@ -440,7 +440,7 @@ main(argc, argv)
|
||||
(type_code != lbrace || !btype_2)) {
|
||||
/* we should force a broken line here */
|
||||
if (verbose && !flushed_nl)
|
||||
diag(0, "Line broken");
|
||||
diag2(0, "Line broken");
|
||||
flushed_nl = false;
|
||||
dump_line();
|
||||
ps.want_blank = false; /* dont insert blank at line start */
|
||||
@ -540,7 +540,7 @@ main(argc, argv)
|
||||
ps.sizeof_mask &= (1 << ps.p_l_follow) - 1;
|
||||
if (--ps.p_l_follow < 0) {
|
||||
ps.p_l_follow = 0;
|
||||
diag(0, "Extra %c", *token);
|
||||
diag3(0, "Extra %c", *token);
|
||||
}
|
||||
if (e_code == s_code) /* if the paren starts the line */
|
||||
ps.paren_level = ps.p_l_follow; /* then indent it */
|
||||
@ -713,7 +713,7 @@ main(argc, argv)
|
||||
* stmt. It is a bit complicated, because the semicolon might
|
||||
* be in a for stmt
|
||||
*/
|
||||
diag(1, "Unbalanced parens");
|
||||
diag2(1, "Unbalanced parens");
|
||||
ps.p_l_follow = 0;
|
||||
if (sp_sw) { /* this is a check for a if, while, etc. with
|
||||
* unbalanced parens */
|
||||
@ -758,7 +758,7 @@ main(argc, argv)
|
||||
|
||||
if (ps.p_l_follow > 0) { /* check for preceding unbalanced
|
||||
* parens */
|
||||
diag(1, "Unbalanced parens");
|
||||
diag2(1, "Unbalanced parens");
|
||||
ps.p_l_follow = 0;
|
||||
if (sp_sw) { /* check for unclosed if, for, etc. */
|
||||
sp_sw = false;
|
||||
@ -800,7 +800,7 @@ main(argc, argv)
|
||||
* declarations */
|
||||
parse(semicolon);
|
||||
if (ps.p_l_follow) {/* check for unclosed if, for, else. */
|
||||
diag(1, "Unbalanced parens");
|
||||
diag2(1, "Unbalanced parens");
|
||||
ps.p_l_follow = 0;
|
||||
sp_sw = false;
|
||||
}
|
||||
@ -809,7 +809,7 @@ main(argc, argv)
|
||||
if (s_code != e_code && !ps.block_init) { /* '}' must be first on
|
||||
* line */
|
||||
if (verbose)
|
||||
diag(0, "Line broken");
|
||||
diag2(0, "Line broken");
|
||||
dump_line();
|
||||
}
|
||||
*e_code++ = '}';
|
||||
@ -852,7 +852,7 @@ main(argc, argv)
|
||||
if (*token == 'e') {
|
||||
if (e_code != s_code && (!cuddle_else || e_code[-1] != '}')) {
|
||||
if (verbose)
|
||||
diag(0, "Line broken");
|
||||
diag2(0, "Line broken");
|
||||
dump_line();/* make sure this starts a line */
|
||||
ps.want_blank = false;
|
||||
}
|
||||
@ -863,7 +863,7 @@ main(argc, argv)
|
||||
else {
|
||||
if (e_code != s_code) { /* make sure this starts a line */
|
||||
if (verbose)
|
||||
diag(0, "Line broken");
|
||||
diag2(0, "Line broken");
|
||||
dump_line();
|
||||
ps.want_blank = false;
|
||||
}
|
||||
@ -909,19 +909,19 @@ main(argc, argv)
|
||||
*e_code++ = ' ';
|
||||
ps.want_blank = false;
|
||||
if (is_procname == 0 || !procnames_start_line) {
|
||||
if (!ps.block_init)
|
||||
if (!ps.block_init) {
|
||||
if (troff && !ps.dumped_decl_indent) {
|
||||
sprintf(e_code, "\n.De %dp+\200p\n", dec_ind * 7);
|
||||
ps.dumped_decl_indent = 1;
|
||||
e_code += strlen(e_code);
|
||||
}
|
||||
else
|
||||
} else {
|
||||
while ((e_code - s_code) < dec_ind) {
|
||||
CHECK_SIZE_CODE;
|
||||
*e_code++ = ' ';
|
||||
}
|
||||
}
|
||||
else {
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (dec_ind && s_code != e_code)
|
||||
dump_line();
|
||||
dec_ind = 0;
|
||||
@ -1072,7 +1072,7 @@ main(argc, argv)
|
||||
|
||||
if (strncmp(s_lab, "#if", 3) == 0) {
|
||||
if (blanklines_around_conditional_compilation) {
|
||||
register c;
|
||||
register int c;
|
||||
prefix_blankline_requested++;
|
||||
while ((c = getc(input)) == '\n');
|
||||
ungetc(c, input);
|
||||
@ -1082,18 +1082,18 @@ main(argc, argv)
|
||||
state_stack[ifdef_level++] = ps;
|
||||
}
|
||||
else
|
||||
diag(1, "#if stack overflow");
|
||||
diag2(1, "#if stack overflow");
|
||||
}
|
||||
else if (strncmp(s_lab, "#else", 5) == 0)
|
||||
if (ifdef_level <= 0)
|
||||
diag(1, "Unmatched #else");
|
||||
diag2(1, "Unmatched #else");
|
||||
else {
|
||||
match_state[ifdef_level - 1] = ps;
|
||||
ps = state_stack[ifdef_level - 1];
|
||||
}
|
||||
else if (strncmp(s_lab, "#endif", 6) == 0) {
|
||||
if (ifdef_level <= 0)
|
||||
diag(1, "Unmatched #endif");
|
||||
diag2(1, "Unmatched #endif");
|
||||
else {
|
||||
ifdef_level--;
|
||||
|
||||
@ -1104,7 +1104,7 @@ main(argc, argv)
|
||||
*/
|
||||
if (match_state[ifdef_level].tos >= 0
|
||||
&& bcmp(&ps, &match_state[ifdef_level], sizeof ps))
|
||||
diag(0, "Syntactically inconsistant #ifdef alternatives.");
|
||||
diag2(0, "Syntactically inconsistant #ifdef alternatives.");
|
||||
#endif
|
||||
}
|
||||
if (blanklines_around_conditional_compilation) {
|
||||
@ -1115,7 +1115,7 @@ main(argc, argv)
|
||||
break; /* subsequent processing of the newline
|
||||
* character will cause the line to be printed */
|
||||
|
||||
case comment: /* we have gotten a /* this is a biggie */
|
||||
case comment: /* we have gotten a / followed by * this is a biggie */
|
||||
if (flushed_nl) { /* we should force a broken line here */
|
||||
flushed_nl = false;
|
||||
dump_line();
|
||||
@ -1132,19 +1132,13 @@ main(argc, argv)
|
||||
} /* end of main while (1) loop */
|
||||
}
|
||||
|
||||
static void
|
||||
usage()
|
||||
{
|
||||
fprintf(stderr, "usage: indent [ file [ outfile ] ] [ options ]\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
/*
|
||||
* copy input file to backup file if in_name is /blah/blah/blah/file, then
|
||||
* backup file will be ".Bfile" then make the backup file the input and
|
||||
* original input file the output
|
||||
*/
|
||||
bakcopy()
|
||||
static void
|
||||
bakcopy(void)
|
||||
{
|
||||
int n,
|
||||
bakchn;
|
||||
@ -1163,7 +1157,7 @@ bakcopy()
|
||||
bakchn = creat(bakfile, 0600);
|
||||
if (bakchn < 0)
|
||||
err(1, "%s", bakfile);
|
||||
while (n = read(fileno(input), buff, sizeof buff))
|
||||
while ((n = read(fileno(input), buff, sizeof buff)) != 0)
|
||||
if (write(bakchn, buff, n) != n)
|
||||
err(1, "%s", bakfile);
|
||||
if (n < 0)
|
||||
|
47
usr.bin/indent/indent.h
Normal file
47
usr.bin/indent/indent.h
Normal file
@ -0,0 +1,47 @@
|
||||
/*
|
||||
* Copyright (c) 2001 Jens Schweikhardt
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#if 0
|
||||
__FBSDID("$FreeBSD$");
|
||||
#endif
|
||||
|
||||
void addkey(char *, int);
|
||||
int compute_code_target(void);
|
||||
int compute_label_target(void);
|
||||
int count_spaces(int, char *);
|
||||
int lexi(void);
|
||||
void diag2(int, char *);
|
||||
void diag3(int, char *, int);
|
||||
void diag4(int, char *, int, int);
|
||||
void dump_line(void);
|
||||
void fill_buffer(void);
|
||||
void parse(int);
|
||||
void parsefont(struct fstate *, char *);
|
||||
void pr_comment(void);
|
||||
void set_defaults(void);
|
||||
void set_option(char *);
|
||||
void set_profile(void);
|
||||
void writefdef(struct fstate *f, int);
|
@ -157,7 +157,7 @@ int procnames_start_line; /* if true, the names of procedures
|
||||
int proc_calls_space; /* If true, procedure calls look like:
|
||||
* foo(bar) rather than foo (bar) */
|
||||
int format_block_comments; /* true if comments beginning with
|
||||
* `/*\n' are to be reformatted */
|
||||
* `/ * \n' are to be reformatted */
|
||||
int format_col1_comments; /* If comments which start in column 1
|
||||
* are to be magically reformatted
|
||||
* (just like comments that begin in
|
||||
@ -220,7 +220,7 @@ struct parser_state {
|
||||
float cstk[STACKSIZE];/* used to store case stmt indentation levels */
|
||||
int box_com; /* set to true when we are in a "boxed"
|
||||
* comment. In that case, the first non-blank
|
||||
* char should be lined up with the / in /* */
|
||||
* char should be lined up with the / in / followed by * */
|
||||
int comment_delta,
|
||||
n_comment_delta;
|
||||
int cast_mask; /* indicates which close parens close off
|
||||
|
@ -47,20 +47,22 @@ static const char rcsid[] =
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include "indent_globs.h"
|
||||
|
||||
#include "indent.h"
|
||||
|
||||
int comment_open;
|
||||
static paren_target;
|
||||
static int paren_target;
|
||||
static int pad_output(int current, int target);
|
||||
|
||||
dump_line()
|
||||
void
|
||||
dump_line(void)
|
||||
{ /* dump_line is the routine that actually
|
||||
* effects the printing of the new source. It
|
||||
* prints the label section, followed by the
|
||||
* code section with the appropriate nesting
|
||||
* level, followed by any comments */
|
||||
register int cur_col,
|
||||
target_col;
|
||||
static not_first_line;
|
||||
target_col = 1;
|
||||
static int not_first_line;
|
||||
|
||||
if (ps.procname[0]) {
|
||||
if (troff) {
|
||||
@ -143,7 +145,7 @@ dump_line()
|
||||
}
|
||||
target_col = compute_code_target();
|
||||
{
|
||||
register i;
|
||||
register int i;
|
||||
|
||||
for (i = 0; i < ps.p_l_follow; i++)
|
||||
if (ps.paren_indents[i] >= 0)
|
||||
@ -157,7 +159,7 @@ dump_line()
|
||||
putc(*p, output);
|
||||
cur_col = count_spaces(cur_col, s_code);
|
||||
}
|
||||
if (s_com != e_com)
|
||||
if (s_com != e_com) {
|
||||
if (troff) {
|
||||
int all_here = 0;
|
||||
register char *p;
|
||||
@ -216,7 +218,7 @@ dump_line()
|
||||
}
|
||||
}
|
||||
else { /* print comment, if any */
|
||||
register target = ps.com_col;
|
||||
register int target = ps.com_col;
|
||||
register char *com_st = s_com;
|
||||
|
||||
target += ps.comment_delta;
|
||||
@ -251,6 +253,7 @@ dump_line()
|
||||
cur_col = count_spaces(cur_col, com_st);
|
||||
++ps.com_lines; /* count lines with comments */
|
||||
}
|
||||
}
|
||||
if (ps.use_ff)
|
||||
putc('\014', output);
|
||||
else
|
||||
@ -282,19 +285,19 @@ dump_line()
|
||||
ps.paren_level = ps.p_l_follow;
|
||||
paren_target = -ps.paren_indents[ps.paren_level - 1];
|
||||
not_first_line = 1;
|
||||
return;
|
||||
}
|
||||
|
||||
compute_code_target()
|
||||
int
|
||||
compute_code_target(void)
|
||||
{
|
||||
register target_col = ps.ind_size * ps.ind_level + 1;
|
||||
register int target_col = ps.ind_size * ps.ind_level + 1;
|
||||
|
||||
if (ps.paren_level)
|
||||
if (!lineup_to_parens)
|
||||
target_col += continuation_indent * ps.paren_level;
|
||||
else {
|
||||
register w;
|
||||
register t = paren_target;
|
||||
register int w;
|
||||
register int t = paren_target;
|
||||
|
||||
if ((w = count_spaces(t, s_code) - max_col) > 0
|
||||
&& count_spaces(target_col, s_code) <= max_col) {
|
||||
@ -310,7 +313,8 @@ compute_code_target()
|
||||
return target_col;
|
||||
}
|
||||
|
||||
compute_label_target()
|
||||
int
|
||||
compute_label_target(void)
|
||||
{
|
||||
return
|
||||
ps.pcase ? (int) (case_ind * ps.ind_size) + 1
|
||||
@ -334,8 +338,8 @@ compute_label_target()
|
||||
* buffer from temporary buffer
|
||||
*
|
||||
*/
|
||||
int
|
||||
fill_buffer()
|
||||
void
|
||||
fill_buffer(void)
|
||||
{ /* this routine reads stuff from the input */
|
||||
register char *p;
|
||||
register int i;
|
||||
@ -351,9 +355,9 @@ fill_buffer()
|
||||
}
|
||||
for (p = in_buffer;;) {
|
||||
if (p >= in_buffer_limit) {
|
||||
register size = (in_buffer_limit - in_buffer) * 2 + 10;
|
||||
register offset = p - in_buffer;
|
||||
in_buffer = (char *) realloc(in_buffer, size);
|
||||
register int size = (in_buffer_limit - in_buffer) * 2 + 10;
|
||||
register int offset = p - in_buffer;
|
||||
in_buffer = realloc(in_buffer, size);
|
||||
if (in_buffer == 0)
|
||||
err(1, "input line too long");
|
||||
p = in_buffer + offset;
|
||||
@ -391,11 +395,12 @@ fill_buffer()
|
||||
p++;
|
||||
if (*p == '*')
|
||||
com = 1;
|
||||
else if (*p == 'O')
|
||||
else if (*p == 'O') {
|
||||
if (*++p == 'N')
|
||||
p++, com = 1;
|
||||
else if (*p == 'F' && *++p == 'F')
|
||||
p++, com = 2;
|
||||
}
|
||||
while (*p == ' ' || *p == '\t')
|
||||
p++;
|
||||
if (p[0] == '*' && p[1] == '/' && p[2] == '\n' && com) {
|
||||
@ -418,7 +423,6 @@ fill_buffer()
|
||||
putc(*p, output);
|
||||
while (*p++ != '\n');
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
/*
|
||||
@ -449,11 +453,13 @@ fill_buffer()
|
||||
* HISTORY: initial coding November 1976 D A Willcox of CAC
|
||||
*
|
||||
*/
|
||||
pad_output(current, target) /* writes tabs and blanks (if necessary) to
|
||||
static int
|
||||
pad_output(int current, int target)
|
||||
/* writes tabs and blanks (if necessary) to
|
||||
* get the current output position up to the
|
||||
* target column */
|
||||
int current; /* the current column value */
|
||||
int target; /* position we want it at */
|
||||
/* current: the current column value */
|
||||
/* target: position we want it at */
|
||||
{
|
||||
register int curr; /* internal column pointer */
|
||||
register int tcur;
|
||||
@ -495,13 +501,11 @@ pad_output(current, target) /* writes tabs and blanks (if necessary) to
|
||||
*
|
||||
*/
|
||||
int
|
||||
count_spaces(current, buffer)
|
||||
count_spaces(int current, char *buffer)
|
||||
/*
|
||||
* this routine figures out where the character position will be after
|
||||
* printing the text in buffer starting at column "current"
|
||||
*/
|
||||
int current;
|
||||
char *buffer;
|
||||
{
|
||||
register char *buf; /* used to look thru buffer */
|
||||
register int cur; /* current character counter */
|
||||
@ -533,9 +537,9 @@ count_spaces(current, buffer)
|
||||
}
|
||||
|
||||
int found_err;
|
||||
/* VARARGS2 */
|
||||
diag(level, msg, a, b)
|
||||
char *msg;
|
||||
|
||||
void
|
||||
diag4(int level, char *msg, int a, int b)
|
||||
{
|
||||
if (level)
|
||||
found_err = 1;
|
||||
@ -551,18 +555,49 @@ diag(level, msg, a, b)
|
||||
}
|
||||
}
|
||||
|
||||
writefdef(f, nm)
|
||||
register struct fstate *f;
|
||||
void
|
||||
diag3(int level, char *msg, int a)
|
||||
{
|
||||
if (level)
|
||||
found_err = 1;
|
||||
if (output == stdout) {
|
||||
fprintf(stdout, "/**INDENT** %s@%d: ", level == 0 ? "Warning" : "Error", line_no);
|
||||
fprintf(stdout, msg, a);
|
||||
fprintf(stdout, " */\n");
|
||||
}
|
||||
else {
|
||||
fprintf(stderr, "%s@%d: ", level == 0 ? "Warning" : "Error", line_no);
|
||||
fprintf(stderr, msg, a);
|
||||
fprintf(stderr, "\n");
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
diag2(int level, char *msg)
|
||||
{
|
||||
if (level)
|
||||
found_err = 1;
|
||||
if (output == stdout) {
|
||||
fprintf(stdout, "/**INDENT** %s@%d: ", level == 0 ? "Warning" : "Error", line_no);
|
||||
fprintf(stdout, msg);
|
||||
fprintf(stdout, " */\n");
|
||||
}
|
||||
else {
|
||||
fprintf(stderr, "%s@%d: ", level == 0 ? "Warning" : "Error", line_no);
|
||||
fprintf(stderr, msg);
|
||||
fprintf(stderr, "\n");
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
writefdef(struct fstate *f, int nm)
|
||||
{
|
||||
fprintf(output, ".ds f%c %s\n.nr s%c %d\n",
|
||||
nm, f->font, nm, f->size);
|
||||
}
|
||||
|
||||
char *
|
||||
chfont(of, nf, s)
|
||||
register struct fstate *of,
|
||||
*nf;
|
||||
char *s;
|
||||
char *
|
||||
chfont(struct fstate *of, struct fstate *nf, char *s)
|
||||
{
|
||||
if (of->font[0] != nf->font[0]
|
||||
|| of->font[1] != nf->font[1]) {
|
||||
@ -591,13 +626,12 @@ chfont(of, nf, s)
|
||||
return s;
|
||||
}
|
||||
|
||||
|
||||
parsefont(f, s0)
|
||||
register struct fstate *f;
|
||||
char *s0;
|
||||
void
|
||||
parsefont(struct fstate *f, char *s0)
|
||||
{
|
||||
register char *s = s0;
|
||||
int sizedelta = 0;
|
||||
|
||||
bzero(f, sizeof *f);
|
||||
while (*s) {
|
||||
if (isdigit(*s))
|
||||
|
@ -33,11 +33,13 @@
|
||||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#if 0
|
||||
#ifndef lint
|
||||
static char sccsid[] = "@(#)lexi.c 8.1 (Berkeley) 6/6/93";
|
||||
static const char rcsid[] =
|
||||
"$FreeBSD$";
|
||||
#endif /* not lint */
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Here we have the token scanner for indent. It scans off one token and puts
|
||||
@ -55,6 +57,8 @@ static const char rcsid[] =
|
||||
#define alphanum 1
|
||||
#define opchar 3
|
||||
|
||||
void fill_buffer(void);
|
||||
|
||||
struct templ {
|
||||
char *rwd;
|
||||
int rwcode;
|
||||
@ -62,37 +66,37 @@ struct templ {
|
||||
|
||||
struct templ specials[1000] =
|
||||
{
|
||||
"switch", 1,
|
||||
"case", 2,
|
||||
"break", 0,
|
||||
"struct", 3,
|
||||
"union", 3,
|
||||
"enum", 3,
|
||||
"default", 2,
|
||||
"int", 4,
|
||||
"char", 4,
|
||||
"float", 4,
|
||||
"double", 4,
|
||||
"long", 4,
|
||||
"short", 4,
|
||||
"typdef", 4,
|
||||
"unsigned", 4,
|
||||
"register", 4,
|
||||
"static", 4,
|
||||
"global", 4,
|
||||
"extern", 4,
|
||||
"void", 4,
|
||||
"goto", 0,
|
||||
"return", 0,
|
||||
"if", 5,
|
||||
"while", 5,
|
||||
"for", 5,
|
||||
"else", 6,
|
||||
"do", 6,
|
||||
"sizeof", 7,
|
||||
"const", 9,
|
||||
"volatile", 9,
|
||||
0, 0
|
||||
{"switch", 1},
|
||||
{"case", 2},
|
||||
{"break", 0},
|
||||
{"struct", 3},
|
||||
{"union", 3},
|
||||
{"enum", 3},
|
||||
{"default", 2},
|
||||
{"int", 4},
|
||||
{"char", 4},
|
||||
{"float", 4},
|
||||
{"double", 4},
|
||||
{"long", 4},
|
||||
{"short", 4},
|
||||
{"typdef", 4},
|
||||
{"unsigned", 4},
|
||||
{"register", 4},
|
||||
{"static", 4},
|
||||
{"global", 4},
|
||||
{"extern", 4},
|
||||
{"void", 4},
|
||||
{"goto", 0},
|
||||
{"return", 0},
|
||||
{"if", 5},
|
||||
{"while", 5},
|
||||
{"for", 5},
|
||||
{"else", 6},
|
||||
{"do", 6},
|
||||
{"sizeof", 7},
|
||||
{"const", 9},
|
||||
{"volatile", 9},
|
||||
{0, 0}
|
||||
};
|
||||
|
||||
char chartype[128] =
|
||||
@ -117,14 +121,10 @@ char chartype[128] =
|
||||
1, 1, 1, 0, 3, 0, 3, 0
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
int
|
||||
lexi()
|
||||
lexi(void)
|
||||
{
|
||||
int unary_delim; /* this is set to 1 if the current token
|
||||
*
|
||||
* forces a following operator to be unary */
|
||||
static int last_code; /* the last token type returned */
|
||||
static int l_struct; /* set to 1 if the last token was 'struct' */
|
||||
@ -145,7 +145,7 @@ lexi()
|
||||
}
|
||||
|
||||
/* Scan an alphanumeric token */
|
||||
if (chartype[*buf_ptr] == alphanum || buf_ptr[0] == '.' && isdigit(buf_ptr[1])) {
|
||||
if (chartype[(int)*buf_ptr] == alphanum || (buf_ptr[0] == '.' && isdigit(buf_ptr[1]))) {
|
||||
/*
|
||||
* we have a character or number
|
||||
*/
|
||||
@ -154,7 +154,7 @@ lexi()
|
||||
* reserved words */
|
||||
register struct templ *p;
|
||||
|
||||
if (isdigit(*buf_ptr) || buf_ptr[0] == '.' && isdigit(buf_ptr[1])) {
|
||||
if (isdigit(*buf_ptr) || (buf_ptr[0] == '.' && isdigit(buf_ptr[1]))) {
|
||||
int seendot = 0,
|
||||
seenexp = 0,
|
||||
seensfx = 0;
|
||||
@ -169,14 +169,15 @@ lexi()
|
||||
}
|
||||
else
|
||||
while (1) {
|
||||
if (*buf_ptr == '.')
|
||||
if (*buf_ptr == '.') {
|
||||
if (seendot)
|
||||
break;
|
||||
else
|
||||
seendot++;
|
||||
}
|
||||
CHECK_SIZE_TOKEN;
|
||||
*e_token++ = *buf_ptr++;
|
||||
if (!isdigit(*buf_ptr) && *buf_ptr != '.')
|
||||
if (!isdigit(*buf_ptr) && *buf_ptr != '.') {
|
||||
if ((*buf_ptr != 'E' && *buf_ptr != 'e') || seenexp)
|
||||
break;
|
||||
else {
|
||||
@ -187,6 +188,7 @@ lexi()
|
||||
if (*buf_ptr == '+' || *buf_ptr == '-')
|
||||
*e_token++ = *buf_ptr++;
|
||||
}
|
||||
}
|
||||
}
|
||||
while (1) {
|
||||
if (!(seensfx & 1) &&
|
||||
@ -209,7 +211,7 @@ lexi()
|
||||
}
|
||||
}
|
||||
else
|
||||
while (chartype[*buf_ptr] == alphanum || *buf_ptr == BACKSLASH) {
|
||||
while (chartype[(int)*buf_ptr] == alphanum || *buf_ptr == BACKSLASH) {
|
||||
/* fill_buffer() terminates buffer with newline */
|
||||
if (*buf_ptr == BACKSLASH) {
|
||||
if (*(buf_ptr + 1) == '\n') {
|
||||
@ -582,8 +584,8 @@ lexi()
|
||||
/*
|
||||
* Add the given keyword to the keyword table, using val as the keyword type
|
||||
*/
|
||||
addkey(key, val)
|
||||
char *key;
|
||||
void
|
||||
addkey(char *key, int val)
|
||||
{
|
||||
register struct templ *p = specials;
|
||||
while (p->rwd)
|
||||
@ -598,5 +600,4 @@ addkey(key, val)
|
||||
p->rwcode = val;
|
||||
p[1].rwd = 0;
|
||||
p[1].rwcode = 0;
|
||||
return;
|
||||
}
|
||||
|
@ -32,19 +32,23 @@
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#if 0
|
||||
#ifndef lint
|
||||
static char sccsid[] = "@(#)parse.c 8.1 (Berkeley) 6/6/93";
|
||||
static const char rcsid[] =
|
||||
"$FreeBSD$";
|
||||
#endif /* not lint */
|
||||
#endif
|
||||
|
||||
#include <stdio.h>
|
||||
#include "indent_globs.h"
|
||||
#include "indent_codes.h"
|
||||
#include "indent.h"
|
||||
|
||||
parse(tk)
|
||||
int tk; /* the code for the construct scanned */
|
||||
static void reduce(void);
|
||||
|
||||
void
|
||||
parse(int tk) /* tk: the code for the construct scanned */
|
||||
{
|
||||
int i;
|
||||
|
||||
@ -145,7 +149,7 @@ parse(tk)
|
||||
case elselit: /* scanned an else */
|
||||
|
||||
if (ps.p_stack[ps.tos] != ifhead)
|
||||
diag(1, "Unmatched 'else'");
|
||||
diag2(1, "Unmatched 'else'");
|
||||
else {
|
||||
ps.ind_level = ps.il[ps.tos]; /* indentation for else should
|
||||
* be same as for if */
|
||||
@ -164,7 +168,7 @@ parse(tk)
|
||||
ps.p_stack[ps.tos] = stmt;
|
||||
}
|
||||
else
|
||||
diag(1, "Stmt nesting error.");
|
||||
diag2(1, "Stmt nesting error.");
|
||||
break;
|
||||
|
||||
case swstmt: /* had switch (...) */
|
||||
@ -188,7 +192,7 @@ parse(tk)
|
||||
break;
|
||||
|
||||
default: /* this is an error */
|
||||
diag(1, "Unknown code to parser");
|
||||
diag2(1, "Unknown code to parser");
|
||||
return;
|
||||
|
||||
|
||||
@ -244,9 +248,9 @@ parse(tk)
|
||||
/*----------------------------------------------*\
|
||||
| REDUCTION PHASE |
|
||||
\*----------------------------------------------*/
|
||||
reduce()
|
||||
static void
|
||||
reduce(void)
|
||||
{
|
||||
|
||||
register int i;
|
||||
|
||||
for (;;) { /* keep looping until there is nothing left to
|
||||
|
@ -32,17 +32,17 @@
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#if 0
|
||||
#ifndef lint
|
||||
static char sccsid[] = "@(#)pr_comment.c 8.1 (Berkeley) 6/6/93";
|
||||
static const char rcsid[] =
|
||||
"$FreeBSD$";
|
||||
#endif /* not lint */
|
||||
|
||||
#endif
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include "indent_globs.h"
|
||||
|
||||
#include "indent.h"
|
||||
/*
|
||||
* NAME:
|
||||
* pr_comment
|
||||
@ -74,8 +74,8 @@ static const char rcsid[] =
|
||||
* beginning of the input line are removed
|
||||
*/
|
||||
|
||||
|
||||
pr_comment()
|
||||
void
|
||||
pr_comment(void)
|
||||
{
|
||||
int now_col; /* column we are in now */
|
||||
int adj_max_col; /* Adjusted max_col for when we decide to
|
||||
@ -85,12 +85,12 @@ pr_comment()
|
||||
char *t_ptr; /* used for moving string */
|
||||
int unix_comment; /* tri-state variable used to decide if it is
|
||||
* a unix-style comment. 0 means only blanks
|
||||
* since /*, 1 means regular style comment, 2
|
||||
* since /+*, 1 means regular style comment, 2
|
||||
* means unix style comment */
|
||||
int break_delim = comment_delimiter_on_blankline;
|
||||
int l_just_saw_decl = ps.just_saw_decl;
|
||||
/*
|
||||
* int ps.last_nl = 0; /* true iff the last significant thing
|
||||
* int ps.last_nl = 0; true iff the last significant thing
|
||||
* weve seen is a newline
|
||||
*/
|
||||
int one_liner = 1; /* true iff this comment is a one-liner */
|
||||
@ -116,9 +116,9 @@ pr_comment()
|
||||
if (*buf_ptr == '-' || *buf_ptr == '*' ||
|
||||
(*buf_ptr == '\n' && !format_block_comments)) {
|
||||
ps.box_com = true; /* A comment with a '-' or '*' immediately
|
||||
* after the /* is assumed to be a boxed
|
||||
* after the /+* is assumed to be a boxed
|
||||
* comment. A comment with a newline
|
||||
* immediately after the /* is assumed to
|
||||
* immediately after the /+* is assumed to
|
||||
* be a block comment and is treated as a
|
||||
* box comment unless format_block_comments
|
||||
* is nonzero (the default). */
|
||||
@ -136,7 +136,7 @@ pr_comment()
|
||||
ps.com_col = 1 + !format_col1_comments;
|
||||
}
|
||||
else {
|
||||
register target_col;
|
||||
register int target_col;
|
||||
break_delim = 0;
|
||||
if (s_code != e_code)
|
||||
target_col = count_spaces(compute_code_target(), s_code);
|
||||
@ -163,7 +163,7 @@ pr_comment()
|
||||
buf_ptr++;
|
||||
}
|
||||
ps.comment_delta = 0;
|
||||
*e_com++ = '/'; /* put '/*' into buffer */
|
||||
*e_com++ = '/'; /* put '/' followed by '*' into buffer */
|
||||
*e_com++ = '*';
|
||||
if (*buf_ptr != ' ' && !ps.box_com)
|
||||
*e_com++ = ' ';
|
||||
|
Loading…
Reference in New Issue
Block a user