H
Helmut Schellong
Guest
Am 25.09.2023 um 21:35 schrieb Sieghard Schicktanz:
Ich habe für meine C-Bücher vom Verlag Springer-Vieweg mehrere Beautifier getestet
und Testcode in meinen Büchern konkret dargestellt.
Fehlerhafte Umwandlungen, wie Du sie vorstehend schilderst, sind mir gänzlich unbekannt.
Beautifier, die ihren Namen verdienen, parsen C-Quellen und zerlegen sie in Token, die
anschlieÃend anders als zuvor mit sie umgebenden \'White space\' versehen werden.
Da können solche Fehler, wie Du es schilderst, gar nicht vorkommen.
Ein solches Programm darf doch keine Token ( hinzufügen, die zuvor gar nicht existierten!
https://www.gnu.org/software/indent/manual/indent.pdf
Ich habe soeben .\\indent -orig function.c (Win-.exe) aufgerufen:
===============================================================================================
#if defined(F_memset8) && !defined(DF_memset8) && !defined(memset8)
# define DF_memset8
fSTATIC void *memset8(void *d0, int v0, size_t n0)
{
byte *d, *de;
if (n0) { d=d0;
if (n0>=16) { uint64_t v; size_t n;
n= 8-((uintptr_t)d&7);
if (n<8) { de=d+n; n0-=n;
do *d= (byte)v0; while (++d<de);
}
v=(byte)v0; v|= v<<8; v|= v<<16; v|= v<<32;
de= d+(n0&~(size_t)7);
do *(uint64_t*)d= v; while (d+=8, d<de);
if (n=n0&7, n) { de=d+n;
do *d= (byte)v0; while (++d<de);
}
}
else { de=d+n0;
do *d= (byte)v0; while (++d<de);
}
}
return d0;
}
#endif
===============================================================================================
#if defined(F_memset8) && !defined(DF_memset8) && !defined(memset8)
# define DF_memset8
fSTATIC void *
memset8(void *d0, int v0, size_t n0)
{
byte *d,
*de;
if (n0) {
d = d0;
if (n0 >= 16) {
uint64_t v;
size_t n;
n = 8 - ((uintptr_t) d & 7);
if (n < 8) {
de = d + n;
n0 -= n;
do
*d = (byte) v0;
while (++d < de);
}
v = (byte) v0;
v |= v << 8;
v |= v << 16;
v |= v << 32;
de = d + (n0 & ~(size_t) 7);
do
*(uint64_t *) d = v;
while (d += 8, d < de);
if (n = n0 & 7, n) {
de = d + n;
do
*d = (byte) v0;
while (++d < de);
}
} else {
de = d + n0;
do
*d = (byte) v0;
while (++d < de);
}
}
return d0;
}
#endif
===============================================================================================
--
Mit freundlichen GrüÃen
Helmut Schellong
Hallo Helmut,
Du schriebst am Sun, 24 Sep 2023 22:49:24 +0200:
[\"Beautifier\"].
Es war schon immer egal, wie /schlecht/ jemandes Code-Stil (angeblich)
ist. Nur Sekunden dauert es, dies zu reparieren, nach eigenem Geschmack.
Es wird aber so getan, als gäbe es diese Möglichkeit nicht.
Man schimpft, wenn jemand es wagt, einen anderen Code-Stil zu haben, als
man selbst.
Und zu recht: Es besteht dabei halt _immer_ die Gefahr, daà ein solcher
\"Beautifier\" neben der Umformatierung noch anderes am Code ändert. Anderes,
das zwar nicht beabsichtigt war, aber u.U. den Code so ändert, daà er nicht
mehr tut, was er sollte. Z.B. ein alleinstehendes \"if (...)\" mit einem \";\"
\"sauber\" abzuschlieÃen...
Ich habe für meine C-Bücher vom Verlag Springer-Vieweg mehrere Beautifier getestet
und Testcode in meinen Büchern konkret dargestellt.
Fehlerhafte Umwandlungen, wie Du sie vorstehend schilderst, sind mir gänzlich unbekannt.
Beautifier, die ihren Namen verdienen, parsen C-Quellen und zerlegen sie in Token, die
anschlieÃend anders als zuvor mit sie umgebenden \'White space\' versehen werden.
Da können solche Fehler, wie Du es schilderst, gar nicht vorkommen.
Ein solches Programm darf doch keine Token ( hinzufügen, die zuvor gar nicht existierten!
https://www.gnu.org/software/indent/manual/indent.pdf
Ich habe soeben .\\indent -orig function.c (Win-.exe) aufgerufen:
===============================================================================================
#if defined(F_memset8) && !defined(DF_memset8) && !defined(memset8)
# define DF_memset8
fSTATIC void *memset8(void *d0, int v0, size_t n0)
{
byte *d, *de;
if (n0) { d=d0;
if (n0>=16) { uint64_t v; size_t n;
n= 8-((uintptr_t)d&7);
if (n<8) { de=d+n; n0-=n;
do *d= (byte)v0; while (++d<de);
}
v=(byte)v0; v|= v<<8; v|= v<<16; v|= v<<32;
de= d+(n0&~(size_t)7);
do *(uint64_t*)d= v; while (d+=8, d<de);
if (n=n0&7, n) { de=d+n;
do *d= (byte)v0; while (++d<de);
}
}
else { de=d+n0;
do *d= (byte)v0; while (++d<de);
}
}
return d0;
}
#endif
===============================================================================================
#if defined(F_memset8) && !defined(DF_memset8) && !defined(memset8)
# define DF_memset8
fSTATIC void *
memset8(void *d0, int v0, size_t n0)
{
byte *d,
*de;
if (n0) {
d = d0;
if (n0 >= 16) {
uint64_t v;
size_t n;
n = 8 - ((uintptr_t) d & 7);
if (n < 8) {
de = d + n;
n0 -= n;
do
*d = (byte) v0;
while (++d < de);
}
v = (byte) v0;
v |= v << 8;
v |= v << 16;
v |= v << 32;
de = d + (n0 & ~(size_t) 7);
do
*(uint64_t *) d = v;
while (d += 8, d < de);
if (n = n0 & 7, n) {
de = d + n;
do
*d = (byte) v0;
while (++d < de);
}
} else {
de = d + n0;
do
*d = (byte) v0;
while (++d < de);
}
}
return d0;
}
#endif
===============================================================================================
--
Mit freundlichen GrüÃen
Helmut Schellong