Re: encapsulating directory operations

Liste des GroupesRevenir à cl c 
Sujet : Re: encapsulating directory operations
De : tr.17687 (at) *nospam* z991.linuxsc.com (Tim Rentsch)
Groupes : comp.lang.c
Date : 10. Jun 2025, 16:52:50
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <86bjqvr3u5.fsf@linuxsc.com>
References : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
User-Agent : Gnus/5.11 (Gnus v5.11) Emacs/22.4 (gnu/linux)
Keith Thompson <Keith.S.Thompson+u@gmail.com> writes:

Tim Rentsch <tr.17687@z991.linuxsc.com> writes:
>
Keith Thompson <Keith.S.Thompson+u@gmail.com> writes:
>
Richard Harnden <richard.harnden@gmail.invalid> writes:
>
On 22/05/2025 23:32, Keith Thompson wrote:
>
[...]
>
In one of your library's headers:
extern const char ESCAPE;
In the corresponding *.c file:
const char ESCAPE = ('z' - 'a' == 25 ? '\x1b' : '\x27');
Change the name if you prefer.
>
Wouldn't that be a reserved identifier?
>
Yes, it would.  Good catch.
>
(Identifiers starting with E followed by either a digit or an
uppercase letter are reserved;  they could be defined as macros
in <errno.h>.)
>
They are reserved only as macros, and only if <errno.h> has
been #include'd.
>
For this particular use, it's easy to make the definition work,
simply by adding
>
    #undef ESCAPE
