.SH SYNOPSIS
.B dfrotz
-.RI [ options "] " file
+.RI [ options "] " "file " [ blorbfile "]"
+
+At least one file must be specified on the command line. This can be
+either a plain Z-code file or a Blorb file. A Z-code file is a compiled
+executable for the Z-Machine. A Blorb file contains audio, graphics,
+and other things in addition to the game wrapped up into a single file.
+It can also optionally contain the Z-Machine executable. If a plain
+Z-code file is supplied, then
+.B Frotz
+will check for a Blorb file with the same base name but an extension of
+.B .blb,
+.B .blorb,
+or
+.B .zblorb
+and load it if found.
+
+If the file supplied on the command line is a Blorb file, then
+.B Frotz
+will check to see if a Z-code file is contained within. If not found, then
+.B Frotz
+will complain and exit.
+
+An alternatively-named Blorb file can be supplied as the optional second
+parameter to the command line invocation.
.SH DESCRIPTION
.SH SYNOPSIS
.B frotz
-.RI [ options "] " file
+.RI [ options "] " "file " [ blorbfile "]"
+
+At least one file must be specified on the command line. This can be
+either a plain Z-code file or a Blorb file. A Z-code file is a compiled
+executable for the Z-Machine. A Blorb file contains audio, graphics,
+and other things in addition to the game wrapped up into a single file.
+It can also optionally contain the Z-Machine executable. If a plain
+Z-code file is supplied, then
+.B Frotz
+will check for a Blorb file with the same base name but an extension of
+.B .blb,
+.B .blorb,
+or
+.B .zblorb
+and load it if found.
+
+If the file supplied on the command line is a Blorb file, then
+.B Frotz
+will check to see if a Z-code file is contained within. If not found, then
+.B Frotz
+will complain and exit.
+
+An alternatively-named Blorb file can be supplied as the optional second
+parameter to the command line invocation.
.SH DESCRIPTION
int err_report_mode;
char *story_file;
+ char *blorb_file;
char *story_name;
char *story_base;
char *script_name;
blorb_fp = fp;
} else {
fclose(fp);
- len1 = strlen(filename) + strlen(EXT_BLORB);
- len2 = strlen(filename) + strlen(EXT_BLORB3);
- mystring = malloc(len2 * sizeof(char) + 1);
- strncpy(mystring, filename, len1 * sizeof(char));
- p = strrchr(mystring, '.');
- if (p != NULL)
- *p = '\0';
-
- strncat(mystring, EXT_BLORB, len1 * sizeof(char));
+ if (f_setup.blorb_file != NULL)
+ mystring = strdup(f_setup.blorb_file);
+ else {
+ len1 = strlen(filename) + strlen(EXT_BLORB);
+ len2 = strlen(filename) + strlen(EXT_BLORB3);
+ mystring = malloc(len2 * sizeof(char) + 1);
+ strncpy(mystring, filename, len1 * sizeof(char));
+ p = strrchr(mystring, '.');
+ if (p != NULL)
+ *p = '\0';
+ strncat(mystring, EXT_BLORB, len1 * sizeof(char));
+ }
/* Check if foo.blb is there. */
if ((fp = os_path_open(mystring, "rb")) == NULL) {
} while (c != EOF);
- if (zoptind != argc - 1) {
+ if (argc < 2) {
printf("FROTZ V%s\tCurses interface. ", VERSION);
#ifndef NO_SOUND
f_setup.story_file = strdup(argv[zoptind]);
f_setup.story_name = strdup(basename(argv[zoptind]));
+ if (argv[3] != NULL)
+ f_setup.blorb_file = strdup(argv[3]);
+
/* Now strip off the extension */
p = strrchr(f_setup.story_name, '.');
if ( p != NULL )
fp = NULL;
/* Check if foo.blb is there. */
- if ((blorb_fp = fopen(mystring, "rb")) == NULL) {
- p = strrchr(mystring, '.');
- if (p != NULL)
- *p = '\0';
- strncat(mystring, EXT_BLORB3, len2 * sizeof(char));
- blorb_fp = fopen(mystring, "rb");
+ if (f_setup.blorb_file != NULL)
+ mystring = strdup(f_setup.blorb_file);
+ else {
+ if ((blorb_fp = fopen(mystring, "rb")) == NULL) {
+ p = strrchr(mystring, '.');
+ if (p != NULL)
+ *p = '\0';
+ strncat(mystring, EXT_BLORB3, len2 * sizeof(char));
+ blorb_fp = fopen(mystring, "rb");
+ }
}
if (blorb_fp == NULL || !isblorb(fp)) /* No matching blorbs found. */
}
} while (c != EOF);
- if (((argc - zoptind) != 1) && ((argc - zoptind) != 2)) {
+ if (argc < 2) {
printf("FROTZ V%s\tDumb interface.\n", VERSION);
puts(INFORMATION);
puts(INFO2);
f_setup.story_file = strdup(argv[zoptind]);
f_setup.story_name = strdup(basename(argv[zoptind]));
+ if (argv[3] != NULL)
+ f_setup.blorb_file = strdup(argv[3]);
+
/* Now strip off the extension */
p = strrchr(f_setup.story_name, '.');
if ( p != NULL )