Portál AbcLinuxu, 4. května 2025 07:30
Jak si tak čtu zprávičku o chybě v xkách a koukám na patch, který ji opravuje, tak se nemůžu ubránit pocitu, že tu samou chybu jsem dnes už někde viděl.
Po chvíli uvažování mi to docvakne a vzpomenu si na dnešní commit do python-gammu. Teď mi nezvbývá než souhlasit s těmi co tvrdí, že toto vznikne hrozně snadno .
Tiskni
Sdílej:
Hmm, ten patche vypadá hodně usměvně. Bohužel, něčemu podobnému se v C asi zabránit nedá, co?
geteuid
je pointer na funkci, zatímco geteuid()
je volání funkce, což je céčku jedno. Nebo existuje nějaký parser, který by na podobné konstrukce upozornil?
#define ...
, vid...
-Wall
, dokonce mám neblahé tušení, že snad i přímo norma specifikuje, že to musí být přípustné (ale ruku do ohně bych za to nedal, musel bych se podívat). Je to celkem logické, idiomy typu 'if (!p)
' se používají skoro všude. Navíc se i NULL
často #defin
uje jako '0
' místo '((void*) 0)
'.
#ifdef __cplusplus #define NULL 0 #else #define NULL ((void*) 0) #elif
while (curr = next_foo(bar)) baz(curr); while ((curr = next_foo(bar)) != NULL) baz(curr);Stejně nechápu proč vlastně C trvá na závorkách kolem expr v příkazech
if, while, for, switch
, protože jsou obvykle redundantní a pouze snižují čitelnost. Zlatej python.
=
pro přiřazení a ==
pro porovnání: v programech se statisticky výrazně častěji přiřazuje než porovnává na rovnost, proto je pro přiřazení zvolen kratší operátor; na rozdíl od Pascalu, který byl stvořen jako jazyk pro výuku, jehož návrh zohledňuje spíše teoretická hlediska než praktická. Jinak by totiž Wirtha nikdy nemohlo napadnout něco tak šíleného, jako dát operátorům and
a or
vyšší prioritu než porovnávání (a takových příkladů by se v Pascalu našlo víc).
splint
), které leccos najdou.
/* First the options that are only allowed for root */ if (getuid() == 0 || geteuid() != 0)Jo a chybějící function call by mělo gcc v tomto případě hlásit, protože geteuid bez závorek je reference na externí symbol, tudíž je blbost jej castovat na bool.
X
nemusí mít suid bit, pokud ho nepotřebujete spouštět interaktivně pomocí startx
. Což dnes naprostá většina uživatelů nepotřebuje.
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.