Mercurial > ~dholland > hg > ag > index.cgi
view anagram/agcore/engdef.cpp @ 12:aab9ff6af791
Strengthen the build hack for non-DOS targets.
author | David A. Holland |
---|---|
date | Tue, 31 May 2022 00:58:42 -0400 |
parents | 13d2b8934445 |
children |
line wrap: on
line source
/* * AnaGram, A System for Syntax Directed Programming * Copyright 2006 David A. Holland. All Rights Reserved. * See the file COPYING for license and usage terms. * * engdef.cpp - engine definition file * * This file obsoletes the external AnaGram.cgb file found * in older versions of AnaGram. */ #include <stdlib.h> #include <string.h> #include "port.h" // for OPTLINK #include "engdef.h" //#define INCLUDE_LOGGING #include "log.h" #include "engine.h" static int OPTLINK cgtable_sort(const void *ventrya, const void *ventryb) { const cgentry *entrya = (const cgentry *)ventrya; const cgentry *entryb = (const cgentry *)ventryb; return strcmp(entrya->name, entryb->name); } static int OPTLINK cgtable_search(const void *vkey, const void *ventryb) { const char *key = (const char *)vkey; const cgentry *entryb = (const cgentry *)ventryb; return strcmp(key, entryb->name); } void engdef_init(void) { LOGSECTION("engdef_init"); qsort(cgtable, cgtablenum, sizeof(cgtable[0]), cgtable_sort); } const char *engdef_get(const char *key) { const void *ventry; const cgentry *entry; ventry = bsearch(key, cgtable, cgtablenum, sizeof(cgtable[0]), cgtable_search); if (!ventry) { //fprintf(stderr, "warning: cgb key <%s> not found\n", key); return ""; } entry = (const cgentry *)ventry; return entry->data; }