• src/doors/clans-src/docs/

    From Deuc¿@VERT to Git commit to main/sbbs/m on Wednesday, October 15, 2025 14:53:00
    https://gitlab.synchro.net/main/sbbs/-/commit/e2bb9bed07d624931d9b636e
    Added Files:
    src/doors/clans-src/docs/clans.txt
    Log Message:
    Rename "doc" to clans.txt

    This is the sysop guide, so we'll maybe rename it again.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/m on Wednesday, October 15, 2025 19:45:00
    https://gitlab.synchro.net/main/sbbs/-/commit/709391d288b3925cb297d6e8
    Added Files:
    src/doors/clans-src/docs/WhatsNew.txt gpl.txt
    Log Message:
    Move stuff into docs and clean out the top level directory

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/m on Tuesday, October 21, 2025 23:26:00
    https://gitlab.synchro.net/main/sbbs/-/commit/635fe6d20e37ce40bea4ba42
    Added Files:
    src/doors/clans-src/docs/ibbs-notes.txt
    Modified Files:
    src/doors/clans-src/src/GNUmakefile config.c door.c empire.c ibbs.c mail.c menus.c menus2.c myibbs.c quests.c reg.c reset.c scores.c structs.h system.c system.h user.c village.c
    Log Message:
    Allow multiple inbound directories

    Some systems are configured to put inbound files with a password
    into separate directories than ones without. For those systems,
    if the routing is configured as Direct (the default), it's likely
    that some will be password-protected (ie: with an uplink) and others
    won't be (ie: some rando across the planet).

    In these cases, either some processing would be needed to move all
    appropriate files somewhere for The Clans to process, or The Clans
    needs to be able to support at least two different inbound directories.

    Because I don't know how everyone has their FTN stuff configured,
    I just make it so you can configure an unlimited number of inbounds
    by just adding more lines to the config file. The config *utility*
    does not yet support this, and only allows setting/editing the first
    one.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/m on Wednesday, October 22, 2025 19:27:00
    https://gitlab.synchro.net/main/sbbs/-/commit/4335de5cb8dd11bfb51fd24f
    Modified Files:
    src/doors/clans-src/docs/ibbs-notes.txt src/doors/clans-src/src/ibbs.c interbbs.h myibbs.c myibbs.h system.c
    Log Message:
    Fix race condition creating .msg file, add MAIL_NONE

    We now use O_EXCL when creating the .msg file to solve that common
    race condition.

    Also, add a new MAIL_NONE type for when a mailer isn't used and
    the *.msg files don't need to be created or deleted.

    Use MAIL_NONE for the Local IBBS method. This allows us to delete
    a large chunk of code that only really existed to delete .msg files.

    The config utility will need to be updated to support this new type
    since it will make running IBBS without FTN a bit easier.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/m on Tuesday, October 28, 2025 10:29:00
    https://gitlab.synchro.net/main/sbbs/-/commit/f25d4ab153513051c14c8337
    Added Files:
    src/doors/clans-src/docs/test.txt
    Removed Files:
    src/doors/clans-devkit/ARMY.HLP BUILD.HLP BULLETIN.HLP CHURCH.EVT CITIZEN.HLP CLANS.HLP CLANS.PAK CLASSES.TXT COMBAT.HLP EMPIRE.HLP EVA.TXT EVENTMON.TXT FORT.HLP GENALL.BAT ITEMS.HLP ITEMS.TXT LIST.ASC MENUS.HLP MONSTERS.TXT Makefile NEWBIE.HLP NPC-PC.TXT NPCQUOTE.TXT NPCS.TXT PAK.LST PG.ASC PRAY.EVT PXNEWS.ASC PXTIT.ASC QUESTS.EVT QUESTS.HLP RACES.HLP RACES.TXT RESET.HLP RULER.HLP SCHEMES.TXT SECRET.EVT SPELLS.HLP SPELLS.TXT STATS.HLP STRATEGY.HLP STRINGS.TXT VILLAGE.HLP WAR.HLP WIZARD.HLP chew.c chew.txt clandev.txt classes.dat defines.h ecomp.c ecomp.txt install.c keywords.h langcomp.c langcomp.txt makenpc.c makepak.c makepak.txt mclass.c mclass.txt mcomp.c mcomp.txt mitems.c mitems.txt mspells.c notes.txt races.dat structs.h src/doors/clans-devkit/unix/Makefile src/doors/clans-devkit/win32/chew.dsp chew.ncb chew.opt chew.plg devkit.dsw devkit.ncb devkit.opt ecomp.dsp ecomp.plg install.dsp install.plg langcomp.dsp langcomp.plg makenpc.dsp makenpc.plg makepak.dsp makepak.plg mclass.dsp mclass.plg mcomp.dsp mcomp.plg mitems.dsp mitems.plg mspells.dsp mspells.plg
    Log Message:
    Remove clans-devkit

    This is all rolled into clans-src (test.txt was unique to devkit,
    copied over to docs dir)

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/m on Monday, March 02, 2026 13:04:00
    https://gitlab.synchro.net/main/sbbs/-/commit/f0bdd23a2d6021e869ba35f4
    Modified Files:
    src/doors/clans-src/docs/notes.txt
    Removed Files:
    src/doors/clans-src/data/build.hlp
    Log Message:
    Remove unused file

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/m on Saturday, March 07, 2026 22:13:00
    https://gitlab.synchro.net/main/sbbs/-/commit/b7602c8c5307308d084790d4
    Modified Files:
    src/doors/clans-src/docs/ibbs-notes.txt notes.txt todo.txt src/doors/clans-src/release/clans.doc whatsnew.txt
    Removed Files:
    src/doors/clans-src/docs/WhatsNew.txt convert.txt docs.txt files.lst schemes.txt test.txt
    Log Message:
    Here's the real reason to use Claude... I'm too lazy to document stuff.

    Claude on the other hand does more or less what I say, so has no
    choice. but to do my bidding.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/m on Sunday, March 08, 2026 18:53:00
    https://gitlab.synchro.net/main/sbbs/-/commit/742017b580e54f5b32359154
    Modified Files:
    src/doors/clans-src/docs/todo.txt
    Log Message:
    Document help file accuracy issues in todo.txt [1.3-1.9]

    Adds seven new open issues found by reviewing all data/*.hlp files
    against the current source code:

    [1.3] stats.hlp ^Charisma description outdated (depends on [1.1])
    [1.4] ruler.hlp ^Show Empire Stats describes dead/commented-out feature
    [1.5] newbie.hlp ^Town Hall references removed farms mechanic
    [1.6] newbie.hlp ^Combat omits the HP < -5 mortal-wound threshold
    [1.7] ruler.hlp ^Vault mentions removed popularity mechanic; missing
    3-withdrawal/day cap
    [1.8] clans.hlp ^Beta Note lists implemented features as coming soon
    [1.9] bulletin.hlp contains stale changelogs and defunct BBS/game ads

    Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/m on Monday, March 09, 2026 15:11:00
    https://gitlab.synchro.net/main/sbbs/-/commit/83c84f057bdc817eec49de97
    Added Files:
    src/doors/clans-src/docs/meta.md src/doors/clans-src/installer/upgrade.txt src/doors/clans-src/release/clans.txt prompt.md questgen.txt
    Modified Files:
    src/doors/clans-src/CLAUDE.md src/doors/clans-src/docs/notes.txt src/doors/clans-src/installer/install.ini src/doors/clans-src/release/news.txt
    Removed Files:
    src/doors/clans-src/quests/meta.md
    Log Message:
    Move quest-gen files to release/docs; rename .doc->.txt; add doc sections

    File moves:
    - quests/generating.txt -> release/questgen.txt
    - quests/prompt.md -> release/prompt.md
    - quests/meta.md -> docs/meta.md (path reference updated)
    - installer/upgrade.doc -> installer/upgrade.txt
    - release/clans.doc -> release/clans.txt

    release/clans.txt additions:
    - [1.1] lockout.txt, clanad.ans, whatsnew.txt, questgen.txt paragraphs
    - [1.1b] news.txt paragraph; route.smp mention in [1.5]
    - [1.8] TOC entries for new sections
    - [1.9] Color Codes and Text Formatting (pipe, backtick, theme, %-codes)

    docs/notes.txt additions:
    - [0.1] cross-reference to docs/meta.md and release/prompt.md
    - [5.5] Internal %-codes (%SS, %SD, %SV, %Z) with TOC entry
    - [7.2] AI quest artifact entries (questgen.txt, prompt.md)

    release/prompt.md:
    - Add %V code and game-state substitution codes section

    installer/install.ini:
    - Update .doc -> .txt references (upgrade.doc, clans.doc)

    CLAUDE.md:
    - Add documentation audiences table and three-tier model
    - Rename/split format section; update canonical examples

    release/news.txt:
    - Remove trailing %P from template

    Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/m on Tuesday, March 10, 2026 02:27:00
    https://gitlab.synchro.net/main/sbbs/-/commit/72181454259b5e65ea12525c
    Modified Files:
    src/doors/clans-src/docs/todo.txt
    Log Message:
    Add Charisma vote tie-breaking suggestion to todo [1.1]

    Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/m on Tuesday, March 10, 2026 16:55:00
    https://gitlab.synchro.net/main/sbbs/-/commit/d3d122400e99f202e3c54638
    Added Files:
    src/doors/clans-src/docs/utf8.txt src/doors/clans-src/src/tests/test_u8cp437.c src/doors/clans-src/src/u8cp437.c u8cp437.h
    Modified Files:
    src/doors/clans-src/devkit/clandev.txt src/doors/clans-src/docs/todo.txt src/doors/clans-src/src/GNUmakefile ecomp.c langcomp.c makenpc.c makepak.c mclass.c mcomp.c mitems.c mspells.c src/doors/clans-src/src/tests/GNUmakefile
    Log Message:
    Add UTF-8 source file support to all devkit compilers and makepak

    Devkit authors can now write source files (.evt, .txt, .lst, etc.) in UTF-8 instead of CP437 by naming them with `.u8.` before the final extension (e.g., `myquest.u8.evt`). The compilers detect the convention and convert each line from UTF-8 to CP437 at compile time; output is byte-identical to native CP437 input. Smart quotes and other unmapped codepoints produce clear errors with file name and line number.

    New shared module: u8cp437.c/h with u8_fopen() and u8_fgets() wrappers.
    39 unit tests cover the conversion table, fopen detection, fgets integration, and error paths.

    Modified tools: langcomp, mcomp, mitems, mspells, mclass, ecomp, makenpc, makepak. Build verified clean (zero warnings) with all 271 unit tests and
    364 integration tests passing.

    Documentation: new section [0.3] in clandev.txt, cross-references in all 8
    tool sections, complete 176-entry mapping table in docs/utf8.txt, and todo entries [1.9]-[1.11].

    Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/m on Tuesday, March 10, 2026 22:16:00
    https://gitlab.synchro.net/main/sbbs/-/commit/086e05cdb67533aabe108029
    Added Files:
    src/doors/clans-src/docs/ansi.md
    Log Message:
    The beginnings of a prompt for ANSI generation.

    Currently it requires a fair bit of iteration with the model, so
    not ready to integrate into the quest generator.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/m on Wednesday, March 11, 2026 12:56:00
    https://gitlab.synchro.net/main/sbbs/-/commit/492db44e5b8df1c79e03054a
    Modified Files:
    src/doors/clans-src/docs/todo.txt src/doors/clans-src/src/alliancem.c chew.c clans.c clansini.c class.c deserialize.c door.c ecomp.c empire.c event.c fight.c help.c ibbs.c input.c items.c mail.c menus.c menus2.c mspells.c myibbs.c myopen.c npc.c pawn.c pcedit.c quests.c readcfg.c reg.c reset.c scores.c serialize.c spells.c user.c video.c village.c
    Log Message:
    Remove commented-out code from src/*.c

    Deleted 390+ lines of dead code: debug printf/od_printf/rputs calls,
    obsolete conditions, old hardcoded strings replaced by language macros,
    two #if 0-gated sizing-tool main() functions in serialize.c and
    deserialize.c, and inline variable comments. Updated docs/todo.txt
    with new entry [1.10] for mail expiry FIXME.

    All builds (debug, release, devkit, Windows cross-builds) succeed with
    zero warnings. Unit tests (194 passed) and integration tests (160 passed) confirm no behavioral changes.

    Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/m on Wednesday, March 11, 2026 13:13:00
    https://gitlab.synchro.net/main/sbbs/-/commit/c2e7853607e96a0ced372ffd
    Modified Files:
    src/doors/clans-src/docs/todo.txt src/doors/clans-src/src/install.c
    Log Message:
    Fix install rename prompt length limit (todo [1.4])

    Replace legacy 13-character (MAX_FILENAME_LEN) limit on rename prompts with PATH_CHARS (511 characters) to support modern long filenames on POSIX systems.

    Changes:
    - GetGUM() rename prompt (line 386): use PATH_CHARS instead of MAX_FILENAME_LEN - upgrade() Extract rename prompt (line 780): use PATH_CHARS instead of MAX_FILENAME_LEN
    - upgrade() unix block buffer (line 480): enlarge fscanf buffer to PATH_SIZE
    to prevent overflow when reading filenames from UnixAttr.DAT

    Remove completed todo item [1.4] from docs/todo.txt.

    Build verified: gmake -j8 game completes without warnings or errors.

    Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/m on Wednesday, March 11, 2026 13:46:00
    https://gitlab.synchro.net/main/sbbs/-/commit/5bb710e1acaaf1263c0ac1cc
    Modified Files:
    src/doors/clans-src/docs/todo.txt src/doors/clans-src/src/install.c
    Log Message:
    Fix install silent truncation warnings (todo [1.5])

    Expand szGumName and szIniName buffers from 25 to PATH_SIZE (512) to
    prevent silent truncation of filenames longer than 24 characters.

    Count and warn on manifest entries beyond the MAX_FILES limit instead
    of silently dropping them. Reports exact count using proper singular/
    plural grammar.

    Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/m on Thursday, March 12, 2026 15:23:00
    https://gitlab.synchro.net/main/sbbs/-/commit/a098176c0c79e92854180254
    Added Files:
    src/doors/clans-src/docs/functions.md testability.md
    Log Message:
    Add exhaustive source code audit documentation: functions.md and testability.md

    Comprehensive two-pass audit of all 61 src/*.c files:

    Pass 1 (Direct Analysis): 32 batches analyzed ~481 functions
    - Each function documented with prototype, description, and internal call list - Direct I/O and global variable access flagged (7 properties tracked)
    - Functions categorized by I/O profile for testability assessment

    Pass 2 (Transitive Closure): Propagated flags through call graph
    - Built 409-function call dependency graph from functions.md
    - Computed transitive I/O/global flags through 5 iterations to convergence
    - Each function now shows all I/O categories it touches (directly or indirectly)

    Deliverables:
    - docs/functions.md: 59 file sections, 400+ functions with call lists
    - docs/testability.md: 481 functions with transitive I/O/global property matrix

    Columns tracked: Disk Write, Disk Read, User Input, User Output, my_random, Read Global, Write Global

    Enables understanding of testability requirements and identifying pure functions,
    high-I/O bottlenecks, and state management patterns across the codebase.

    Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/m on Friday, March 13, 2026 00:38:00
    https://gitlab.synchro.net/main/sbbs/-/commit/a88af652075c1e301323f59a
    Modified Files:
    src/doors/clans-src/docs/functions.md testability.md src/doors/clans-src/src/alliance.c alliancem.c chew.c platform.h unix_wrappers.c win_wrappers.c win_wrappers.h
    Log Message:
    Finalize testability.md with D/T annotations and Non-C17 column

    - Convert all Y entries in I/O columns to D (direct) or T (transitive):
    * D: function directly invokes the operation (od_*, cio_getch, printf, etc.)
    * T: function reaches the operation through a callee
    * Corrected 44 User Input functions (DT) and 95 User Output functions (DT)
    * Converted langcomp.c main Read Global/Write Global from Y to D

    - Add Non-C17 column indicating use of non-C17 standard features
    (POSIX, Win32, OpenDoors, etc.)
    * 39 functions marked as using non-C17 features
    * Remaining 39 Y entries are all in Non-C17 column (correct)

    - Expand functions.md with complete documentation for 6 new files:
    * serialize.c: 34 s_*_s serialization functions
    * deserialize.c: 34 s_*_d deserialization functions
    * items.c: 20 inventory/equipment/trading/spell functions
    * menus2.c: 4 member management functions
    * myopen.c: 4 encryption/file I/O functions
    * u8cp437.c: 3 UTF-8/CP437 conversion functions

    - Refactor cross-platform file deletion to use plat_DeleteFile wrapper:
    * alliance.c: KillAlliances, KillAlliance
    * alliancem.c: KillAlliance
    * chew.c: main (GUM file handling)

    All 67 source file sections now fully documented in testability.md.
    No remaining Y entries in data columnsÄall converted to D/T.

    Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/m on Friday, March 13, 2026 00:38:00
    https://gitlab.synchro.net/main/sbbs/-/commit/4b7440c2745009b685114294
    Modified Files:
    src/doors/clans-src/docs/functions.md testability.md src/doors/clans-src/src/ibbs.c install.c mail.c maint.c myibbs.c npc.c pcedit.c reset.c semfile.c system.c trades.c unix_wrappers.c user.c
    Log Message:
    Working to get all non-C17 "stuff" into platform wrappers

    The biggest one is unlink()... rename to plat_DeleteFile().

    Also, the Haiku model isn't up to this work... I'll have Sonnet
    take a look after my weekly quota refreshes. :(

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/m on Saturday, March 14, 2026 23:32:00
    https://gitlab.synchro.net/main/sbbs/-/commit/a97a0162f84880adb4aa39c0
    Added Files:
    src/doors/clans-src/docs/gtest.txt src/doors/clans-src/src/gtest.c scripteng.c scripteng.h src/doors/clans-src/tests/fixtures/gtest/autofight.script src/doors/clans-src/tests/test_gtest.sh
    Modified Files:
    src/doors/clans-src/GNUmakefile src/doors/clans-src/mk/Paths.gmake src/doors/clans-src/src/GNUmakefile console.c console.h qtest.c src/doors/clans-src/tests/GNUmakefile
    Log Message:
    Add gtest: script-driven combat integration test tool

    Extract shared script engine from qtest.c into scripteng.c/scripteng.h
    so both tools reuse the same Type=value script format, hook callbacks,
    and error handling. Add hook_get_key (Key= type) for raw keystroke
    scripting. Add Console_SetGetKeyHook to console.c.

    Create gtest.c -- a standalone binary that links the real combat engine (fight.c, spells.c, items.c, class.c) against mock stubs for the rest
    of the game (user.c, news.c, mail.c, ibbs.c, etc.). Supports two
    commands:

    -c autofight AI-controlled combat against a test goblin
    -c levelup Level-up check with preset XP values

    Random control: -r VALUE (fixed mod, fully deterministic), -R SEED
    (seeded PRNG), or neither (unseeded rand). State summary printed to
    stderr for test assertions.

    Add TEST_BINARIES list in mk/Paths.gmake for developer-only test tools
    (not shipped with game or devkit).

    Add 21 integration tests in tests/test_gtest.sh covering argument
    validation, autofight at multiple levels, deterministic reproducibility
    with -r, gold arguments, and level-up verification.

    Add docs/gtest.txt with usage, script format, and architecture docs.

    Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net