aplat

Documents structurés pour Unix
git clone git://git.asteride.xyz/~ldp/aplat.git
Journaux | Fichiers | Références | LISEZ-MOI | LICENCE

commit 85e997142da429c02ed7e9ae48cc9f3a661a1ae1
parent f0bf30fb99d595c5740601f6d8d34c614148109d
Auteur: Loïc Daignault-Pichette <loic@asteride.xyz>
Date:   Fri,  7 Jun 2024 14:04:45 -0400

inclusion manuelle dans aplat.c de general.c

Diffstat:
MMakefile | 4++--
Maplat.c | 20+++++++++++++++-----
Dgeneral.c | 46----------------------------------------------
Dgeneral.h | 9---------
4 files changed, 17 insertions(+), 62 deletions(-)

diff --git a/Makefile b/Makefile @@ -14,8 +14,8 @@ include config.mk all: aplat -aplat: aplat.o general.o - ${CC} ${COPTS} ${LDOPTS} -o "$@" aplat.o general.o ${BIBS} +aplat: aplat.o + ${CC} ${COPTS} ${LDOPTS} -o "$@" aplat.o ${BIBS} clean: rm -rf *.o *.core diff --git a/aplat.c b/aplat.c @@ -10,9 +10,10 @@ #include <libintl.h> #include <locale.h> -#include "general.h" #include "coroutines.h" +#define _(c) gettext(c) + #define TP_ETQ_TLL 128 #define TP_CTN_TLL 256 @@ -54,14 +55,23 @@ struct tampon tp_ctn; int main(int argc, char **argv) { - nom_prog = nom_prog_trouver(argv, "aplat"); + /* trouver le nom du programme */ + if ((nom_prog = *argv) == NULL || *nom_prog == '\0') + nom_prog = "aplat"; - if (i18n_init() < 0) - return 1; + setlocale(LC_ALL, ""); + bindtextdomain(I18N_DOMAINE, I18N_DOS); + textdomain(I18N_DOMAINE); #ifdef __OpenBSD__ - if (pledge("stdio rpath", NULL) < 0) + if (unveil(I18N_DOS, "r") < 0 || + unveil("/usr/share/locale/UTF-8/LC_CTYPE", "r") < 0) { + fprintf(stderr, _("%s: erreur avec unveil()\n"), nom_prog); + } + if (pledge("stdio rpath", NULL) < 0) { + fprintf(stderr, _("%s: erreur avec pledge()\n"), nom_prog); return 1; + } #endif if (argc == 2 && argv[1][0] == '-' && argv[1][1] == 'V' diff --git a/general.c b/general.c @@ -1,46 +0,0 @@ -#include <assert.h> -#include <stdio.h> - -/* L'appel système unveil(2) n'est présent que sur OpenBSD. */ -#ifdef __OpenBSD__ -#include <unistd.h> -#endif - -/* Bibliothèques pour l'internationalisation. */ -#include <libintl.h> -#include <locale.h> - -#include "general.h" - -extern char *nom_prog; - -char * -nom_prog_trouver(char **argv, char *defaut) -{ - char *nom; - - assert(argv); - assert(defaut); - - if ((nom = *argv) == NULL || *nom == '\0') - return defaut; - return nom; -} - -int -i18n_init(void) -{ - setlocale(LC_ALL, ""); - bindtextdomain(I18N_DOMAINE, I18N_DOS); - textdomain(I18N_DOMAINE); - -#ifdef __OpenBSD__ - if (unveil(I18N_DOS, "r") < 0 || - unveil("/usr/share/locale/UTF-8/LC_CTYPE", "r") < 0) { - fprintf(stderr, _("%s: erreur avec unveil()\n"), nom_prog); - return -1; - } -#endif - - return 0; -} diff --git a/general.h b/general.h @@ -1,9 +0,0 @@ -#ifndef GENERAL_H -#define GENERAL_H - -#define _(c) gettext(c) - -char *nom_prog_trouver(char **argv, char *defaut); -int i18n_init(void); - -#endif