home bbs chatroom files | messages | login ]

      FSYNC194             SYNC_SYSOPS             32000 messages      

[ list messages | list forums | previous | next ]

  Msg # 32784 of 32822 on FSYNC194, Sunday 8-08-26, 8:29  
  From: ROB SWINDELL  
  To: GITLAB ISSUE IN MAIN/SBBS  
  Subj: 31-line DOOR.SYS: blank-line padding mak  
  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)  
     

[ list messages | list forums | previous | next ]

352,370 visits
(c) 1994,  bbs@darkrealms.ca