Annotation of embedaddon/ntp/libntp/ntp_libopts.c, revision 1.1
1.1 ! misho 1: /*
! 2: * ntp_libopts.c
! 3: *
! 4: * Common code interfacing with Autogen's libopts command-line option
! 5: * processing.
! 6: */
! 7: #ifdef HAVE_CONFIG_H
! 8: # include <config.h>
! 9: #endif
! 10:
! 11: #include <stdio.h>
! 12: #include <stddef.h>
! 13: #include "ntp_libopts.h"
! 14: #include "ntp_stdlib.h"
! 15:
! 16: extern const char *Version; /* version.c for each program */
! 17:
! 18:
! 19: /*
! 20: * ntpOptionProcess() is a clone of libopts' optionProcess which
! 21: * overrides the --version output, appending detail from version.c
! 22: * which was not available at Autogen time.
! 23: */
! 24: int
! 25: ntpOptionProcess(
! 26: tOptions * pOpts,
! 27: int argc,
! 28: char ** argv
! 29: )
! 30: {
! 31: char * pchOpts;
! 32: char ** ppzFullVersion;
! 33: char * pzNewFV;
! 34: char * pzAutogenFV;
! 35: size_t octets;
! 36: int rc;
! 37:
! 38: pchOpts = (void *)pOpts;
! 39: ppzFullVersion = (char **)(pchOpts + offsetof(tOptions,
! 40: pzFullVersion));
! 41: pzAutogenFV = *ppzFullVersion;
! 42: octets = strlen(pzAutogenFV) +
! 43: 1 + /* '\n' */
! 44: strlen(Version) +
! 45: 1; /* '\0' */
! 46: pzNewFV = emalloc(octets);
! 47: snprintf(pzNewFV, octets, "%s\n%s", pzAutogenFV, Version);
! 48: *ppzFullVersion = pzNewFV;
! 49: rc = optionProcess(pOpts, argc, argv);
! 50: *ppzFullVersion = pzAutogenFV;
! 51: free(pzNewFV);
! 52:
! 53: return rc;
! 54: }
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>