aboutsummaryrefslogtreecommitdiff
path: root/src/main.c
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org.ua>1999-04-01 00:29:07 +0000
committerSergey Poznyakoff <gray@gnu.org.ua>1999-04-01 00:29:07 +0000
commitebce17172deea790515bb901d6d9e5c9e0041ab5 (patch)
tree4ce18644a35d64b2d8238a2bc1243a6acf30449c /src/main.c
parent0a4336ee1740a88c218cb0bcee47f120eb54b45d (diff)
downloadcflow-ebce17172deea790515bb901d6d9e5c9e0041ab5.tar.gz
cflow-ebce17172deea790515bb901d6d9e5c9e0041ab5.tar.bz2
*** empty log message ***
Diffstat (limited to 'src/main.c')
-rw-r--r--src/main.c28
1 files changed, 23 insertions, 5 deletions
diff --git a/src/main.c b/src/main.c
index fce34ac..d5043eb 100644
--- a/src/main.c
+++ b/src/main.c
@@ -33,7 +33,7 @@ void init();
#ifdef DEBUG
#define DEBUG_OPT "D"
#endif
-#define OPTSTR "hVLvSCdxtH:p:s:gl" DEBUG_OPT
+#define OPTSTR "hVLvSCdxtH:p:s:glmTi:" DEBUG_OPT
#ifdef GNU_STYLE_OPTIONS
@@ -54,6 +54,9 @@ LONGOPT longopts[] = {
"ansi", no_argument, 0, 'a',
"globals-only", no_argument, 0, 'g',
"print-level", no_argument, 0, 'l',
+ "html", no_argument, 0, 'm',
+ "tree", no_argument, 0, 'T',
+ "level-indent", required_argument, 0, 'i',
0,
};
#else
@@ -65,6 +68,7 @@ char *progname;
#ifdef DEBUG
int debug;
#endif
+int output_mode = OUT_TEXT;
int verbose; /* be verbose on output */
int ignore_indentation; /* Don't rely on indentation,
* i.e. don't suppose the function body
@@ -77,9 +81,10 @@ int record_typedefs; /* Record typedefs */
int cross_ref; /* Generate cross-reference */
int strict_ansi; /* Assume sources to be written in ANSI C */
int globals_only; /* List only global symbols */
-int print_level; /* Print branch levels */
+int print_levels; /* Print level number near every branch */
+int print_as_tree; /* Print as tree */
-char level_indent[80] = ".";
+char level_indent[80] = " ";
struct symbol_holder {
char *name;
@@ -144,7 +149,20 @@ main(argc, argv)
globals_only = 1;
break;
case 'l':
- print_level = 1;
+ print_levels = 1;
+ break;
+ case 'm':
+ output_mode = OUT_HTML;
+ break;
+ case 'T':
+ print_as_tree = 1;
+ break;
+ case 'i':
+ if (strlen(level_indent) >= sizeof(level_indent))
+ error(0, "level indent string is too long. (max %d symbols)",
+ sizeof(level_indent)-1);
+ else
+ strcpy(level_indent, optarg);
break;
#ifdef DEBUG
case 'D':
@@ -307,5 +325,5 @@ error(stat, fmt, va_alist)
fprintf(stderr, "\n");
va_end(ap);
if (stat & FATAL_ERROR)
- return stat & 255;
+ exit(stat & 255);
}

Return to:

Send suggestions and report system problems to the System administrator.