Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Postfix/src/util/   (Postfix Mailserver Version 3.11©)  Datei vom 26.0.2015 mit Größe 2 kB image not shown  

Quelle  name_code.c

  Sprache: C
 

/*++
/* NAME
/* name_code 3
/* SUMMARY
/* name to number table mapping
/* SYNOPSIS
/* #include <name_code.h>
/*
/* typedef struct {
/* .in +4
/* const char *name;
/* int code;
/* .in -4
/* } NAME_CODE;
/*
/* int name_code(table, flags, name)
/* const NAME_CODE *table;
/* int flags;
/* const char *name;
/*
/* const char *str_name_code(table, code)
/* const NAME_CODE *table;
/* int code;
/* DESCRIPTION
/* This module does simple name<->number mapping. The process
/* is controlled by a table of (name, code) values.
/* The table is terminated with a null pointer and a code that
/* corresponds to "name not found".
/*
/* name_code() looks up the code that corresponds with the name.
/* The lookup is case insensitive. The flags argument specifies
/* zero or more of the following:
/* .IP NAME_CODE_FLAG_STRICT_CASE
/* String lookups are case sensitive.
/* .PP
/* For convenience the constant NAME_CODE_FLAG_NONE requests
/* no special processing.
/*
/* str_name_code() translates a number to its equivalent string.
/* DIAGNOSTICS
/* When the search fails, the result is the "name not found" code
/* or the null pointer, respectively.
/* LICENSE
/* .ad
/* .fi
/* The Secure Mailer license must be distributed with this software.
/* AUTHOR(S)
/* Wietse Venema
/* IBM T.J. Watson Research
/* P.O. Box 704
/* Yorktown Heights, NY 10598, USA
/*--*/


/* System library. */

#include <sys_defs.h>
#include <string.h>

/* Utility library. */

#include <name_code.h>

/* name_code - look up code by name */

int     name_code(const NAME_CODE *table, int flags, const char *name)
{
    const NAME_CODE *np;
    int     (*lookup) (const char *, const char *);

    if (flags & NAME_CODE_FLAG_STRICT_CASE)
 lookup = strcmp;
    else
 lookup = strcasecmp;

    for (np = table; np->name; np++)
 if (lookup(name, np->name) == 0)
     break;
    return (np->code);
}

/* str_name_code - look up name by code */

const char *str_name_code(const NAME_CODE *table, int code)
{
    const NAME_CODE *np;

    for (np = table; np->name; np++)
 if (code == np->code)
     break;
    return (np->name);
}

Messung V0.5 in Prozent
C=71 H=93 G=82

¤ Dauer der Verarbeitung: 0.13 Sekunden  (vorverarbeitet am  2026-08-09) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.