>
before the declaration in the header file, and before the
definition in the source file (assuming of course that if
there are any #include <errno.h> they precede the #undef's).
>
It would be even easier to pick a different name.

The point of my comment was to help explain the rules about what
macro names are reserved and under what circumstances, not to
suggest a way to avoid conflicts.

A better way to avoid conflicts with E* macros is to take functions
where errno is needed, as for example signal(), and not call them
directly but rather wrap each one in a function, with the wrapping
functions put in (one or more) separate translation unit(s).  Those
translation units, and only those translation units, are the ones
where a #include <errno.h> is done.  Some details are needed to keep
the separation complete, but I think those aren't too hard to work
out, so if someone has trouble please ask.  This way most of the
program can use names beginning with E that might otherwise be
reserved, without any fear of conflicts.  There is a bit of source
code overhead, but that is paid only once, across all projects that
use this approach.  Also there are some other benefits, related to
libraries used that are not part of ISO C, such as Posix, which
again should be readily apparent to anyone used to working in large
projects that use such libraries.

Date Sujet#  Auteur
20 May 25 * encapsulating directory operations308Paul Edwards
20 May 25 +* Re: encapsulating directory operations83Lawrence D'Oliveiro
20 May 25 i+* Re: encapsulating directory operations20Paul Edwards
21 May 25 ii`* Re: encapsulating directory operations19Lawrence D'Oliveiro
21 May 25 ii `* Re: encapsulating directory operations18Paul Edwards
21 May 25 ii  `* Re: encapsulating directory operations17Lawrence D'Oliveiro
21 May 25 ii   +* Re: encapsulating directory operations3Paul Edwards
22 May 25 ii   i`* Re: encapsulating directory operations2Lawrence D'Oliveiro
22 May 25 ii   i `- Re: encapsulating directory operations1Kaz Kylheku
22 May 25 ii   `* Re: encapsulating directory operations13James Kuyper
22 May 25 ii    `* Re: encapsulating directory operations12Lawrence D'Oliveiro
22 May 25 ii     `* Re: encapsulating directory operations11James Kuyper
22 May 25 ii      `* Re: encapsulating directory operations10Lawrence D'Oliveiro
23 May 25 ii       `* Re: encapsulating directory operations9James Kuyper
23 May 25 ii        `* Re: encapsulating directory operations8Kaz Kylheku
23 May 25 ii         +* Re: encapsulating directory operations3Paul Edwards
23 May 25 ii         i+- Re: encapsulating directory operations1Kaz Kylheku
24 May 25 ii         i`- Re: encapsulating directory operations1Lawrence D'Oliveiro
23 May 25 ii         `* Re: encapsulating directory operations4James Kuyper
23 May 25 ii          `* Re: encapsulating directory operations3Kaz Kylheku
24 May 25 ii           `* Re: encapsulating directory operations2James Kuyper
24 May 25 ii            `- Re: encapsulating directory operations1Kaz Kylheku
31 May 25 i`* Re: encapsulating directory operations62Bonita Montero
31 May 25 i `* Re: encapsulating directory operations61Lawrence D'Oliveiro
1 Jun 25 i  `* Re: encapsulating directory operations60Bonita Montero
1 Jun 25 i   `* Re: encapsulating directory operations59Lawrence D'Oliveiro
2 Jun 25 i    `* Re: encapsulating directory operations58Bonita Montero
3 Jun 25 i     +* Re: encapsulating directory operations2James Kuyper
3 Jun 25 i     i`- Re: encapsulating directory operations1Kaz Kylheku
3 Jun 25 i     +* Re: encapsulating directory operations9Lawrence D'Oliveiro
10 Jun 25 i     i`* Re: encapsulating directory operations8Bonita Montero
10 Jun 25 i     i +- Re: encapsulating directory operations1Bonita Montero
10 Jun 25 i     i +- Re: encapsulating directory operations1Kaz Kylheku
11 Jun 25 i     i `* Re: encapsulating directory operations5Lawrence D'Oliveiro
11 Jun 25 i     i  `* Re: encapsulating directory operations4Bonita Montero
11 Jun 25 i     i   +- Re: encapsulating directory operations1Lawrence D'Oliveiro
11 Jun 25 i     i   `* Re: encapsulating directory operations2Bonita Montero
12 Jun 25 i     i    `- Re: encapsulating directory operations1Lawrence D'Oliveiro
3 Jun 25 i     `* Re: encapsulating directory operations46Bonita Montero
6 Jun 25 i      `* Re: encapsulating directory operations45Bonita Montero
6 Jun 25 i       `* Re: encapsulating directory operations44Bonita Montero
6 Jun 25 i        `* Re: encapsulating directory operations43Bonita Montero
6 Jun 25 i         `* Re: encapsulating directory operations42wij
7 Jun 25 i          `* Re: encapsulating directory operations41Bonita Montero
7 Jun 25 i           `* Re: encapsulating directory operations40wij
7 Jun 25 i            `* Re: encapsulating directory operations39Bonita Montero
7 Jun 25 i             `* Re: encapsulating directory operations38wij
7 Jun 25 i              `* Re: encapsulating directory operations37Bonita Montero
7 Jun 25 i               +* Re: encapsulating directory operations22wij
7 Jun 25 i               i+- Re: encapsulating directory operations1Bonita Montero
8 Jun 25 i               i`* Re: encapsulating directory operations20Bonita Montero
8 Jun 25 i               i +* Re: encapsulating directory operations12Muttley
8 Jun 25 i               i i`* Re: encapsulating directory operations11Bonita Montero
8 Jun 25 i               i i `* Re: encapsulating directory operations10Muttley
8 Jun 25 i               i i  +* Re: encapsulating directory operations3Bonita Montero
9 Jun 25 i               i i  i`* Re: encapsulating directory operations2Muttley
9 Jun 25 i               i i  i `- Re: encapsulating directory operations1Bonita Montero
8 Jun 25 i               i i  +* Re: encapsulating directory operations2Kaz Kylheku
10 Jun 25 i               i i  i`- Re: encapsulating directory operations1Tim Rentsch
8 Jun 25 i               i i  +- Re: encapsulating directory operations1Bonita Montero
9 Jun 25 i               i i  +- Re: encapsulating directory operations1wij
9 Jun 25 i               i i  `* Re: encapsulating directory operations2Muttley
9 Jun 25 i               i i   `- Re: encapsulating directory operations1Bonita Montero
8 Jun 25 i               i +* Re: encapsulating directory operations5wij
8 Jun 25 i               i i`* Re: encapsulating directory operations4Bonita Montero
8 Jun 25 i               i i `* Re: encapsulating directory operations3wij
8 Jun 25 i               i i  `* Re: encapsulating directory operations2Bonita Montero
8 Jun 25 i               i i   `- Re: encapsulating directory operations1wij
9 Jun 25 i               i `* Re: encapsulating directory operations2Lawrence D'Oliveiro
9 Jun 25 i               i  `- Re: encapsulating directory operations1Bonita Montero
7 Jun 25 i               `* Re: encapsulating directory operations14Janis Papanagnou
8 Jun 25 i                `* Re: encapsulating directory operations13Bonita Montero
8 Jun 25 i                 +- Re: encapsulating directory operations1Chris M. Thomasson
8 Jun 25 i                 `* Re: encapsulating directory operations11Bonita Montero
9 Jun 25 i                  +* Re: encapsulating directory operations8Bonita Montero
9 Jun 25 i                  i+* Re: encapsulating directory operations6Bonita Montero
9 Jun 25 i                  ii+- Re: encapsulating directory operations1Bonita Montero
10 Jun 25 i                  ii+* Re: encapsulating directory operations3Muttley
10 Jun 25 i                  iii+- Re: encapsulating directory operations1Muttley
10 Jun 25 i                  iii`- Re: encapsulating directory operations1Chris M. Thomasson
10 Jun 25 i                  ii`- Re: encapsulating directory operations1Waldek Hebisch
9 Jun 25 i                  i`- Re: encapsulating directory operations1Richard Heathfield
10 Jun 25 i                  `* Re: encapsulating directory operations2Tim Rentsch
10 Jun 25 i                   `- Re: encapsulating directory operations1Bonita Montero
20 May 25 +* Re: encapsulating directory operations74Keith Thompson
20 May 25 i+* Re: encapsulating directory operations28Richard Heathfield
20 May 25 ii+- Re: encapsulating directory operations1Paul Edwards
20 May 25 ii+- Re: encapsulating directory operations1David Brown
20 May 25 ii+* Re: encapsulating directory operations7Kaz Kylheku
20 May 25 iii`* Re: encapsulating directory operations6Richard Heathfield
20 May 25 iii +* Re: encapsulating directory operations2Muttley
20 May 25 iii i`- Re: encapsulating directory operations1Paul Edwards
20 May 25 iii `* Re: encapsulating directory operations3Paul Edwards
20 May 25 iii  `* Re: encapsulating directory operations2Richard Heathfield
20 May 25 iii   `- Re: encapsulating directory operations1Paul Edwards
23 May 25 ii`* Re: encapsulating directory operations18Tim Rentsch
23 May 25 ii +* Re: encapsulating directory operations6Richard Heathfield
24 May 25 ii i`* Re: encapsulating directory operations5Tim Rentsch
24 May 25 ii i `* Re: encapsulating directory operations4Richard Heathfield
28 May 25 ii i  `* Re: encapsulating directory operations3Tim Rentsch
28 May 25 ii i   `* Re: encapsulating directory operations2Richard Heathfield
26 May 25 ii `* Re: encapsulating directory operations11Peter 'Shaggy' Haywood
20 May 25 i`* Re: encapsulating directory operations45Paul Edwards
20 May 25 +* Re: encapsulating directory operations145Kaz Kylheku
21 May 25 +* Re: encapsulating directory operations3Janis Papanagnou
22 May 25 +- Re: encapsulating directory operations1Bonita Montero
25 May 25 `- Re: encapsulating directory operations1Tim Rentsch

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal