diff options
-rw-r--r-- | listbas.1 | 10 | ||||
-rw-r--r-- | listbas.c | 12 | ||||
-rw-r--r-- | listbas.rst | 10 |
3 files changed, 27 insertions, 5 deletions
@@ -44,7 +44,7 @@ escape sequences for inverse video and color syntax highlighting. .sp \fBlistbas\fP supports several BASIC dialects used on the Atari. By default, the BASIC dialect is autodetected by running \fBwhichbas\fP(1) -as an external process. +as an external process. To override this, see the \fB\-b\fP option, below. .SH OPTIONS .SS BASIC options .INDENT 0.0 @@ -81,6 +81,14 @@ Include the immediate mode command (line 32768) in the output. .B \fB\-l\fP Do not print line numbers at the start of each line. \fBGOTO\fP, \fBGOSUB\fP, \fBTRAP\fP, and \fBTHEN\fP target line numbers are still printed. +.TP +.B \fB\-t\fP +Do not indent, if the program is Turbo BASIC, BASIC/A+, BASIC XL, or BASIC XE. +If you want to indent an Atari BASIC program, use \fB\-bt\fP or \fB\-bxl\fP\&. +.TP +.B \fB\-k\fP +Do not print keywords in mixed case (e.g. \fBPrint\fP, \fBGraphics\fP), +for BASIC XL or BASIC XE. .UNINDENT .SS Output modes .sp @@ -77,6 +77,7 @@ int underline = 0; /* 1 with -u */ int skip_lineno = 0; /* 1 with -l */ int dump_tables = 0; /* 1 with -D */ int autodetect = 1; /* 0 with -b */ +int mixed_case = 1; /* 0 with -k, or if input is B_ATARI or B_APLUS */ /* change these with -c */ int color_cmd = C_YELLOW; @@ -145,7 +146,7 @@ int get_bas_type(char *arg) { } void print_help(void) { - printf("Usage: %s [-a|-d|-m|-x|-U] [-B] [-i] [-l] [-u] [-n|-C] [-v] [-c *colors*] <inputfile>\n", self); + printf("Usage: %s [-a|-d|-m|-x|-U] [-B] [-i] [-l] [-u] [-n|-C] [-v] [-c *colors*] [-k] <inputfile>\n", self); printf(" -b <XX>: set BASIC type. XX is: a = atari, t = turbo, xl, xe, a+.\n"); printf(" -U: output ATASCII as Unicode/UTF-8 (this is the default).\n"); printf(" -a: output raw ATASCII.\n"); @@ -159,6 +160,7 @@ void print_help(void) { printf(" -n: disable color syntax highlighting.\n"); printf(" -u: use underline for inverse video.\n"); printf(" -c: use custom colors (see man page).\n"); + printf(" -k: disable mixed case keywords for BXL/BXE (e.g. Print).\n"); printf(" -v: verbose.\n"); } @@ -167,7 +169,7 @@ void parse_args(int argc, char **argv, int from_env) { optind = 1; - while( (opt = getopt(argc, argv, "Db:UCviamnBdhxulc:")) != -1) { + while( (opt = getopt(argc, argv, "Db:UCviamnBdhxulc:k")) != -1) { switch(opt) { case 'U': output_mode = M_UTF8; break; case 'a': output_mode = M_ATASCII; color = 0; break; @@ -182,6 +184,7 @@ void parse_args(int argc, char **argv, int from_env) { case 'C': color = 1; break; case 'n': color = 0; break; case 'l': skip_lineno = 1; break; + case 'k': mixed_case = 0; break; case 'b': autodetect = 0; bas_type = get_bas_type(optarg); break; case 'c': parse_color_scheme(optarg); break; case 'h': print_help(); exit(0); @@ -493,7 +496,7 @@ CALLBACK(print_cmd) { if(bas_type == B_BXL && tok == 0x5a) name = get_bxl_ext_name(program[pos + 1]); - if(bas_type == B_BXL || bas_type == B_BXE) { + if(mixed_case && (bas_type == B_BXL || bas_type == B_BXE)) { print_mixed_case(name); outchr(' '); } else { @@ -839,6 +842,9 @@ void init_bas_dialect() { if(bas_type == B_BXL) bxl_exttok_hack = 1; + + if(bas_type == B_ATARI || bas_type == B_APLUS || bas_type == B_TURBO) + mixed_case = 0; } int main(int argc, char **argv) { diff --git a/listbas.rst b/listbas.rst index 7895b1b..a32f5c2 100644 --- a/listbas.rst +++ b/listbas.rst @@ -25,7 +25,7 @@ escape sequences for inverse video and color syntax highlighting. **listbas** supports several BASIC dialects used on the Atari. By default, the BASIC dialect is autodetected by running **whichbas**\(1) -as an external process. +as an external process. To override this, see the **-b** option, below. OPTIONS ======= @@ -64,6 +64,14 @@ BASIC options Do not print line numbers at the start of each line. **GOTO**, **GOSUB**, **TRAP**, and **THEN** target line numbers are still printed. +**-t** + Do not indent, if the program is Turbo BASIC, BASIC/A+, BASIC XL, or BASIC XE. + If you want to indent an Atari BASIC program, use **-bt** or **-bxl**. + +**-k** + Do not print keywords in mixed case (e.g. **Print**, **Graphics**), + for BASIC XL or BASIC XE. + Output modes ------------ |