All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alejandro Colomar <alx.manpages@gmail.com>
To: linux-man@vger.kernel.org, Oskari Pirhonen <xxc3ncoredxx@gmail.com>
Cc: Brian Inglis <Brian.Inglis@Shaw.ca>,
	Matt Jolly <Matt.Jolly@footclan.ninja>,
	Guillem Jover <guillem@hadrons.org>
Subject: Re: Revert "Many Pages: Remove references to C89"
Date: Wed, 15 Mar 2023 13:54:14 +0100	[thread overview]
Message-ID: <ac5a7960-206d-75a5-a766-5d1302634f34@gmail.com> (raw)
In-Reply-To: <6da28b50-e086-acde-6bb0-0409ada022d6@gmail.com>


[-- Attachment #1.1: Type: text/plain, Size: 7300 bytes --]



On 3/15/23 13:53, Alejandro Colomar wrote:
> Hi Oskari,
> 
> On 3/15/23 13:30, Alejandro Colomar wrote:
>> stdc89()
>> {
>>     grep "[[:alpha:]] \**\b$1([[:alnum:]*,. ]*);" /path/to/c89-draft.txt \
>>     | sort \
>>     | uniq;
>> }
> 
> I found a bug.  I was missing '_' in identifier names.  So it didn't
> match memcpy(3), which uses size_t.  Also, I found some spurious match,
> so added a '$' anchor after the ';'.
> 
> 
> stdc89()
> {
>     grep "[[:alpha:]] \**\b$1([[:alnum:]*,._ ]*);" /path/to/c89-draft.txt \

I forgot to update this line.  It should have been:

    grep "[[:alpha:]] \**\b$1([[:alnum:]*,._ ]*);$" /path/to/c89-draft.txt \

>     | sort \
>     | uniq;
> }
> 
> 
> This function finds 136 declarations in C89.  I'm not sure if that's
> all of them.  Is anyone missing any?
> 
> Cheers,
> 
> Alex
> 
> 
> $ stdc89 '[[:alpha:]][[:alnum:]]\+' | wc -l
> 136
> $ stdc89 '[[:alpha:]][[:alnum:]]\+'
>          FILE *fopen(const char *filename, const char *mode);
>          FILE *tmpfile(void);
>          char *asctime(const struct tm *timeptr);
>          char *ctime(const time_t *timer);
>          char *fgets(char *s, int n, FILE *stream);
>          char *getenv(const char *name);
>          char *gets(char *s);
>          char *setlocale(int category, const char *locale);
>          char *strcat(char *s1, const char *s2);
>          char *strchr(const char *s, int c);
>          char *strcpy(char *s1, const char *s2);
>          char *strerror(int errnum);
>          char *strncat(char *s1, const char *s2, size_t n);
>          char *strncpy(char *s1, const char *s2, size_t n);
>          char *strpbrk(const char *s1, const char *s2);
>          char *strrchr(const char *s, int c);
>          char *strstr(const char *s1, const char *s2);
>          char *strtok(char *s1, const char *s2);
>          char *tmpnam(char *s);
>          clock_t clock(void);
>          div_t div(int numer, int denom);
>          double acos(double x);
>          double asin(double x);
>          double atan(double x);
>          double atan2(double y, double x);
>          double atof(const char *nptr);
>          double ceil(double x);
>          double cos(double x);
>          double cosh(double x);
>          double difftime(time_t time1, time_t time0);
>          double exp(double x);
>          double fabs(double x);
>          double floor(double x);
>          double fmod(double x, double y);
>          double frexp(double value, int *exp);
>          double ldexp(double x, int exp);
>          double log(double x);
>          double log10(double x);
>          double modf(double value, double *iptr);
>          double pow(double x, double y);
>          double sin(double x);
>          double sinh(double x);
>          double sqrt(double x);
>          double strtod(const char *nptr, char **endptr);
>          double tan(double x);
>          double tanh(double x);
>          extern int atoi(const char *);
>          extern void *alloc();
>          int abs(int j);
>          int atoi(const char *nptr);
>          int fclose(FILE *stream);
>          int feof(FILE *stream);
>          int ferror(FILE *stream);
>          int fflush(FILE *stream);
>          int fgetc(FILE *stream);
>          int fgetpos(FILE *stream, fpos_t *pos);
>          int fprintf(FILE *stream, const char *format, ...);
>          int fputc(int c, FILE *stream);
>          int fputs(const char *s, FILE *stream);
>          int fscanf(FILE *stream, const char *format, ...);
>          int fseek(FILE *stream, long int offset, int whence);
>          int fsetpos(FILE *stream, const fpos_t *pos);
>          int getc(FILE *stream);
>          int getchar(void);
>          int isalnum(int c);
>          int isalpha(int c);
>          int iscntrl(int c);
>          int isdigit(int c);
>          int isgraph(int c);
>          int islower(int c);
>          int isprint(int c);
>          int ispunct(int c);
>          int isspace(int c);
>          int isupper(int c);
>          int isxdigit(int c);
>          int mblen(const char *s, size_t n);
>          int mbtowc(wchar_t *pwc, const char *s, size_t n);
>          int memcmp(const void *s1, const void *s2, size_t n);
>          int printf(const char *format, ...);
>          int putc(int c, FILE *stream);
>          int putchar(int c);
>          int puts(const char *s);
>          int raise(int sig);
>          int rand(void);
>          int remove(const char *filename);
>          int rename(const char *old, const char *new);
>          int scanf(const char *format, ...);
>          int setjmp(jmp_buf env);
>          int setvbuf(FILE *stream, char *buf, int mode, size_t size);
>          int sprintf(char *s, const char *format, ...);
>          int sscanf(const char *s, const char *format, ...);
>          int strcmp(const char *s1, const char *s2);
>          int strcoll(const char *s1, const char *s2);
>          int strncmp(const char *s1, const char *s2, size_t n);
>          int system(const char *string);
>          int tolower(int c);
>          int toupper(int c);
>          int ungetc(int c, FILE *stream);
>          int vfprintf(FILE *stream, const char *format, va_list arg);
>          int vprintf(const char *format, va_list arg);
>          int vsprintf(char *s, const char *format, va_list arg);
>          int wctomb(char *s, wchar_t wchar);
>          ldiv_t ldiv(long int numer, long int denom);
>          long int atol(const char *nptr);
>          long int ftell(FILE *stream);
>          long int labs(long int j);
>          long int strtol(const char *nptr, char **endptr, int base);
>          size_t mbstowcs(wchar_t *pwcs, const char *s, size_t n);
>          size_t strcspn(const char *s1, const char *s2);
>          size_t strlen(const char *s);
>          size_t strspn(const char *s1, const char *s2);
>          size_t strxfrm(char *s1, const char *s2, size_t n);
>          size_t wcstombs(char *s, const wchar_t *pwcs, size_t n);
>          struct lconv *localeconv(void);
>          struct tm *gmtime(const time_t *timer);
>          struct tm *localtime(const time_t *timer);
>          time_t mktime(struct tm *timeptr);
>          time_t time(time_t *timer);
>          void *calloc(size_t nmemb, size_t size);
>          void *malloc(size_t size);
>          void *memchr(const void *s, int c, size_t n);
>          void *memcpy(void *s1, const void *s2, size_t n);
>          void *memmove(void *s1, const void *s2, size_t n);
>          void *memset(void *s, int c, size_t n);
>          void *realloc(void *ptr, size_t size);
>          void abort(void);
>          void assert(int expression);
>          void clearerr(FILE *stream);
>          void exit(int status);
>          void f1(int, ...);
>          void free(void *ptr);
>          void longjmp(jmp_buf env, int val);
>          void perror(const char *s);
>          void rewind(FILE *stream);
>          void setbuf(FILE *stream, char *buf);
>          void srand(unsigned int seed);
> 
> 

-- 
<http://www.alejandro-colomar.es/>
GPG key fingerprint: A9348594CE31283A826FBDD8D57633D441E25BB5

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

  reply	other threads:[~2023-03-15 12:54 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-03-10  1:51 Revert "Many Pages: Remove references to C89" Matt Jolly
2023-03-10  1:51 ` [PATCH] Revert "Many pages: " Matt Jolly
2023-03-10  2:22 ` Revert "Many Pages: " Alejandro Colomar
2023-03-10  5:00   ` Oskari Pirhonen
2023-03-10 13:29     ` Alejandro Colomar
2023-03-10 13:32       ` Alejandro Colomar
2023-03-13  1:42       ` Oskari Pirhonen
2023-03-13 12:00         ` Alejandro Colomar
2023-03-14  5:39           ` Oskari Pirhonen
2023-03-15 12:30             ` Alejandro Colomar
2023-03-15 12:53               ` Alejandro Colomar
2023-03-15 12:54                 ` Alejandro Colomar [this message]
2023-03-15 14:22                 ` Alejandro Colomar
2023-03-15 16:51               ` Brian Inglis
2023-03-15 17:01                 ` Alejandro Colomar
2023-03-15 18:10                   ` Tom Schwindl
2023-03-16  1:43                     ` Alejandro Colomar
2023-03-18  4:58                       ` Oskari Pirhonen
2023-03-22  1:20                         ` Alejandro Colomar
2023-03-15  4:36           ` Guillem Jover
2023-03-10  6:40   ` Brian Inglis
2023-03-10 12:49     ` Alejandro Colomar
2023-03-23  5:32   ` Sam James
2023-03-23 13:13     ` Alejandro Colomar

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ac5a7960-206d-75a5-a766-5d1302634f34@gmail.com \
    --to=alx.manpages@gmail.com \
    --cc=Brian.Inglis@Shaw.ca \
    --cc=Matt.Jolly@footclan.ninja \
    --cc=guillem@hadrons.org \
    --cc=linux-man@vger.kernel.org \
    --cc=xxc3ncoredxx@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.