Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Weiteren Fehler gefunden

4 views
Skip to first unread message

Helmut Schellong

unread,
May 30, 2022, 10:24:07 AM5/30/22
to
Eine Funktion 'ErweiterungsCheck()' hat für eine DOS-Umgebung gearbeitet.
Seit 1995 keine Probleme.
Aber nun gab es ein indirektes Problem mit './dir.s/exedatei'.
Die Zeichen ab '.s' wurden als Erweiterung aufgefaßt, und
dadurch wurde ein Puffer für die Erweiterung zu klein, was die
Funktion 'CatSn(n, puffer, ...)' bemerkte und den Prozeß abbrach.


--
Mit freundlichen Grüßen
Helmut Schellong v...@schellong.biz
http://www.schellong.de/c.htm http://www.schellong.de/c2x.htm http://www.schellong.de/c_padding_bits.htm
http://www.schellong.de/htm/bishmnk.htm http://www.schellong.de/htm/rpar.bish.html http://www.schellong.de/htm/sieger.bish.html
http://www.schellong.de/htm/audio_proj.htm http://www.schellong.de/htm/audio_unsinn.htm http://www.schellong.de/htm/tuner.htm
http://www.schellong.de/htm/string.htm http://www.schellong.de/htm/string.c.html http://www.schellong.de/htm/deutsche_bahn.htm
http://www.schellong.de/htm/schaltungen.htm http://www.schellong.de/htm/rand.htm http://www.schellong.de/htm/dragon.c.html

Stefan Reuther

unread,
May 30, 2022, 11:58:49 AM5/30/22
to
Am 30.05.2022 um 16:24 schrieb Helmut Schellong:
> Eine Funktion 'ErweiterungsCheck()' hat für eine DOS-Umgebung gearbeitet.
> Seit 1995 keine Probleme.
> Aber nun gab es ein indirektes Problem mit './dir.s/exedatei'.

Das ist ausgerechnet in einer DOS-Umgebung sogar ein gültiger Dateiname.
Hätte bei gescheiten Tests eher auffallen müssen.

> Die Zeichen ab '.s' wurden als Erweiterung aufgefaßt, und
> dadurch wurde ein Puffer für die Erweiterung zu klein, was die
> Funktion 'CatSn(n, puffer, ...)' bemerkte und den Prozeß abbrach.

Wie lange wird es brauchen, bis deine Funktionen lernen, was bei
/home/user/.emacs die "Erweiterung" ist?


Stefan

Helmut Schellong

unread,
May 30, 2022, 1:40:20 PM5/30/22
to
On 05/30/2022 17:47, Stefan Reuther wrote:
> Am 30.05.2022 um 16:24 schrieb Helmut Schellong:
>> Eine Funktion 'ErweiterungsCheck()' hat für eine DOS-Umgebung gearbeitet.
>> Seit 1995 keine Probleme.
>> Aber nun gab es ein indirektes Problem mit './dir.s/exedatei'.
>
> Das ist ausgerechnet in einer DOS-Umgebung sogar ein gültiger Dateiname.
> Hätte bei gescheiten Tests eher auffallen müssen.

Ja, die Funktion hatte Namen mit mehreren Punkten und Verzeichnisse
mit Punkten falsch verarbeitet.

>> Die Zeichen ab '.s' wurden als Erweiterung aufgefaßt, und
>> dadurch wurde ein Puffer für die Erweiterung zu klein, was die
>> Funktion 'CatSn(n, puffer, ...)' bemerkte und den Prozeß abbrach.
>
> Wie lange wird es brauchen, bis deine Funktionen lernen, was bei
> /home/user/.emacs die "Erweiterung" ist?
>
>
>

Ich definiere '.xyz' _nicht_ als Erweiterung.
Führende Punkte kennzeichnen unter Unix versteckte Namen.

Die Funktion 'ErweiterungsCheck()' prüft, ob eine Endung eine
definierte Abkürzung (ABBR) ist.
Also wohl etwas anderes als gedacht.

Helmut Schellong

unread,
May 31, 2022, 9:24:11 AM5/31/22
to
On 05/30/2022 19:40, Helmut Schellong wrote:
> On 05/30/2022 17:47, Stefan Reuther wrote:
>> Am 30.05.2022 um 16:24 schrieb Helmut Schellong:
>>> Eine Funktion 'ErweiterungsCheck()' hat für eine DOS-Umgebung gearbeitet.
>>> Seit 1995 keine Probleme.
>>> Aber nun gab es ein indirektes Problem mit './dir.s/exedatei'.
>>
>> Das ist ausgerechnet in einer DOS-Umgebung sogar ein gültiger Dateiname.
>> Hätte bei gescheiten Tests eher auffallen müssen.
>
> Ja, die Funktion hatte Namen mit mehreren Punkten und Verzeichnisse
> mit Punkten falsch verarbeitet.
>
>>> Die Zeichen ab '.s' wurden als Erweiterung aufgefaßt, und
>>> dadurch wurde ein Puffer für die Erweiterung zu klein, was die
>>> Funktion 'CatSn(n, puffer, ...)' bemerkte und den Prozeß abbrach.
>>
>> Wie lange wird es brauchen, bis deine Funktionen lernen, was bei
>> /home/user/.emacs die "Erweiterung" ist?
>>
>>
>>
>
> Ich definiere '.xyz' _nicht_ als Erweiterung.
> Führende Punkte kennzeichnen unter Unix versteckte Namen.
>
> Die Funktion 'ErweiterungsCheck()' prüft, ob eine Endung eine
> definierte Abkürzung (ABBR) ist.
> Also wohl etwas anderes als gedacht.
>
>

=======================================================================
static int ErwCk(const byte *Fn)
{ // ./d.d.d/f.e
byte erw[8];
const byte *fn=Fn, *p=0, *pe;
int n=0;

while (*fn) ++fn;
pe= fn;
while (fn>Fn) if (*--fn==PNT) { Fn= fn+1; break; }
else if (!p && *fn=='.') p= fn;

if (p && p>Fn && (pe-Fn)>=3 && (pe-p)>=2) {
CatSn(sizeof(erw), erw, p, NULL);
# if defined(DOS) || defined(W32) || defined(W64)
ToUpp(erw);
# endif
if (((n=NameRN(erw))&0xff)==ABBR) n+=256; else n=0;
}
return n;
}
=======================================================================

Ich vermute, ich habe bei der Entwicklung dieser Funktion angenommen, es
würden _nur_ Filenamen (fn, Fn) übergeben.
Weil ich 'pn, Pn' für Pfadnamen verwende.
Daher ist es zu einer teils fehlerhaften Verarbeitung gekommen.
Eben weil auch Pfadnamen übergeben werden.

Ich verlange oben als Minimum 'f.e' als Namen mit Endung.

Bonita Montero

unread,
Jun 1, 2022, 10:02:48 AM6/1/22
to
Am 30.05.2022 um 16:24 schrieb Helmut Schellong:
> Eine Funktion 'ErweiterungsCheck()' hat für eine DOS-Umgebung gearbeitet.
> Seit 1995 keine Probleme.

Ja, alle habens gesehen und dir nicht gesagt.
Wie peinlich. ;-)
0 new messages