=================================================================== RCS file: /cvs/mandoc/arch.c,v retrieving revision 1.13 retrieving revision 1.14 diff -u -p -r1.13 -r1.14 --- mandoc/arch.c 2014/11/28 18:09:01 1.13 +++ mandoc/arch.c 2019/03/04 13:01:57 1.14 @@ -1,6 +1,6 @@ -/* $Id: arch.c,v 1.13 2014/11/28 18:09:01 schwarze dead $ */ +/* $Id: arch.c,v 1.14 2019/03/04 13:01:57 schwarze Exp $ */ /* - * Copyright (c) 2009 Kristaps Dzonsons + * Copyright (c) 2017, 2019 Ingo Schwarze * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -16,22 +16,39 @@ */ #include "config.h" -#include - #include -#include "mdoc.h" -#include "libmdoc.h" +#include "roff.h" -#define LINE(x, y) \ - if (0 == strcmp(p, x)) return(y); - - -const char * -mdoc_a2arch(const char *p) +int +arch_valid(const char *arch, enum mandoc_os os) { + const char *openbsd_arch[] = { + "alpha", "amd64", "arm64", "armv7", "hppa", "i386", + "landisk", "loongson", "luna88k", "macppc", "mips64", + "octeon", "sgi", "socppc", "sparc64", NULL + }; + const char *netbsd_arch[] = { + "acorn26", "acorn32", "algor", "alpha", "amiga", + "arc", "atari", + "bebox", "cats", "cesfic", "cobalt", "dreamcast", + "emips", "evbarm", "evbmips", "evbppc", "evbsh3", "evbsh5", + "hp300", "hpcarm", "hpcmips", "hpcsh", "hppa", + "i386", "ibmnws", "luna68k", + "mac68k", "macppc", "mipsco", "mmeye", "mvme68k", "mvmeppc", + "netwinder", "news68k", "newsmips", "next68k", + "pc532", "playstation2", "pmax", "pmppc", "prep", + "sandpoint", "sbmips", "sgimips", "shark", + "sparc", "sparc64", "sun2", "sun3", + "vax", "walnut", "x68k", "x86", "x86_64", "xen", NULL + }; + const char **arches[] = { NULL, netbsd_arch, openbsd_arch }; + const char **arch_p; -#include "arch.in" - - return(NULL); + if ((arch_p = arches[os]) == NULL) + return 1; + for (; *arch_p != NULL; arch_p++) + if (strcmp(*arch_p, arch) == 0) + return 1; + return 0; }