X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=src%2Ffiles.c;h=b027dd40f97916e74b90e2a8d28bf2279fa72189;hb=d8d68d0bd4c45af6f0dc69b4fc33d37d961aca85;hp=c4651399eb48a89867abf76c71e8640ba3def705;hpb=8760c1ba6442153afe76bcac742e086f90c59fe8;p=inform.git diff --git a/src/files.c b/src/files.c index c465139..b027dd4 100644 --- a/src/files.c +++ b/src/files.c @@ -8,7 +8,7 @@ /* settings and are very host OS-dependent. */ /* */ /* Part of Inform 6.35 */ -/* copyright (c) Graham Nelson 1993 - 2020 */ +/* copyright (c) Graham Nelson 1993 - 2021 */ /* */ /* Inform is free software: you can redistribute it and/or modify */ /* it under the terms of the GNU General Public License as published by */ @@ -195,6 +195,7 @@ extern void close_all_source(void) extern int register_orig_sourcefile(char *filename) { int ix; + char *name; /* If the filename has already been used as an origsource filename, return that entry. We check the most-recently-used file first, and @@ -216,7 +217,7 @@ extern int register_orig_sourcefile(char *filename) /* This filename has never been used before. Allocate a new InputFiles entry. */ - char *name = filename; /* no translation */ + name = filename; /* no translation */ if (total_files == MAX_SOURCE_FILES) memoryerror("MAX_SOURCE_FILES", MAX_SOURCE_FILES); @@ -1302,8 +1303,38 @@ extern void output_file(void) FILE *transcript_file_handle; int transcript_open; -extern void write_to_transcript_file(char *text) -{ fputs(text, transcript_file_handle); +extern void write_to_transcript_file(char *text, int linetype) +{ + if (TRANSCRIPT_FORMAT == 1) { + char ch = '?'; + switch (linetype) { + case STRCTX_INFO: + ch = 'I'; break; + case STRCTX_GAME: + ch = 'G'; break; + case STRCTX_GAMEOPC: + ch = 'H'; break; + case STRCTX_VENEER: + ch = 'V'; break; + case STRCTX_VENEEROPC: + ch = 'W'; break; + case STRCTX_LOWSTRING: + ch = 'L'; break; + case STRCTX_ABBREV: + ch = 'A'; break; + case STRCTX_DICT: + ch = 'D'; break; + case STRCTX_OBJNAME: + ch = 'O'; break; + case STRCTX_SYMBOL: + ch = 'S'; break; + case STRCTX_INFIX: + ch = 'X'; break; + } + fputc(ch, transcript_file_handle); + fputs(": ", transcript_file_handle); + } + fputs(text, transcript_file_handle); fputc('\n', transcript_file_handle); } @@ -1317,9 +1348,16 @@ extern void open_transcript_file(char *what_of) transcript_open = TRUE; - sprintf(topline_buffer, "Transcript of the text of \"%s\"\n\ -[From %s]\n", what_of, banner_line); - write_to_transcript_file(topline_buffer); + sprintf(topline_buffer, "Transcript of the text of \"%s\"", what_of); + write_to_transcript_file(topline_buffer, STRCTX_INFO); + sprintf(topline_buffer, "[From %s]", banner_line); + write_to_transcript_file(topline_buffer, STRCTX_INFO); + if (TRANSCRIPT_FORMAT == 1) { + write_to_transcript_file("[I:info, G:game text, V:veneer text, L:lowmem string, A:abbreviation, D:dict word, O:object name, S:symbol, X:infix]", STRCTX_INFO); + if (!glulx_mode) + write_to_transcript_file("[H:game text inline in opcode, W:veneer text inline in opcode]", STRCTX_INFO); + } + write_to_transcript_file("", STRCTX_INFO); } extern void abort_transcript_file(void) @@ -1333,9 +1371,11 @@ extern void close_transcript_file(void) char sn_buffer[7]; write_serial_number(sn_buffer); - sprintf(botline_buffer, "\n[End of transcript: release %d.%s]\n", + sprintf(botline_buffer, "[End of transcript: release %d, serial %s]", release_number, sn_buffer); - write_to_transcript_file(botline_buffer); + write_to_transcript_file("", STRCTX_INFO); + write_to_transcript_file(botline_buffer, STRCTX_INFO); + write_to_transcript_file("", STRCTX_INFO); if (ferror(transcript_file_handle)) fatalerror("I/O failure: couldn't write to transcript file");