This is options.h in view mode; [Download] [Up]
/* options.h */ /* Copyright 1995 by Steve Kirkendall */ /* This file contains extern declarations for the option maniplulation * functions. */ /* These values are ORed together in the "flags" field of an option value * to inform elvis how to treat it. Initially, all flags should be 0. * Elvis maintains the "set" and "show" flags itself; the "save" flag is' * maintained by each option's store() function. */ #define OPT_SET 0x01 /* value has been changed */ #define OPT_SHOW 0x02 /* value should be shown */ #define OPT_HIDE 0x04 /* value should be hidden even if ":set all" */ #define OPT_LOCK 0x08 /* value can never be changed */ #define OPT_UNSAFE 0x10 /* value can't be changed if "safer" is set */ #define OPT_FREE 0x20 /* call safefree() on the value before freeing/changing it */ #define OPT_REDRAW 0x40 /* changing this option forces a redraw */ /* Instances of this structure are used to store values of variables. Values * are stored apart from their descriptions because for some options the * values will vary for each window or buffer, but their descriptions won't. */ typedef struct { union { long number; /* for numeric options */ BOOLEAN boolean; /* for boolean options */ char character; /* for "one of" options */ CHAR *string; /* for string options */ void *pointer; /* for any other type of option */ } value; short flags; /* flags for the option */ } OPTVAL; /* Instances of this structure are used to describe options. */ typedef struct optdesc_s { char *longname, *shortname; CHAR *(*asstring) P_((struct optdesc_s *opt, OPTVAL *val)); int (*isvalid) P_((struct optdesc_s *opt, OPTVAL *val, CHAR *newval)); char *limit; int (*store) P_((struct optdesc_s *opt, OPTVAL *val, CHAR *newval)); } OPTDESC; /* This macro returns the flags field of an optval, when given the lvalue * of the value field. For example, optflags(o_blksize) accesses the flags * of the blksize option. */ #define optflags(o) (((OPTVAL *)&(o))->flags) /* This macro sets the value & flags of an option. For example, the macro * optpreset(o_session, "session.elv", OPT_HIDE) sets the value of the * "session" option "session.elv", and turns on its OPT_HIDE flag. */ #define optpreset(o, v, f) ((o) = (v), optflags(o) |= (f)) /* These functions are used to say which particular options are relevent at * the moment. */ BEGIN_EXTERNC extern void optinsert P_((char *domain, int nopts, OPTDESC desc[], OPTVAL val[])); extern void optdelete P_((OPTVAL val[])); extern void optfree P_((int nopts, OPTVAL *val)); extern int optisnumber P_((OPTDESC *desc, OPTVAL *val, CHAR *newval)); extern int optisstring P_((OPTDESC *desc, OPTVAL *val, CHAR *newval)); extern int optisoneof P_((OPTDESC *desc, OPTVAL *val, CHAR *newval)); extern CHAR *optnstring P_((OPTDESC *desc, OPTVAL *val)); extern CHAR *optsstring P_((OPTDESC *desc, OPTVAL *val)); extern CHAR *opt1string P_((OPTDESC *desc, OPTVAL *val)); extern BOOLEAN optset P_((BOOLEAN bang, CHAR *ARGS, CHAR *OUTBUF, size_t outsize)); extern CHAR *optgetstr P_((CHAR *name)); extern BOOLEAN optputstr P_((CHAR *name, CHAR *value)); extern CHAR *optname P_((CHAR *name)); #if defined (GUI_WIN32) extern int optiswinsize (OPTDESC *desc, OPTVAL *val, CHAR *newval); #endif END_EXTERNC
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.