1. 08 Jul, 2019 1 commit
    • rswindell's avatar
      Moved cp437_unicode_tbl and unicode_is_zerowidth() to (new file) unicode.c. · 1340f563
      rswindell authored
      New function (derived from sbbs_t::utf8_to_cp437()): unicode_to_cp437()
      New utf8 functions: utf8_replace_chars(), utf8_str_is_valid().
      utf8_getc() enhancement: val arg may be NULL (for length/validation uses).
      
      Convert quoted UTF-8 message text to CP437 when terminal is not UTF8.
      
      Set Fido CHRS: UTF-8 header field when posted message is UTF-8.
      1340f563
  2. 07 Jul, 2019 1 commit
  3. 09 May, 2019 1 commit
    • rswindell's avatar
      Support bright background colors: · 48e7520e
      rswindell authored
      - for PETSCII, this is automatic and you don't lose blink, but you do lose
        colored foreground when enabling a bright background ("reverse video")
      - for ANSI, this mode is typically referred to as "iCE colors" and disables
        blinking-text support
      - Ctrl-AE (^AE) is the new attribute code to enable bright-background
        (will have no effect on ANSI terminals that are not iCE color enabled)
        "E" is now valid in the ctrl/attr.cfg file and string values for JS
        console.attributes assignments, as well
      - Ctrl-AI (^AI) - blink - now does nothing for ANSI/ICE color terminals
        (blinking is not supported in combination with bright-background)
      - Using a new/non-standard CGA attribute bit-flag to indicate the selection of
        bright-background colors (BG_BRIGHT, bit 10), separate from BLINK.
        This change required all/most char/uchar attribute representations to be
        converted to int/uint.
      
      New text.dat strings:
      - PetTerminalDetected (renamed from PetTermDetected)
      - PetTerminalQ
      - TerminalAutoDetect
      - TerminalColumns
      - TerminalRows
      - TerminalMonochrome
      - TerminalColor
      - TerminalIceColor
      - IceColorTerminalQ
      This also moved the MsgCarbonCopyList definition to the end of the file
      for now.
      
      PETSCII reverse-video attribute fix:
      When a CR is sent to the terminal, the reverse-video attibute is auto-disabled
      so update our "current attribute" (curatr) value to match the remote.
      
      Support new printfile/putmsg mode flag: P_WRAP to force an ungraceful
      line-wrap (splitting) to the specified column width. If no column width is
      specified (0), then this mode will force an ungraceful wrap before the last
      terminal column where some terminals *may* auto-wrap.
      
      JS console.printfile() and printtail() methods now support an optional
      "orig_columns" argument, similar to console.putmsg(). Must specify P_WORDWRAP
      or P_WRAP for this argument to have any effect.
      
      Much improved terminal-type selection/configuration in the user defaults
      menu and abort (^C) at any of the yes/no prompts is now detected/handled much
      better (to answers to the prompted questions are not saved to the user
      settings).
      48e7520e
  4. 08 Feb, 2019 1 commit
    • rswindell's avatar
      Add/use new function findstr_list() which opens and returns a string list · 32051b32
      rswindell authored
      suitable for passing to findstr_in_list().
      SBBSecho peformance improvement: don't open/read the twitlist.cfg file for
      *each* imported message: just read it once during initialization (using the new
      findstr_list() function of course).
      Reversed course on the findstr()/trashcan() matching logic: significant leading
      white-space was not backwards compatible (and was the cause of recent lost
      messages in DOVE-Net) - so I decided to go a different route and support
      C-style character escape sequences (e.g. \r, \n, \t, \x##, etc.) in findstr
      comparison strings, so the new way to represent a leading space character
      in a filter file (e.g. twitlist.cfg, name.can) would be: "\ ". So to match (e.g.
      filter/disallow) all strings with a leading space: "\ *". "\x20 *" would also
      work (0x20 is ASCII for "space").
      Now, again, leading white-space in filter files (e.g. text/*.can, twitlist.cfg)
      is ignored. <sigh>
      32051b32
  5. 04 Feb, 2019 1 commit
  6. 01 Feb, 2019 1 commit
  7. 11 Jan, 2019 1 commit
    • rswindell's avatar
      A partial retraction of the Ctrl-AZ interpretation changes introduced on · b2412964
      rswindell authored
      Oct-14-2018:
      It turns out, PabloDraw actually inserts a Ctrl-AZ sequence at the end of .msg
      (and presumably Synchronet .asc) files it edits - before the SAUCE record.
      This resulted in a printed Ctrl-Z character (arrow pointing right) in most
      terminals when viewing text/menu files created or edited with PabloDraw. :-(
      So, now Ctrl-AZ (uppercase) will revert to the previous definition:
      premature end-of-file (EOF)
      and a Ctrl-Az (lowercase) will output a Ctrl-Z (substitute) character.
      I'm not a big fan of case-sensitive Ctrl-A codes, but frankly, running out of
      chars and I already started this pattern with the Ctrl-AF/f sequences.
      Hopefully there's no existing software that is/was putting Ctrl-Az (lowercase)
      in files, expecting that to trigger a premature EOF. I certainly was not.
      b2412964
  8. 15 Oct, 2018 1 commit
  9. 28 Oct, 2017 1 commit
  10. 10 Feb, 2017 1 commit
    • rswindell's avatar
      Added IPv4 CIDR notation support to all filter (*.can) files via the functions: · 26524908
      rswindell authored
      findstr() and findstr_in_list().
      This means that rather than listing an IP address range using the traditional
      wildcard characters (e.g. "192.168.1.*"), you could specify a subnet range
      using CIDR notation (e.g. "192.168.1.0/24").
      The '!' prefix is supported for CIDR match lines (for negated match results),
      but no other wildcard/match characters are (e.g. '^', '~', or '*').
      You can mix and match traditional match lines and CIDR match lines in the same
      filter file.
      IPv6 CIDR notation is not yet supported.
      26524908
  11. 29 Nov, 2016 1 commit
  12. 30 Jun, 2012 2 commits
  13. 17 Jun, 2012 1 commit
  14. 24 Oct, 2011 1 commit
  15. 07 Jun, 2010 1 commit
  16. 25 Feb, 2010 1 commit
  17. 18 Sep, 2009 1 commit
  18. 19 Mar, 2009 1 commit
  19. 21 Feb, 2009 1 commit
  20. 16 Feb, 2009 3 commits
    • rswindell's avatar
    • rswindell's avatar
      Renamed validattr() to valid_ctrl_a_attr(). · f1e13988
      rswindell authored
      Created valid_ctrl_a_code() which returns TRUE if the passed ctrl-a code is
      valid (safe) for message networking, user input.
      Only QWK-export valid ctrl-a codes.
      f1e13988
    • rswindell's avatar
      Major over-haul of smb_util.c and most everything that uses it: · 17ab641b
      rswindell authored
      Constified the arguments.
      Created exascii_to_ascii_char().
      Created ctrl_a_to_ascii_char().
      strip_ctrl() and prep_file_desc() now takes 2 args.
      strip_ctrl(), strip_exascii() and prep_file_desc() now strdup() the input
      string and if the dest arg is NULL, returns the allocated and modified copy.
      sbbs_t::bputs() now handles ^AZ.
      Change Ctrl-A code message network exporting:
      1. ^AL, ^A<, ^A[, and ^A] are always translated to ASCII equivalents.
      2. ^AZ will terminate the message body prematurely if found.
      3. Ex-ASCII (CP437) chars will be translated to ASCII equivalents (rather than
      '*') for "ASCII Only" subs.
      For import, don't allow Ctrl-AP or Ctrl-AL.
      For SBBSecho:
      Added support for specifying a link's address on the command-line (e.g. for
      use with -h).
      Mail server now strips Ctrl-A codes from message bodies for sending via POP3
      or SMTP.
      17ab641b
  21. 26 Feb, 2008 1 commit
  22. 25 Feb, 2008 2 commits
    • rswindell's avatar
    • rswindell's avatar
      The Big Commit: · 73134a2c
      rswindell authored
      * Parses/consumes QWK headers.dat files
        - No more to/from/subj length limits
        - Extensive header details transferred for each message
        - IP/hostname filters (.can files) are applied to appropriate header fields
        - Code cleanup in the QWK functions
      * New functions to read/parse/search filter (.can) files as string lists
        - Performance boost - no need to open/read/close .can file for each message
      * More thread-safe Message-ID retrieval/generation (ftn_msgid and get_msgid)
      * Better Message-ID generation for misconfigured systems (e.g. no hostname)
      ! These changes require the latest smblib and xpdev libraries !
      73134a2c
  23. 26 Jan, 2006 1 commit
  24. 13 Jan, 2006 2 commits
  25. 12 Jan, 2006 2 commits
  26. 11 Sep, 2004 1 commit
  27. 08 Sep, 2004 1 commit
  28. 27 Aug, 2004 1 commit
  29. 30 May, 2004 1 commit
  30. 28 Aug, 2003 1 commit
  31. 09 Jul, 2003 2 commits
  32. 03 Jul, 2003 1 commit
  33. 14 Jun, 2003 1 commit