225 lines
7.3 KiB
C
225 lines
7.3 KiB
C
/* "@(#)defaults.h 1.1 94/10/31 SMI */
|
|
|
|
/*
|
|
* Copyright (c) 1985 by Sun Microsystems, Inc.
|
|
*/
|
|
|
|
#ifndef defaults_defined
|
|
#define defaults_defined
|
|
|
|
/*
|
|
* This file contains routine definitions for defaults.c
|
|
*/
|
|
|
|
/*
|
|
* NOTE: Any returned string pointers should be considered temporary at best.
|
|
* If you want to hang onto the data, make your own private copy of the string!
|
|
*/
|
|
|
|
#include <sunwindow/sun.h> /* Definition for Bool */
|
|
|
|
struct _default_pairs {
|
|
char *name; /* Name of pair */
|
|
int value; /* Value of pair */
|
|
};
|
|
typedef struct _default_pairs Defaults_pairs;
|
|
|
|
#define DEFAULTS_UNDEFINED "\255Undefined\255" /* Undefined string */
|
|
|
|
/*
|
|
* defaults_exists(path_name, status) will return TRUE if Path_Name exists
|
|
* in the database.
|
|
*/
|
|
Bool defaults_exists();
|
|
|
|
/*
|
|
* defaults_get_boolean(path_name, default, status) will lookup Path_Name
|
|
* in the defaults database and return TRUE if the value is "True", "Yes",
|
|
* "On", "Enabled", "Set", "Activated", or "1". FALSE will be returned if
|
|
* the value is "False", "No", "Off", "Disabled", "Reset", "Cleared",
|
|
* "Deactivated", or "0". If the value is none of the above, a warning
|
|
* message will be displayed and Default will be returned.
|
|
*/
|
|
Bool defaults_get_boolean();
|
|
|
|
/*
|
|
* defaults_get_character(path_name, default, status) will lookup Path_Name in
|
|
* the defaults database and return the resulting character value.
|
|
* Default will be returned if any error occurs.
|
|
*/
|
|
int defaults_get_character();
|
|
|
|
/*
|
|
* defaults_get_child(path_name, status) will return a pointer to the simple
|
|
* name assoicated with the first child of Path_Name. NULL will be returned,
|
|
* if Path_Name does not exist or if Path_Name does not have a first child.
|
|
*/
|
|
char *defaults_get_child();
|
|
|
|
/*
|
|
* defaults_get_default(path_name, default, status) will return the value
|
|
* associated with Path_Name prior to being overridden by the clients private
|
|
* database. Default is returned if any error occurs.
|
|
*/
|
|
char *defaults_get_default();
|
|
|
|
/*
|
|
* defaults_get_enum(path_name, pairs, status) will lookup the value associated
|
|
* with Path_Name and scan the Pairs table and return the associated value.
|
|
* If no match, can be found an error will be generated and the value
|
|
* associated with last entry (i.e. the NULL entry) will be returned. See,
|
|
* defaults_lookup().
|
|
*/
|
|
int defaults_get_enum();
|
|
|
|
/*
|
|
* defaults_get_enumeration(path_name, default, status) will lookup
|
|
* "Path_Name/VALUE(Path_Name)" in the defaults database and return the
|
|
* resulting string value. Default will be returned if any error occurs.
|
|
*/
|
|
char *defaults_get_enumeration();
|
|
|
|
/*
|
|
* defaults_get_integer(path_name, default, status) will lookup Path_Name in
|
|
* the defaults database and return the resulting integer value.
|
|
* Default will be returned if any error occurs.
|
|
*/
|
|
int defaults_get_integer();
|
|
|
|
/*
|
|
* defaults_get_integer_check(path_name, default, mininum, maximum, status)
|
|
* will lookup Path_Name in the defaults database and return the resulting
|
|
* integer value. If the value in the database is not between Minimum and
|
|
* Maximum (inclusive), an error message will be printed. Default will be
|
|
* returned if any error occurs.
|
|
*/
|
|
int defaults_get_integer_check();
|
|
|
|
/*
|
|
* defaults_get_sibling(path_name, status) will return a pointer to the simple
|
|
* name assoicated with the next sibling of Path_Name. NULL will be returned,
|
|
* if Path_Name does not exist or if Path_Name does not have an
|
|
* next sibling.
|
|
*/
|
|
char *defaults_get_sibling();
|
|
|
|
/*
|
|
* defaults_get_string(path_name, default, status) will lookup and return the
|
|
* string value assocatied with Path_Name in the defaults database.
|
|
* Default will be returned if any error occurs.
|
|
*/
|
|
char *defaults_get_string();
|
|
|
|
void defaults_init();
|
|
/*
|
|
* initializes (reads in) the defaults database. defaults_init() will read in
|
|
* the user's private database, i.e., .defaults file, and then read in the
|
|
* master database as well if the value of /Defaults/Read_Defaults_Database
|
|
* is True. defaults_init(True) will read in the master database regardless.
|
|
*/
|
|
|
|
/*
|
|
* defaults_lookup(name, pairs) will linearly scan the Pairs data structure
|
|
* looking for Name. The value associated with Name will be returned.
|
|
* If Name can not be found in Pairs, the value assoicated with NULL will
|
|
* be returned. (The Pairs data structure must be terminated with NULL.)
|
|
*/
|
|
int defaults_lookup();
|
|
|
|
/*
|
|
* defaults_move(to_path_name, from_path_name, before_flag, status) will
|
|
* rearrange the defaults database so that From_Path_Name will internally
|
|
* be next to To_Path_Name. If Before_Flag is True, a call to
|
|
* defaults_get_sibling(To_Path_Name) will return From_Path_Name.
|
|
* If Before_Flag is False, a call to defaults_get_child(From_Path_Name)
|
|
* will return To_Path_Name.
|
|
*/
|
|
void defaults_move();
|
|
|
|
/*
|
|
* defaults_remove(path_name, status) will remove Path_Name and its children
|
|
* from the defaults database.
|
|
*/
|
|
void defaults_remove();
|
|
|
|
/*
|
|
* defaults_remove_private(path_name, status) will remove Path_Name and its
|
|
* children from the private portion of the defaults database. The master
|
|
* database entries are not touched.
|
|
*/
|
|
void defaults_remove_private();
|
|
|
|
/*
|
|
* defaults_reread(path_name, status) will reread the portion of the database
|
|
* associated with Path_Name.
|
|
*/
|
|
void defaults_reread();
|
|
|
|
/*
|
|
* defaults_set_character(path_name, value, status) will set Path_name to
|
|
* Value. Value is a character.
|
|
*/
|
|
void defaults_set_character();
|
|
|
|
/*
|
|
* defaults_set_enumeration(path_name, value, status) will set Path_Name to
|
|
* Value. Value is a pointer to a string.
|
|
*/
|
|
void defaults_set_enumeration();
|
|
|
|
/*
|
|
* defaults_set_integer(path_name, value, status) will set Path_Name to Value.
|
|
* Value is an integer.
|
|
*/
|
|
void defaults_set_integer();
|
|
|
|
/*
|
|
* defaults_set_prefix(prefix, status) will cause all subsequent node lookup
|
|
* to first a node under Prefix first. For example, if the prefix has been
|
|
* set to "/Mumble/Frotz" and the user accesses "/Fee/Fie/Fo", first
|
|
* "/Mumble/Frotz/Fee/Fie/Fo" will looked at and then if it is not available
|
|
* "/Fee/Fie/Fo" will be looked at. This is used to permit individual programs
|
|
* to permit overriding of defaults. If Prefix is NULL, the prefix will be
|
|
* cleared.
|
|
*/
|
|
void defaults_set_prefix();
|
|
|
|
/*
|
|
* defaults_set_string(path_name, value, status) will set Path_Name to Value.
|
|
* Value is a poitner to a string.
|
|
*/
|
|
void defaults_set_string();
|
|
|
|
/*
|
|
* defaults_special_mode() will cause the database to behave as if the entire
|
|
* master database has been read into memory prior to reading in the private
|
|
* database.
|
|
*/
|
|
void defaults_special_mode();
|
|
|
|
/*
|
|
* defaults_write_all(path_name, file_name, status) will write the all of the
|
|
* database nodes from Path_Name and below into File_Name. Out_File is the
|
|
* string name of the file to create. If File_Name is NULL, "~/.defaults" will
|
|
* be used.
|
|
*/
|
|
void defaults_write_all();
|
|
|
|
/*
|
|
* defaults_write_changed(file_name, status) will write out all of the private
|
|
* database entries to File_Name. Any time a database node is set it becomes
|
|
* part of the private database. Out_File is the string name of the file to
|
|
* create. If File_Name is NULL, "~/.defaults" will be used.
|
|
*/
|
|
void defaults_write_changed();
|
|
|
|
/*
|
|
* defaults_write_differences(file_name, status) will write out all of the
|
|
* database entries that differ from the master database. Out_File is the
|
|
* string name of the file to create. If File_Name is NULL, "~/.defaults"
|
|
* be used.
|
|
*/
|
|
void defaults_write_differences();
|
|
|
|
#endif
|