1 /* repint_subrs.h -- library-local prototypes
2    Copyright (C) 1993, 1994 John Harper <john@dcs.warwick.ac.uk>
3    $Id$
4 
5    This file is part of Jade.
6 
7    Jade is free software; you can redistribute it and/or modify it
8    under the terms of the GNU General Public License as published by
9    the Free Software Foundation; either version 2, or (at your option)
10    any later version.
11 
12    Jade is distributed in the hope that it will be useful, but
13    WITHOUT ANY WARRANTY; without even the implied warranty of
14    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the
15    GNU General Public License for more details.
16 
17    You should have received a copy of the GNU General Public License
18    along with Jade; see the file COPYING.  If not, write to
19    the Free Software Foundation, 51 Franklin Street, Fifth Floor,
20    Boston, MA 02110-1301 USA */
21 
22 #ifndef REPINT_SUBRS_H
23 #define REPINT_SUBRS_H
24 
25 /* from continuations.c */
26 extern void rep_continuations_init (void);
27 
28 /* from datums.c */
29 extern void rep_pre_datums_init (void);
30 extern void rep_datums_init (void);
31 
32 /* from files.c */
33 extern void rep_files_init(void);
34 extern void rep_files_kill(void);
35 
36 /* from find.c */
37 extern struct rep_saved_regexp_data *rep_saved_matches;
38 extern void rep_string_modified (repv string);
39 extern void rep_mark_regexp_data(void);
40 extern void rep_find_init(void);
41 extern void rep_find_kill(void);
42 
43 /* from fluids.c */
44 extern void rep_fluids_init (void);
45 
46 /* from lisp.c */
47 extern repv rep_scm_t, rep_scm_f;
48 extern repv rep_readl(repv, int *);
49 extern repv rep_eval (repv form, repv tail_posn);
50 extern void rep_lisp_prin(repv, repv);
51 extern void rep_string_princ(repv, repv);
52 extern void rep_string_print(repv, repv);
53 extern repv rep_copy_list(repv);
54 extern rep_bool rep_compare_error(repv error, repv handler);
55 extern void rep_lisp_init(void);
56 extern rep_bool rep_single_step_flag;
57 
58 /* from lispcmds.c */
59 extern rep_xsubr Slambda;
60 extern repv Qload_filename;
61 extern repv Fcall_with_exception_handler (repv, repv);
62 extern void rep_lispcmds_init(void);
63 extern repv Flist_star (int argc, repv *argv);
64 extern repv Fnconc_ (int argc, repv *argv);
65 extern repv Fappend (int argc, repv *argv);
66 extern repv Fvector (int argc, repv *argv);
67 extern repv Fconcat (int, repv *);
68 extern repv Fnum_eq (int, repv *);
69 extern repv Fnum_noteq (int, repv *);
70 extern repv Fgtthan (int, repv *);
71 extern repv Fgethan (int, repv *);
72 extern repv Fltthan (int, repv *);
73 extern repv Flethan (int, repv *);
74 
75 /* from lispmach.c */
76 extern repv Qbytecode_error;
77 extern repv Frun_byte_code(repv code, repv consts, repv stkreq);
78 extern repv rep_apply_bytecode (repv subr, int nargs, repv *args);
79 extern void rep_lispmach_init(void);
80 extern void rep_lispmach_kill(void);
81 
82 /* from main.c */
83 extern char *rep_stack_bottom;
84 extern void rep_deprecated (rep_bool *seen, const char *desc);
85 
86 /* from macros.c */
87 extern void rep_macros_before_gc (void);
88 extern void rep_macros_clear_history (void);
89 extern void rep_macros_init (void);
90 
91 /* from misc.c */
92 #ifndef HAVE_STPCPY
93 extern char *stpcpy(char *, const char *);
94 #endif
95 #ifndef HAVE_STRNCASECMP
96 extern int strncasecmp (const char *s1, const char *s2, size_t n);
97 #endif
98 extern void rep_misc_init(void);
99 
100 /* from numbers.c */
101 extern repv rep_parse_number (char *buf, unsigned int len, unsigned int radix,
102 			      int sign, unsigned int type);
103 extern void rep_numbers_init (void);
104 extern repv Fplus(int, repv *);
105 extern repv Fminus(int, repv *);
106 extern repv Fproduct(int, repv *);
107 extern repv Fdivide(int, repv *);
108 extern repv Flogior(int, repv *);
109 extern repv Flogxor(int, repv *);
110 extern repv Flogand(int, repv *);
111 extern repv Fmax(int, repv *);
112 extern repv Fmin(int, repv *);
113 extern repv Fgcd (int, repv *);
114 
115 /* from origin.c */
116 extern rep_bool rep_record_origins;
117 extern void rep_record_origin (repv form, repv stream, long start_line);
118 extern repv Flexical_origin (repv form);
119 extern void rep_mark_origins (void);
120 extern void rep_origin_init (void);
121 
122 /* from regsub.c */
123 extern void rep_default_regsub(int, rep_regsubs *, char *, char *, void *);
124 extern int rep_default_regsublen(int, rep_regsubs *, char *, void *);
125 
126 /* from streams.c */
127 extern void rep_streams_init(void);
128 
129 /* from structures.c */
130 extern repv rep_default_structure, rep_specials_structure;
131 extern repv Qfeatures, Q_structures, Q_meta, Qrep, Q_specials,
132     Q_user_structure, Qrep_structures, Qrep_lang_interpreter,
133     Qrep_vm_interpreter, Qexternal, Qinternal;
134 extern rep_struct_node *rep_search_imports (rep_struct *s, repv var);
135 extern repv Fmake_structure (repv, repv, repv, repv);
136 extern repv F_structure_ref (repv, repv);
137 extern repv Fstructure_set (repv, repv, repv);
138 extern repv Fstructure_define (repv, repv, repv);
139 extern repv Fstructure_bound_p (repv, repv);
140 extern repv Fexternal_structure_ref (repv, repv);
141 extern repv Fintern_structure (repv);
142 extern repv Fget_structure (repv);
143 extern repv Fexport_binding (repv var);
144 extern repv rep_get_initial_special_value (repv sym);
145 extern repv rep_documentation_property (repv structure);
146 extern void rep_pre_structures_init (void);
147 extern void rep_structures_init (void);
148 
149 /* from symbols.c */
150 extern repv rep_keyword_obarray;
151 extern int rep_pre_symbols_init(void);
152 extern void rep_symbols_init(void);
153 extern int rep_allocated_funargs, rep_used_funargs;
154 extern repv Freal_set (repv var, repv value);
155 extern repv rep_bind_special (repv oldList, repv symbol, repv newVal);
156 
157 /* from tuples.c */
158 extern int rep_allocated_tuples, rep_used_tuples;
159 extern void rep_sweep_tuples (void);
160 extern void rep_tuples_kill(void);
161 
162 /* from values.c */
163 extern int rep_type_cmp(repv, repv);
164 extern int rep_ptr_cmp(repv, repv);
165 extern rep_cons_block *rep_cons_block_chain;
166 extern rep_cons *rep_cons_freelist;
167 extern int rep_allocated_cons, rep_used_cons;
168 extern rep_cons *rep_allocate_cons (void);
169 extern void rep_cons_free(repv);
170 extern void rep_pre_values_init (void);
171 extern void rep_values_init(void);
172 extern void rep_values_kill (void);
173 extern void rep_dumped_init(char *file);
174 
175 /* from weak-refs.c */
176 extern repv Fmake_weak_ref (repv value);
177 extern repv Fweak_ref (repv ref);
178 extern repv Fweak_ref_set (repv ref, repv value);
179 extern void rep_scan_weak_refs (void);
180 extern void rep_weak_refs_init (void);
181 
182 #ifdef rep_HAVE_UNIX
183 
184 /* from unix_dl.c */
185 extern repv rep_open_dl_library(repv file_name);
186 extern void rep_mark_dl_data(void);
187 extern void rep_kill_dl_libraries(void);
188 extern int rep_intern_dl_library (repv file_name);
189 extern void *rep_lookup_dl_symbol (int idx, const char *name);
190 
191 /* from unix_files.c */
192 extern repv rep_file_name_absolute_p(repv file);
193 extern repv rep_expand_file_name(repv file);
194 extern repv rep_canonical_file_name(repv file);
195 extern repv rep_file_name_nondirectory(repv file);
196 extern repv rep_file_name_directory(repv file);
197 extern repv rep_file_name_as_directory(repv file);
198 extern repv rep_directory_file_name(repv file);
199 extern repv rep_delete_file(repv file);
200 extern repv rep_rename_file(repv old, repv new_);
201 extern repv rep_make_directory(repv dir);
202 extern repv rep_delete_directory(repv dir);
203 extern repv rep_copy_file(repv src, repv dst);
204 extern repv rep_file_readable_p(repv file);
205 extern repv rep_file_writable_p(repv file);
206 extern repv rep_file_executable_p(repv file);
207 extern repv rep_file_exists_p(repv file);
208 extern repv rep_file_regular_p(repv file);
209 extern repv rep_file_directory_p(repv file);
210 extern repv rep_file_symlink_p(repv file);
211 extern repv rep_file_owner_p(repv file);
212 extern repv rep_file_gid(repv file);
213 extern repv rep_file_uid(repv file);
214 extern repv rep_file_nlinks(repv file);
215 extern repv rep_file_size(repv file);
216 extern repv rep_file_modes(repv file);
217 extern repv rep_set_file_modes(repv file, repv modes);
218 extern repv rep_file_modes_as_string(repv file);
219 extern repv rep_file_modtime(repv file);
220 extern repv rep_directory_files(repv dir_name);
221 extern repv rep_read_symlink (repv file);
222 extern repv rep_make_symlink (repv file, repv contents);
223 extern repv rep_getpwd(void);
224 extern repv rep_structure_file (repv in);
225 
226 /* from unix_main.c */
227 extern repv rep_user_login_name(void);
228 extern repv rep_user_full_name(void);
229 extern repv rep_user_home_directory(repv user);
230 extern repv rep_system_name(void);
231 extern void rep_pre_sys_os_init(void);
232 extern void rep_sys_os_init(void);
233 extern void rep_sys_os_kill(void);
234 
235 /* from unix_processes.c */
236 extern repv rep_system(char *command);
237 extern void rep_proc_init(void);
238 extern void rep_proc_kill(void);
239 
240 #ifndef HAVE_REALPATH
241 /* from realpath.c */
242 extern char *realpath (const char *name, char *resolved);
243 #endif
244 
245 #endif /* rep_HAVE_UNIX */
246 
247 #endif /* REPINT_SUBRS_H */
248