/* routines in "inform.c", since they are tied up with ICL */
/* settings and are very host OS-dependent. */
/* */
-/* Copyright (c) Graham Nelson 1993 - 2020 */
-/* */
-/* This file is part of Inform. */
+/* Part of Inform 6.35 */
+/* 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 */
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
/* 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);
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);
}
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)
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");