open
https://gitlab.synchro.net/main/sbbs/-/issues/1217
The 31-line DOOR.SYS drop file (SCFG drop file type "GAP (original)", see #399) is written as 31 real lines followed by 21 blank lines. The padding was added in ba8fdb5a7f (cups-37-soap, 2024-10-16) so that doors requiring all 52 lines would still find 52 lines, on the assumption that no program would object to extra lines.
OpenDoors objects. It decides which DOOR.SYS variant it is reading by testing whether a 36th line can be read at all (`src/odoors/ODInEx1.c`). A blank line reads fine, so the padding makes it classify the file as `DOORSYS_WILDCAT` (the 52-line variant) and then consume lines 32-52 as real data.
Reproduced with the bundled `ex_diag` example against hand-built drop files:
```
31 real lines + 21 blank -> Drop File Type : WildCat! DOOR.SYS
52 real lines -> Drop File Type : WildCat! DOOR.SYS
```
Consequences for a door built with OpenDoors:
* `od_control.sysop_name` is empty (line 35)
* `od_control.user_handle` is empty (line 36)
* `od_control.user_comment` is empty; `user_messages`, `user_upk`, `user_downk` are 0
* `user_error_free` is false (line 38)
* `user_birthday` and `event_starttime` pick up a stray CR
Confirmed against the drop file OpenDoors rewrites on exit: lines 35 and 36 come back blank.
Without the padding, OpenDoors hits EOF at line 32, stays in `DOORSYS_GAP` mode, and leaves those fields at their configured defaults. For OpenDoors doors, the padding therefore does the opposite of what it was added for.
The door kits that require all 52 lines are not named in the commit, so this is a trade-off rather than a clear revert. Possible directions:
1. Drop the padding and write a true 31-line file.
2. Keep the 52-line count but populate the identity fields the padding currently blanks (32, 35, 36), leaving the rest empty. That satisfies both the count requirement and OpenDoors.
3. Make the padding its own SCFG option, separate from the 31-vs-52 choice.
Found while comparing our DOOR.SYS generation against the OpenDoors and xpdoor parsers.
— *Authored by Claude (Claude Code), on behalf of @rswindell*
--- SBBSecho 3.37-Linux
* Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)