Re-align structure initialization lists in mt.c

There are three "tables" with structure initialization lists in mt.c,
which look like they were intended to be nicely-aligned, but over time
they got out of alignment.

Redo the alignment by unwrapping the lines and using Emacs'
align-regex, even though this leads to an exception of ~130 line
length for the 'cmds' table, since it leads to a very readable table
(on large terminals). Also protect these regions from clang-format, in
preparation for full file re-indents.
This commit is contained in:
Iustin Pop
2016-05-06 21:39:48 +02:00
parent faf3e9b3b7
commit a8252c4f91

358
mt.c
View File

@@ -73,100 +73,60 @@ static int do_asf(int, cmdef_tr *, int, char **);
static int do_show_options(int, cmdef_tr *, int, char **);
static void test_error(int, cmdef_tr *);
/* Formatting note: the tables below were formatted using Emacs's
* extended align regex, using <,\(\s-+\)[A-Za-z0-9"]> as complex align
* regex (without <>), and repeated=y. The final curly brace is aligned
* separately. */
static cmdef_tr cmds[] = {
{ "weof", MTWEOF, do_standard, 0, FD_RDWR, ONE_ARG,
ET_ONLINE | ET_WPROT },
{ "wset", MTWSM, do_standard, 0, FD_RDWR, ONE_ARG,
ET_ONLINE | ET_WPROT },
{ "eof", MTWEOF, do_standard, 0, FD_RDWR, ONE_ARG,
ET_ONLINE },
{ "fsf", MTFSF, do_standard, 0, FD_RDONLY, ONE_ARG,
ET_ONLINE },
{ "fsfm", MTFSFM, do_standard, 0, FD_RDONLY, ONE_ARG,
ET_ONLINE },
{ "bsf", MTBSF, do_standard, 0, FD_RDONLY, ONE_ARG,
ET_ONLINE },
{ "bsfm", MTBSFM, do_standard, 0, FD_RDONLY, ONE_ARG,
ET_ONLINE },
{ "fsr", MTFSR, do_standard, 0, FD_RDONLY, ONE_ARG,
ET_ONLINE },
{ "bsr", MTBSR, do_standard, 0, FD_RDONLY, ONE_ARG,
ET_ONLINE },
{ "fss", MTFSS, do_standard, 0, FD_RDONLY, ONE_ARG,
ET_ONLINE },
{ "bss", MTBSS, do_standard, 0, FD_RDONLY, ONE_ARG,
ET_ONLINE },
{ "rewind", MTREW, do_standard, 0, FD_RDONLY, NO_ARGS,
ET_ONLINE },
{ "offline", MTOFFL, do_standard, 0, FD_RDONLY, NO_ARGS,
ET_ONLINE },
{ "rewoffl", MTOFFL, do_standard, 0, FD_RDONLY, NO_ARGS,
ET_ONLINE },
{ "eject", MTOFFL, do_standard, 0, FD_RDONLY, NO_ARGS,
ET_ONLINE },
{ "retension", MTRETEN, do_standard, 0, FD_RDONLY, NO_ARGS,
ET_ONLINE },
{ "eod", MTEOM, do_standard, 0, FD_RDONLY, NO_ARGS,
ET_ONLINE },
{ "seod", MTEOM, do_standard, 0, FD_RDONLY, NO_ARGS,
ET_ONLINE },
{ "seek", MTSEEK, do_standard, 0, FD_RDONLY, ONE_ARG,
ET_ONLINE },
{ "tell", MTTELL, do_tell, 0, FD_RDONLY, NO_ARGS,
ET_ONLINE },
{ "status", MTNOP, do_status, 0, FD_RDONLY, NO_ARGS,
0 },
{ "erase", MTERASE, do_standard, 0, FD_RDWR, ONE_ARG,
ET_ONLINE },
{ "setblk", MTSETBLK, do_standard, 0, FD_RDONLY, ONE_ARG,
0 },
{ "lock", MTLOCK, do_standard, 0, FD_RDONLY, NO_ARGS,
ET_ONLINE },
{ "unlock", MTUNLOCK, do_standard, 0, FD_RDONLY, NO_ARGS,
ET_ONLINE },
{ "load", MTLOAD, do_standard, 0, FD_RDONLY, ONE_ARG,
0 },
{ "compression", MTCOMPRESSION, do_standard, 0, FD_RDONLY, ONE_ARG,
0 },
{ "setdensity", MTSETDENSITY, do_standard, 0, FD_RDONLY, ONE_ARG,
0 },
{ "drvbuffer", MTSETDRVBUFFER, do_drvbuffer, 0, FD_RDONLY, ONE_ARG,
0 },
{ "stwrthreshold", MTSETDRVBUFFER, do_drvbuffer, MT_ST_WRITE_THRESHOLD,
FD_RDONLY, ONE_ARG, 0},
{ "stoptions", DO_BOOLEANS, do_options, 0, FD_RDONLY,
MANY_ARGS, 0},
{ "stsetoptions", SET_BOOLEANS, do_options, 0, FD_RDONLY,
MANY_ARGS, 0},
{ "stclearoptions", CLEAR_BOOLEANS, do_options, 0, FD_RDONLY,
MANY_ARGS, 0},
{ "defblksize", MTSETDRVBUFFER, do_drvbuffer, MT_ST_DEF_BLKSIZE,
FD_RDONLY, ONE_ARG, 0},
{ "defdensity", MTSETDRVBUFFER, do_drvbuffer, MT_ST_DEF_DENSITY,
FD_RDONLY, ONE_ARG, 0},
{ "defdrvbuffer", MTSETDRVBUFFER, do_drvbuffer, MT_ST_DEF_DRVBUFFER,
FD_RDONLY, ONE_ARG, 0},
{ "defcompression", MTSETDRVBUFFER, do_drvbuffer, MT_ST_DEF_COMPRESSION,
FD_RDONLY, ONE_ARG, 0},
{ "stsetcln", MTSETDRVBUFFER, do_drvbuffer, MT_ST_SET_CLN,
FD_RDONLY, ONE_ARG, 0},
{ "sttimeout", MTSETDRVBUFFER, do_drvbuffer, MT_ST_SET_TIMEOUT,
FD_RDONLY, ONE_ARG, 0},
{ "stlongtimeout", MTSETDRVBUFFER, do_drvbuffer, MT_ST_SET_LONG_TIMEOUT,
FD_RDONLY, ONE_ARG, 0},
{ "densities", 0, print_densities, 0, NO_FD, NO_ARGS,
0 },
{ "setpartition", MTSETPART, do_standard, 0, FD_RDONLY, ONE_ARG,
ET_ONLINE },
{ "mkpartition", MTMKPART, do_standard, 0, FD_RDWR, ONE_ARG,
ET_ONLINE },
{ "partseek", 0, do_partseek, 0, FD_RDONLY, TWO_ARGS,
ET_ONLINE },
{ "asf", 0, do_asf, MTREW, FD_RDONLY, ONE_ARG,
ET_ONLINE },
{ "stshowoptions", 0, do_show_options, 0, FD_RDONLY, ONE_ARG,
0 },
{ NULL, 0, 0, 0, NO_FD, NO_ARGS, 0 }
/* clang-format off */
{ "weof", MTWEOF, do_standard, 0, FD_RDWR, ONE_ARG, ET_ONLINE | ET_WPROT },
{ "wset", MTWSM, do_standard, 0, FD_RDWR, ONE_ARG, ET_ONLINE | ET_WPROT },
{ "eof", MTWEOF, do_standard, 0, FD_RDWR, ONE_ARG, ET_ONLINE },
{ "fsf", MTFSF, do_standard, 0, FD_RDONLY, ONE_ARG, ET_ONLINE },
{ "fsfm", MTFSFM, do_standard, 0, FD_RDONLY, ONE_ARG, ET_ONLINE },
{ "bsf", MTBSF, do_standard, 0, FD_RDONLY, ONE_ARG, ET_ONLINE },
{ "bsfm", MTBSFM, do_standard, 0, FD_RDONLY, ONE_ARG, ET_ONLINE },
{ "fsr", MTFSR, do_standard, 0, FD_RDONLY, ONE_ARG, ET_ONLINE },
{ "bsr", MTBSR, do_standard, 0, FD_RDONLY, ONE_ARG, ET_ONLINE },
{ "fss", MTFSS, do_standard, 0, FD_RDONLY, ONE_ARG, ET_ONLINE },
{ "bss", MTBSS, do_standard, 0, FD_RDONLY, ONE_ARG, ET_ONLINE },
{ "rewind", MTREW, do_standard, 0, FD_RDONLY, NO_ARGS, ET_ONLINE },
{ "offline", MTOFFL, do_standard, 0, FD_RDONLY, NO_ARGS, ET_ONLINE },
{ "rewoffl", MTOFFL, do_standard, 0, FD_RDONLY, NO_ARGS, ET_ONLINE },
{ "eject", MTOFFL, do_standard, 0, FD_RDONLY, NO_ARGS, ET_ONLINE },
{ "retension", MTRETEN, do_standard, 0, FD_RDONLY, NO_ARGS, ET_ONLINE },
{ "eod", MTEOM, do_standard, 0, FD_RDONLY, NO_ARGS, ET_ONLINE },
{ "seod", MTEOM, do_standard, 0, FD_RDONLY, NO_ARGS, ET_ONLINE },
{ "seek", MTSEEK, do_standard, 0, FD_RDONLY, ONE_ARG, ET_ONLINE },
{ "tell", MTTELL, do_tell, 0, FD_RDONLY, NO_ARGS, ET_ONLINE },
{ "status", MTNOP, do_status, 0, FD_RDONLY, NO_ARGS, 0 },
{ "erase", MTERASE, do_standard, 0, FD_RDWR, ONE_ARG, ET_ONLINE },
{ "setblk", MTSETBLK, do_standard, 0, FD_RDONLY, ONE_ARG, 0 },
{ "lock", MTLOCK, do_standard, 0, FD_RDONLY, NO_ARGS, ET_ONLINE },
{ "unlock", MTUNLOCK, do_standard, 0, FD_RDONLY, NO_ARGS, ET_ONLINE },
{ "load", MTLOAD, do_standard, 0, FD_RDONLY, ONE_ARG, 0 },
{ "compression", MTCOMPRESSION, do_standard, 0, FD_RDONLY, ONE_ARG, 0 },
{ "setdensity", MTSETDENSITY, do_standard, 0, FD_RDONLY, ONE_ARG, 0 },
{ "drvbuffer", MTSETDRVBUFFER, do_drvbuffer, 0, FD_RDONLY, ONE_ARG, 0 },
{ "stwrthreshold", MTSETDRVBUFFER, do_drvbuffer, MT_ST_WRITE_THRESHOLD, FD_RDONLY, ONE_ARG, 0 },
{ "stoptions", DO_BOOLEANS, do_options, 0, FD_RDONLY, MANY_ARGS, 0 },
{ "stsetoptions", SET_BOOLEANS, do_options, 0, FD_RDONLY, MANY_ARGS, 0 },
{ "stclearoptions", CLEAR_BOOLEANS, do_options, 0, FD_RDONLY, MANY_ARGS, 0 },
{ "defblksize", MTSETDRVBUFFER, do_drvbuffer, MT_ST_DEF_BLKSIZE, FD_RDONLY, ONE_ARG, 0 },
{ "defdensity", MTSETDRVBUFFER, do_drvbuffer, MT_ST_DEF_DENSITY, FD_RDONLY, ONE_ARG, 0 },
{ "defdrvbuffer", MTSETDRVBUFFER, do_drvbuffer, MT_ST_DEF_DRVBUFFER, FD_RDONLY, ONE_ARG, 0 },
{ "defcompression", MTSETDRVBUFFER, do_drvbuffer, MT_ST_DEF_COMPRESSION, FD_RDONLY, ONE_ARG, 0 },
{ "stsetcln", MTSETDRVBUFFER, do_drvbuffer, MT_ST_SET_CLN, FD_RDONLY, ONE_ARG, 0 },
{ "sttimeout", MTSETDRVBUFFER, do_drvbuffer, MT_ST_SET_TIMEOUT, FD_RDONLY, ONE_ARG, 0 },
{ "stlongtimeout", MTSETDRVBUFFER, do_drvbuffer, MT_ST_SET_LONG_TIMEOUT, FD_RDONLY, ONE_ARG, 0 },
{ "densities", 0, print_densities, 0, NO_FD, NO_ARGS, 0 },
{ "setpartition", MTSETPART, do_standard, 0, FD_RDONLY, ONE_ARG, ET_ONLINE },
{ "mkpartition", MTMKPART, do_standard, 0, FD_RDWR, ONE_ARG, ET_ONLINE },
{ "partseek", 0, do_partseek, 0, FD_RDONLY, TWO_ARGS, ET_ONLINE },
{ "asf", 0, do_asf, MTREW, FD_RDONLY, ONE_ARG, ET_ONLINE },
{ "stshowoptions", 0, do_show_options, 0, FD_RDONLY, ONE_ARG, 0 },
{ NULL, 0, 0, 0, NO_FD, NO_ARGS, 0 },
/* clang-format on */
};
@@ -174,93 +134,95 @@ static struct densities {
int code;
char *name;
} density_tbl[] = {
{0x00, "default"},
{0x01, "NRZI (800 bpi)"},
{0x02, "PE (1600 bpi)"},
{0x03, "GCR (6250 bpi)"},
{0x04, "QIC-11"},
{0x05, "QIC-45/60 (GCR, 8000 bpi)"},
{0x06, "PE (3200 bpi)"},
{0x07, "IMFM (6400 bpi)"},
{0x08, "GCR (8000 bpi)"},
{0x09, "GCR (37871 bpi)"},
{0x0a, "MFM (6667 bpi)"},
{0x0b, "PE (1600 bpi)"},
{0x0c, "GCR (12960 bpi)"},
{0x0d, "GCR (25380 bpi)"},
{0x0f, "QIC-120 (GCR 10000 bpi)"},
{0x10, "QIC-150/250 (GCR 10000 bpi)"},
{0x11, "QIC-320/525 (GCR 16000 bpi)"},
{0x12, "QIC-1350 (RLL 51667 bpi)"},
{0x13, "DDS (61000 bpi)"},
{0x14, "EXB-8200 (RLL 43245 bpi)"},
{0x15, "EXB-8500 or QIC-1000"},
{0x16, "MFM 10000 bpi"},
{0x17, "MFM 42500 bpi"},
{0x18, "TZ86"},
{0x19, "DLT 10GB"},
{0x1a, "DLT 20GB"},
{0x1b, "DLT 35GB"},
{0x1c, "QIC-385M"},
{0x1d, "QIC-410M"},
{0x1e, "QIC-1000C"},
{0x1f, "QIC-2100C"},
{0x20, "QIC-6GB"},
{0x21, "QIC-20GB"},
{0x22, "QIC-2GB"},
{0x23, "QIC-875"},
{0x24, "DDS-2"},
{0x25, "DDS-3"},
{0x26, "DDS-4 or QIC-4GB"},
{0x27, "Exabyte Mammoth"},
{0x28, "Exabyte Mammoth-2"},
{0x29, "QIC-3080MC"},
{0x30, "AIT-1 or MLR3"},
{0x31, "AIT-2"},
{0x32, "AIT-3 or SLR7"},
{0x33, "SLR6"},
{0x34, "SLR100"},
{0x40, "DLT1 40 GB, or Ultrium"},
{0x41, "DLT 40GB, or Ultrium2"},
{0x42, "LTO-2"},
{0x44, "LTO-3"},
{0x45, "QIC-3095-MC (TR-4)"},
{0x46, "LTO-4"},
{0x47, "DDS-5 or TR-5"},
{0x48, "SDLT220"},
{0x49, "SDLT320"},
{0x4a, "SDLT600, T10000A"},
{0x4b, "T10000B"},
{0x4c, "T10000C"},
{0x4d, "T10000D"},
{0x51, "IBM 3592 J1A"},
{0x52, "IBM 3592 E05"},
{0x53, "IBM 3592 E06"},
{0x54, "IBM 3592 E07"},
{0x55, "IBM 3592 E08"},
{0x58, "LTO-5"},
{0x5a, "LTO-6"},
{0x5c, "LTO-7"},
{0x71, "IBM 3592 J1A, encrypted"},
{0x72, "IBM 3592 E05, encrypted"},
{0x73, "IBM 3592 E06, encrypted"},
{0x74, "IBM 3592 E07, encrypted"},
{0x75, "IBM 3592 E08, encrypted"},
{0x80, "DLT 15GB uncomp. or Ecrix"},
{0x81, "DLT 15GB compressed"},
{0x82, "DLT 20GB uncompressed"},
{0x83, "DLT 20GB compressed"},
{0x84, "DLT 35GB uncompressed"},
{0x85, "DLT 35GB compressed"},
{0x86, "DLT1 40 GB uncompressed"},
{0x87, "DLT1 40 GB compressed"},
{0x88, "DLT 40GB uncompressed"},
{0x89, "DLT 40GB compressed"},
{0x8c, "EXB-8505 compressed"},
{0x90, "SDLT110 uncompr/EXB-8205 compr"},
{0x91, "SDLT110 compressed"},
{0x92, "SDLT160 uncompressed"},
{0x93, "SDLT160 comprssed"}
/* clang-format off */
{ 0x00, "default" },
{ 0x01, "NRZI (800 bpi)" },
{ 0x02, "PE (1600 bpi)" },
{ 0x03, "GCR (6250 bpi)" },
{ 0x04, "QIC-11" },
{ 0x05, "QIC-45/60 (GCR, 8000 bpi)" },
{ 0x06, "PE (3200 bpi)" },
{ 0x07, "IMFM (6400 bpi)" },
{ 0x08, "GCR (8000 bpi)" },
{ 0x09, "GCR (37871 bpi)" },
{ 0x0a, "MFM (6667 bpi)" },
{ 0x0b, "PE (1600 bpi)" },
{ 0x0c, "GCR (12960 bpi)" },
{ 0x0d, "GCR (25380 bpi)" },
{ 0x0f, "QIC-120 (GCR 10000 bpi)" },
{ 0x10, "QIC-150/250 (GCR 10000 bpi)" },
{ 0x11, "QIC-320/525 (GCR 16000 bpi)" },
{ 0x12, "QIC-1350 (RLL 51667 bpi)" },
{ 0x13, "DDS (61000 bpi)" },
{ 0x14, "EXB-8200 (RLL 43245 bpi)" },
{ 0x15, "EXB-8500 or QIC-1000" },
{ 0x16, "MFM 10000 bpi" },
{ 0x17, "MFM 42500 bpi" },
{ 0x18, "TZ86" },
{ 0x19, "DLT 10GB" },
{ 0x1a, "DLT 20GB" },
{ 0x1b, "DLT 35GB" },
{ 0x1c, "QIC-385M" },
{ 0x1d, "QIC-410M" },
{ 0x1e, "QIC-1000C" },
{ 0x1f, "QIC-2100C" },
{ 0x20, "QIC-6GB" },
{ 0x21, "QIC-20GB" },
{ 0x22, "QIC-2GB" },
{ 0x23, "QIC-875" },
{ 0x24, "DDS-2" },
{ 0x25, "DDS-3" },
{ 0x26, "DDS-4 or QIC-4GB" },
{ 0x27, "Exabyte Mammoth" },
{ 0x28, "Exabyte Mammoth-2" },
{ 0x29, "QIC-3080MC" },
{ 0x30, "AIT-1 or MLR3" },
{ 0x31, "AIT-2" },
{ 0x32, "AIT-3 or SLR7" },
{ 0x33, "SLR6" },
{ 0x34, "SLR100" },
{ 0x40, "DLT1 40 GB, or Ultrium" },
{ 0x41, "DLT 40GB, or Ultrium2" },
{ 0x42, "LTO-2" },
{ 0x44, "LTO-3" },
{ 0x45, "QIC-3095-MC (TR-4)" },
{ 0x46, "LTO-4" },
{ 0x47, "DDS-5 or TR-5" },
{ 0x48, "SDLT220" },
{ 0x49, "SDLT320" },
{ 0x4a, "SDLT600, T10000A" },
{ 0x4b, "T10000B" },
{ 0x4c, "T10000C" },
{ 0x4d, "T10000D" },
{ 0x51, "IBM 3592 J1A" },
{ 0x52, "IBM 3592 E05" },
{ 0x53, "IBM 3592 E06" },
{ 0x54, "IBM 3592 E07" },
{ 0x55, "IBM 3592 E08" },
{ 0x58, "LTO-5" },
{ 0x5a, "LTO-6" },
{ 0x5c, "LTO-7" },
{ 0x71, "IBM 3592 J1A, encrypted" },
{ 0x72, "IBM 3592 E05, encrypted" },
{ 0x73, "IBM 3592 E06, encrypted" },
{ 0x74, "IBM 3592 E07, encrypted" },
{ 0x75, "IBM 3592 E08, encrypted" },
{ 0x80, "DLT 15GB uncomp. or Ecrix" },
{ 0x81, "DLT 15GB compressed" },
{ 0x82, "DLT 20GB uncompressed" },
{ 0x83, "DLT 20GB compressed" },
{ 0x84, "DLT 35GB uncompressed" },
{ 0x85, "DLT 35GB compressed" },
{ 0x86, "DLT1 40 GB uncompressed" },
{ 0x87, "DLT1 40 GB compressed" },
{ 0x88, "DLT 40GB uncompressed" },
{ 0x89, "DLT 40GB compressed" },
{ 0x8c, "EXB-8505 compressed" },
{ 0x90, "SDLT110 uncompr/EXB-8205 compr" },
{ 0x91, "SDLT110 compressed" },
{ 0x92, "SDLT160 uncompressed" },
{ 0x93, "SDLT160 comprssed" }
/* clang-format on */
};
#define NBR_DENSITIES (sizeof(density_tbl) / sizeof(struct densities))
@@ -270,25 +232,27 @@ static struct booleans {
unsigned long bitmask;
char *expl;
} boolean_tbl[] = {
{"buffer-writes", MT_ST_BUFFER_WRITES, "buffered writes"},
{"async-writes", MT_ST_ASYNC_WRITES, "asynchronous writes"},
{"read-ahead", MT_ST_READ_AHEAD, "read-ahead for fixed block size"},
{"debug", MT_ST_DEBUGGING, "debugging (if compiled into driver)"},
{"two-fms", MT_ST_TWO_FM, "write two filemarks when file closed"},
{"fast-eod", MT_ST_FAST_MTEOM, "space directly to eod (and lose file number)"},
{"auto-lock", MT_ST_AUTO_LOCK, "automatically lock/unlock drive door"},
{"def-writes", MT_ST_DEF_WRITES, "the block size and density are for writes"},
{"can-bsr", MT_ST_CAN_BSR, "drive can space backwards well"},
{"no-blklimits", MT_ST_NO_BLKLIMS, "drive doesn't support read block limits"},
{"can-partitions",MT_ST_CAN_PARTITIONS,"drive can handle partitioned tapes"},
{"scsi2logical", MT_ST_SCSI2LOGICAL, "logical block addresses used with SCSI-2"},
{"no-wait", MT_ST_NOWAIT, "immediate mode for rewind, etc."},
/* clang-format off */
{ "buffer-writes", MT_ST_BUFFER_WRITES, "buffered writes" },
{ "async-writes", MT_ST_ASYNC_WRITES, "asynchronous writes" },
{ "read-ahead", MT_ST_READ_AHEAD, "read-ahead for fixed block size" },
{ "debug", MT_ST_DEBUGGING, "debugging (if compiled into driver)" },
{ "two-fms", MT_ST_TWO_FM, "write two filemarks when file closed" },
{ "fast-eod", MT_ST_FAST_MTEOM, "space directly to eod (and lose file number)" },
{ "auto-lock", MT_ST_AUTO_LOCK, "automatically lock/unlock drive door" },
{ "def-writes", MT_ST_DEF_WRITES, "the block size and density are for writes" },
{ "can-bsr", MT_ST_CAN_BSR, "drive can space backwards well" },
{ "no-blklimits", MT_ST_NO_BLKLIMS, "drive doesn't support read block limits" },
{ "can-partitions", MT_ST_CAN_PARTITIONS, "drive can handle partitioned tapes" },
{ "scsi2logical", MT_ST_SCSI2LOGICAL, "logical block addresses used with SCSI-2" },
{ "no-wait", MT_ST_NOWAIT, "immediate mode for rewind, etc." },
#ifdef MT_ST_SYSV
{"sysv", MT_ST_SYSV, "enable the SystemV semantics"},
{ "sysv", MT_ST_SYSV, "enable the SystemV semantics" },
#endif
{"sili", MT_ST_SILI, "enable SILI for variable block mode"},
{"cleaning", MT_ST_SET_CLN, "set the cleaning bit location and mask"},
{NULL, 0, NULL}
{ "sili", MT_ST_SILI, "enable SILI for variable block mode" },
{ "cleaning", MT_ST_SET_CLN, "set the cleaning bit location and mask" },
{ NULL, 0, NULL }
/* clang-format on */
};
static char *tape_name; /* The tape name for messages */