TIP: Click on subject to list as thread! ANSI
echo: binkd
to: Oli
from: James Coyle
date: 2022-01-14 14:25:00
subject: Re: Problem with filename

 Ol>  JC> method was already in the wild and implemented.  That change doesn't
 Ol>  JC> magically make legacy software work differently.
 Ol> 
 Ol> sure ;-P
 Ol> 
 Ol>  Ol>  Ol>  Ol>  Ol>  Ol>  Ol>  Ol>  Ol>  Ol>  Ol>  Ol>  Ol>  Ol>  Ol>  Ol> https://github.com/pgul/binkd/blob/45986b77161a366ea3d258a01dad442d3d21d81

I can't figure out what you're trying to show there, but I don't think you know either.  Thats not the escaping code if that is what you're going for. This is:

char *strquote (char *s, int flags)
{
      ... (cut some stuff) ...
      sprintf (r + i, "\\x%02x", *(unsigned char *) s);
}

And at least in the version you're showing me, BINKD does not implement the per-connection option for legacy escaping as per the FTS update.  If it did, then Paul would not have the issue he's having and thus why I sent him in this direction.

Paul's issue cannot be solved unless BINKD is updated or his downlink changes software versions. There is literally nothing I can do to help him.  I don't care if BINKD wants to support escaping in legacy mode as per FTS or not personally.

And for the record.  Here's Mystic's code for this.  It more closely follows FTS in comparison to the link I just looked at which you sent, so I don't know what you're complaining about:

Function TBinkP.EscapeFileName (Const Str: String) : String;
{ Replace illegal characters with \## escaped sequences }
Const
  SafeChars  = ['!', '"', '#', '$', '%', '&', '''', '(', ')', '*', '+', ',',
                '-', '.', '/', ':', ';', '', '?', '@', '[', ']',
                '^', '_', '`', '{', '}', '~'];
  AlphaChars = ['0'..'9','A'..'Z','a'..'z'];
Var
  Count : Byte;
Begin
  Result := '';

  For Count := 1 to Length(Str) Do
    If (Str[Count] in SafeChars) or (Str[Count] in AlphaChars) Then
      Result := Result + Str[Count]
    Else
      { 0=Original BINKP (Argus, IREX, Amiga) }
      { 1=Updated (Post 2010+ FTS updates ie BINKD uses this) }
      Case EscapeMode of
        1 : Result := Result + '\x' + strI2H(Byte(Str[Count]), 2);
      Else
        Result := Result + '\' + strI2H(Byte(Str[Count]), 2);
      End;
End;

... One tequila, two tequila, three tequila, floor.

--- Mystic BBS v1.12 A48 2022/01/14 (Windows/64)
                   
* Origin: Sector 7 * Mystic WHQ (1:129/215)

SOURCE: echomail via QWK@pharcyde.org

Email questions or comments to sysop@ipingthereforeiam.com
All parts of this website painstakingly hand-crafted in the U.S.A.!
IPTIA BBS/MUD/Terminal/Game Server List, © 2025 IPTIA Consulting™.