123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245 |
- /*
- * CDE - Common Desktop Environment
- *
- * Copyright (c) 1993-2012, The Open Group. All rights reserved.
- *
- * These libraries and programs are free software; you can
- * redistribute them and/or modify them under the terms of the GNU
- * Lesser General Public License as published by the Free Software
- * Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * These libraries and programs are distributed in the hope that
- * they will be useful, but WITHOUT ANY WARRANTY; without even the
- * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with these libraries and programs; if not, write
- * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
- * Floor, Boston, MA 02110-1301 USA
- */
- /* @(#)$XConsortium: ximsfunc.h /main/2 1996/05/07 14:02:55 drk $ */
- #ifndef _XIMSFUNC_H_
- #define _XIMSFUNC_H_ 1
- /* External Functions */
- /* main.c */
- extern void sigExit(/* sig */);
- extern void Exit(/* err_code */);
- extern int NotifyErrCode(/* err_code */);
- extern int ErrFilePathNeeded(/* error */);
- extern int InWaitingState(/* */);
- extern void ximsMain(/* */);
- extern void ximsFinish(/* */);
- extern char *xims_errmsg(/* err_num, arg1, arg2, arg3 */);
- /* env.c */
- extern int set_cmd_env(/* */);
- extern int get_user_environ(/* */);
- extern int expand_string(/* in_str, out_str, out_len, ims */);
- extern int make_new_environ(/* oenv, sel */);
- extern int put_new_environ(/* oenv */);
- extern int set_remote_env(/* ptr, env_pass */);
- extern char *xhp_xinput_name(/* locale */);
- extern char *get_real_locale(/* locale, aliases */);
- /* select.c */
- extern void ximsSelect(/* */);
- extern int update_user_selection(/* sel, list, idx, host, host_type */);
- extern int get_ims_idx(/* list, name */);
- extern int set_ims_status(/* ent */);
- extern int get_ims_list(/* listp, locale, fill_ent */);
- /* start.c */
- extern void ximsStart(/* */);
- extern void ximsWait(/* */);
- extern void ximsWaitDone(/* */);
- extern int is_waiting(/* */);
- extern void set_sig_chld(/* enable */);
- extern int im_mod_available(/* renv */);
- extern int mk_ims_option(/* ptr, sel */);
- extern int load_resources(/* */);
- extern int restore_resources(/* */);
- /* remote.c */
- extern int put_remote_conf(/* locale, ims_name */);
- extern int get_remote_conf(/* listp, hostname, locale, ims_name */);
- extern int exec_remote_ims(/* sel */);
- extern int check_hostname(/* hostname */);
- extern int set_remote_confdata(/* confbuf, conflen */);
- extern int read_remote_confdata(/* confbuf, conflen */);
- extern int get_window_status(/* */);
- extern int change_window_status(/* status */);
- extern int set_window_data(/* ac, av */);
- extern int get_window_data(/* acp, avp */);
- /* action.c */
- extern int invoke_action(/* action, host */);
- extern void send_dtims_msg(/* msg, errcode */);
- extern void dtims_msg_proc(/* w, cd, event, continue_dispatch */);
- /* file.c */
- extern int create_xims_dir(/* */);
- extern int init_log_file(/* org_path, check_size */);
- extern int set_errorlog(/* path */);
- extern int read_cmd_conf(/* */);
- extern int expand_cmd_conf(/* */);
- extern int read_imsconf(/* conf, ims_name, ims_fname */);
- extern int check_ims_conf(/* ims, ims_name */);
- extern int read_localeconf(/* list, locale_name */);
- extern int read_user_selection(/* fselp, locale_name */);
- extern int read_selection_file(/* fsel, fp */);
- extern int save_user_selection(/* sel, locale_name */);
- extern int get_select_mode(/* */);
- extern int set_select_mode(/* cur_mode, new_mode */);
- extern int parse_protolist(/* valp */);
- extern int default_protocol(/* conf */);
- /* win.c */
- extern int open_display(/* */);
- extern void close_display(/* */);
- extern int window_env_ok(/* */);
- extern int init_window_env(/* */);
- extern void end_window_env(/* */);
- extern int clear_cmd_property(/* win */);
- extern int save_RM(/* */);
- extern int merge_RM(/* res1, res2 */);
- extern int restore_RM(/* */);
- extern int start_selection_window(/* */);
- extern int start_mode_window(/* cur_mode */);
- extern void stop_help(/* */);
- extern void ximsHelp(/* help_type */);
- extern int put_msg_win(/* type, msg */);
- extern void xevent_loop(/* */);
- extern void xt_start_waiting(/* */);
- extern void xt_stop_waiting(/* */);
- /* util.c */
- /* string */
- extern char *strcpyx(/* dest, src */);
- extern char *strcpy2(/* dest, src1, src2 */);
- extern char *newstradded(/* src1, src2, src3 */);
- extern int str_to_int(/* ptr, val */);
- extern bool str_to_bool(char *ptr, bool def_val);
- extern char *trim_line(/* ptr */);
- extern char **parse_strlist(register char *ptr, char sep_ch);
- extern int pack_strlist(/* ptr, listp, sep_ch */);
- extern void free_strlist(/* pp */);
- extern bool parse_dpy_str(/* display_str, host, dnum, snum, dnet */);
- extern char *std_dpy_str(/* display_str, snum */);
- /* file & dir */
- extern int make_user_dir(/* path */);
- extern char *dirname(/* path */);
- extern int is_directory(/* path, must_writable */);
- extern int is_regularfile(/* path */);
- extern int is_emptyfile(/* path */);
- extern int is_executable(/* path */);
- extern int is_writable(/* path */);
- extern int is_readable(/* path, allow_empty */);
- /* file read */
- extern int start_tag_line(/* fname */);
- extern int read_tag_line(/* fp, tagp, valp */);
- /* error messges */
- extern void put_xims_msg(/* msg_type, err_num, arg1, arg2, arg3 */);
- extern void put_xims_errmsg(/* err_num, arg1, arg2, arg3 */);
- extern void put_xims_warnmsg(/* err_num, arg1, arg2, arg3 */);
- extern void print_msg(/* fmt, arg1, arg2, arg3, arg4, arg5 */);
- extern int put_xims_log(/* fmt, arg1, arg2, arg3 */);
- /* clear structure */
- extern void clear_ImsConf(/* ims */);
- extern void clear_ImsEnt(/* ent */);
- extern void clear_ImsList(/* list */);
- extern void clear_FileSel(/* fsel */);
- extern void clear_UserSelection(/* sel */);
- extern void clear_RunEnv(/* renv */);
- extern void clear_OutEnv(/* oenv */);
- extern void clear_UserEnv(/* */);
- extern void clear_CmdConf(/* */);
- extern void clear_WinEnv(/* */);
- extern void clear_CmdOpt(/* */);
- extern void clear_All(/* */);
- # ifdef DEBUG
- /* print structure */
- extern void pr_FileSel(/* fsel */);
- extern void pr_UserSelection(/* sel */);
- extern void pr_ImsConf(/* conf, ims_name */);
- extern void pr_ImsEnt(/* ent, idx */);
- extern void pr_ImsList(/* list */);
- extern void pr_WinEnv(/* wenv */);
- extern void pr_RunEnv(/* renv */);
- extern void pr_UserEnv(/* */);
- extern void pr_OutEnv(/* oenv */);
- extern void pr_CmdConf(/* */);
- extern void pr_CmdOpt(/* */);
- extern void pr_OpModeFlag(/* */);
- extern char *StateName(/* */);
- extern char *error_name(/* error */);
- extern char *proto_name(/* proto_idx */);
- extern char *sig_name(/* sig */);
- extern void pr_brk(/* msg */);
- # endif /* DEBUG */
- /* Macros */
- /* memory */
- #define CLR(p, st) memset((void *) p, 0, sizeof(st))
- #define COPY(d, s, n, st) memcpy((void *)(d), (void *)(s), (n) * sizeof(st))
- # ifdef DEBUG_MEM
- void *_mp_;
- #define ALLOC(n, st) (_mp_ = XtCalloc(n, sizeof(st)), \
- print_msg("ALLOC(%d, " #st "): _mp_=%p sz=%d\n", n, _mp_, sizeof(st)), (st *) _mp_)
- #define REALLOC(p, n, st) ( _mp = XtRealloc((char *) (p), (n) * sizeof(st)), \
- print_msg("REALLOC(%p, %d, " #st "): _mp_=%p\n", p, n, _mp_), (st *) _mp_)
- #define NEWSTR(s) (_mp_ = (s) && *(s) ? XtNewString(s) : NULL, \
- print_msg("NEWSTR(%s): _mp_=%p\n", s, _mp_), (char *) _mp_)
- #define FREE(p) (print_msg("FREE(%p)\n", p), XtFree((char *) p), (p) = 0)
- #define RENEWSTR(p, s) (_mp_ = (s) && *(s) ? XtNewString(s) : NULL, \
- print_msg("RENEWSTR(" #p "): %p(%s) => %p(%s)\n", p, p, _mp_, s), \
- XtFree((char *) p), (p) = (char *) _mp_)
- # else /* DEBUG_MEM */
- #define ALLOC(n, st) (st *) XtCalloc(n, sizeof(st))
- #define REALLOC(p, n, st) (st *) XtRealloc((char *) (p), (n) * sizeof(st))
- #define NEWSTR(s) ((s) && *(s)) ? XtNewString(s) : NULL
- #define FREE(p) XtFree((char *) p), (p) = 0
- #define RENEWSTR(p, s) XtFree((char *) p), (p) = NEWSTR(s)
- # endif /* DEBUG_MEM */
- #define FREE_LIST(pp) free_strlist(pp), (pp) = 0
- /* string */
- #define is_default_name(p) (*(p) == NAME_DEFAULT_CHAR)
- #define to_upper_ch(c) ((c) & ~0x20)
- #define to_lower_ch(c) ((c) | 0x20)
- #define to_upper_str(p) while (*(p)) *(p)++ &= ~0x20
- #define to_lower_str(p) while (*(p)) *(p)++ |= 0x20
- #define is_comment_char(c) ((c) == COMMENT_CHAR || (c) == COMMENT_CHAR2)
- #define is_white(c) ((c) == ' ' || (c) == '\t' || (c) == '\n')
- #define skip_white(p) while (is_white(*(p))) (p)++
- #define next_field(p) \
- for ((p)++; *(p) && !is_white(*(p)); (p)++) ; skip_white(p)
- #define cut_field(p) \
- for ((p)++; *(p) && !is_white(*(p)); (p)++) ; *(p)++ = 0; skip_white(p)
- /* misc */
- #define Max(a, b) ((a) < (b) ? (b) : (a))
- #define Min(a, b) ((a) > (b) ? (b) : (a))
- /* for DEBUG */
- # ifdef DEBUG
- #define DPR(msg) if (DebugLvl >= 1) print_msg msg
- #define DPR2(msg) if (DebugLvl >= 2) print_msg msg
- #define DPR3(msg) if (DebugLvl >= 3) print_msg msg
- # else
- #define DPR(msg)
- #define DPR2(msg)
- #define DPR3(msg)
- # endif /* DEBUG */
- #endif /* _XIMSFUNC_H_ */
|