rse 98/04/06 03:49:50
Modified: src/test/rename apapi.h apapi.h.mk rename.cf Log: Ok, here it comes the last part: The completely generated apapi.h header file containing prototypes for all public API functions (ap_xxx) Revision Changes Path 1.3 +259 -1 apache-1.3/src/test/rename/apapi.h Index: apapi.h =================================================================== RCS file: /export/home/cvs/apache-1.3/src/test/rename/apapi.h,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- apapi.h 1998/04/06 08:04:23 1.2 +++ apapi.h 1998/04/06 10:49:48 1.3 @@ -1 +1,259 @@ -NEED MORE WORK! +/* +** apapi.h -- Apache 1.3 API prototypes +** +** THIS IS A COMPLETE LIST OF PROTOTYPES +** FOR ALL PUBLIC API FUNCTIONS +*/ + +#ifndef APAPI_H +#define APAPI_H + +extern char ap_server_root[MAX_STRING_LEN]; +extern const char ap_day_snames[7][4]; +extern const char ap_month_snames[12][4]; +extern void ap_MD5Final(unsigned char digest[16], AP_MD5_CTX * context); +extern void ap_MD5Init(AP_MD5_CTX * context); +extern void ap_MD5Update(AP_MD5_CTX * context, const unsigned char *input, unsigned int inputLen); +extern void ap_add_cgi_vars(request_rec *r); +extern void ap_add_common_vars(request_rec *r); +extern void ap_add_module(module *m); +extern int ap_add_named_module(const char *name); +extern int ap_allow_options (request_rec *); +extern int ap_allow_overrides (request_rec *); +extern array_header * ap_append_arrays(pool *, const array_header *, const array_header *); +extern void ap_array_cat(array_header *dst, const array_header *src); +extern char * ap_auth_name (request_rec *); +extern char * ap_auth_type (request_rec *); +extern void ap_basic_http_header(request_rec *r); +extern int ap_bclose(BUFF *fb); +extern BUFF * ap_bcreate(pool *p, int flags); +extern int ap_bfilbuf(BUFF *fb); +extern int ap_bfileno(BUFF *fb, int direction); +extern int ap_bflsbuf(int c, BUFF *fb); +extern int ap_bflush(BUFF *fb); +extern int ap_bgetopt(BUFF *fb, int optname, void *optval); +extern int ap_bgets(char *s, int n, BUFF *fb); +extern void ap_bhalfduplex(BUFF *fb); +extern void ap_block_alarms(void); +extern int ap_blookc(char *buff, BUFF *fb); +extern int ap_bnonblock(BUFF *fb, int direction); +extern void ap_bonerror(BUFF *fb, void (*error) (BUFF *, int, void *), void *data); +extern void ap_bpushfd(BUFF *fb, int fd_in, int fd_out); +extern int ap_bputs(const char *x, BUFF *fb); +extern int ap_bprintf(BUFF *fb, const char *fmt,...) __attribute__((format(printf,2,3))); +extern int ap_bread(BUFF *fb, void *buf, int nbyte); +extern int ap_bsetflag(BUFF *fb, int flag, int value); +extern int ap_bsetopt(BUFF *fb, int optname, const void *optval); +extern int ap_bskiplf(BUFF *fb); +extern int ap_bvputs(BUFF *fb,...); +extern int ap_bwrite(BUFF *fb, const void *buf, int nbyte); +extern long ap_bytes_in_free_blocks(void); +extern long ap_bytes_in_pool(pool *p); +extern int ap_call_exec(request_rec *r, char *argv0, char **env, int shellcmd); +extern int ap_can_exec(const struct stat *); +extern int ap_cfg_closefile(configfile_t *fp); +extern int ap_cfg_getc(configfile_t *cfp); +extern int ap_cfg_getline(char *buf, size_t bufsize, configfile_t *cfp); +extern void ap_chdir_file(const char *file); +extern int ap_check_alarm(void); +extern const char * ap_check_cmd_context(cmd_parms *cmd, unsigned forbidden); +extern int ap_checkmask(const char *data, const char *mask); +extern void ap_child_terminate(request_rec *r); +extern void ap_cleanup_for_exec(void); +extern void ap_clear_module_list(void); +extern void ap_clear_pool(struct pool *); +extern void ap_clear_table(table *); +extern void ap_close_piped_log (piped_log *); +extern char * ap_construct_server(pool *p, const char *hostname, unsigned port, const request_rec *r); +extern char * ap_construct_url(pool *p, const char *uri, const request_rec *r); +extern array_header * ap_copy_array(pool *p, const array_header *src); +extern array_header * ap_copy_array_hdr(pool *p, const array_header *src); +extern table * ap_copy_table(pool *p, const table *); +extern int ap_count_dirs(const char *path); +extern char ** ap_create_environment(pool *p, table *t); +extern unsigned short ap_default_port_for_request(const request_rec *r); +extern unsigned short ap_default_port_for_scheme(const char *scheme_str); +extern char * ap_default_type (request_rec *); +extern void ap_destroy_pool(pool *); +extern void ap_destroy_sub_req(request_rec *r); +extern int ap_discard_request_body(request_rec *r); +extern char * ap_document_root (request_rec *); +extern int ap_each_byterange(request_rec *r, long *offset, long *length); +extern void ap_error_log2stderr (server_rec *); +extern char * ap_escape_html(pool *p, const char *s); +extern char * ap_escape_path_segment(pool *p, const char *s); +extern char * ap_escape_shell_cmd(pool *p, const char *s); +extern int ap_exists_scoreboard_image(void); +extern int ap_find_last_token(pool *p, const char *line, const char *tok); +extern module * ap_find_linked_module(const char *name); +extern const char * ap_find_module_name(module *m); +extern int ap_find_path_info(const char *uri, const char *path_info); +extern pool * ap_find_pool(const void *ts); +extern int ap_find_token(pool *p, const char *line, const char *tok); +extern int ap_fnmatch(const char *, const char *, int); +extern int ap_get_basic_auth_pw(request_rec *r, char **pw); +extern long ap_get_client_block(request_rec *r, char *buffer, int bufsiz); +extern struct tm * ap_get_gmtoff(int *tz); +extern void * ap_get_module_config(void *conf_vector, module *m); +extern const char * ap_get_remote_host(conn_rec *conn, void *dir_config, int type); +extern const char * ap_get_remote_logname(request_rec *r); +extern const char * ap_get_server_name(const request_rec *r); +extern unsigned ap_get_server_port(const request_rec *r); +extern char * ap_get_time(void); +extern char * ap_get_token(pool *p, char **accept_line, int accept_white); +extern void ap_getparents(char *name); +extern char * ap_getword(pool *p, const char **line, char stop); +extern char * ap_getword_conf(pool *p, const char **line); +extern char * ap_getword_conf_nc(pool *p, char **line); +extern char * ap_getword_nc(pool *p, char **line, char stop); +extern char * ap_getword_nulls(pool *p, const char **line, char stop); +extern char * ap_getword_nulls_nc(pool *p, char **line, char stop); +extern char * ap_getword_white(pool *p, const char **line); +extern char * ap_getword_white_nc(pool *p, char **line); +extern char * ap_gm_timestr_822(pool *p, time_t t); +extern gid_t ap_gname2id(const char *name); +extern void ap_hard_timeout(char *, request_rec *); +extern char * ap_ht_time(pool *p, time_t t, const char *fmt, int gmt); +extern int ap_ind(const char *, char); +extern int ap_index_of_response(int status); +extern void ap_internal_redirect(const char *new_uri, request_rec *); +extern void ap_internal_redirect_handler(const char *new_uri, request_rec *); +extern int ap_is_directory(const char *name); +extern int ap_is_fnmatch(const char *); +extern int ap_is_initial_req(request_rec *r); +extern int ap_is_matchexp(const char *str); +extern int ap_is_url(const char *u); +extern void ap_kill_cleanup(pool *p, void *data, void (*plain_cleanup) (void *)); +extern void ap_kill_cleanups_for_fd(pool *p, int fd); +extern void ap_kill_cleanups_for_socket(pool *p, int sock); +extern void ap_kill_timeout(request_rec *); +extern void ap_log_assert(const char *szExp, const char *szFile, int nLine) __attribute__((noreturn)); +extern void ap_log_printf(const server_rec *s, const char *fmt, ...) __attribute__((format(printf,2,3))); +extern void ap_log_reason(const char *reason, const char *fname, request_rec *r); +extern void ap_log_unixerr(const char *routine, const char *file, const char *msg, server_rec *s); +extern array_header * ap_make_array(pool *p, int nelts, int elt_size); +extern char * ap_make_dirstr(pool *a, const char *s, int n); +extern char * ap_make_dirstr_parent(pool *p, const char *s); +extern char * ap_make_dirstr_prefix(char *d, const char *s, int n); +extern char * ap_make_full_path(pool *a, const char *dir, const char *f); +extern pool * ap_make_sub_pool(pool *); +extern table * ap_make_table(pool *p, int nelts); +extern int ap_matches_request_vhost(request_rec *r, const char *host, unsigned port); +extern int ap_meets_conditions(request_rec *r); +extern void ap_no2slash(char *name); +extern void ap_note_auth_failure(request_rec *r); +extern void ap_note_basic_auth_failure(request_rec *r); +extern void ap_note_cleanups_for_fd(pool *, int); +extern void ap_note_cleanups_for_file(pool *, FILE *); +extern void ap_note_cleanups_for_socket(pool *, int); +extern void ap_note_digest_auth_failure(request_rec *r); +extern void ap_note_subprocess(pool *a, int pid, enum kill_conditions how); +extern void ap_null_cleanup(void *data); +extern piped_log * ap_open_piped_log (pool *p, const char *program); +extern table * ap_overlay_tables(pool *p, const table *overlay, const table *base); +extern void * ap_palloc(struct pool *, int nbytes); +extern time_t ap_parseHTTPdate(const char *date); +extern void ap_parse_uri(request_rec *r, const char *uri); +extern int ap_parse_uri_components(pool *p, const char *uri, uri_components *uptr); +extern int ap_parse_hostinfo_components(pool *p, const char *hostinfo, uri_components *uptr); +extern void * ap_pcalloc(struct pool *, int nbytes); +extern configfile_t * ap_pcfg_open_custom(pool *p, const char *descr, void *param, int(*getc_func)(void*), void *(*gets_func) (void *buf, size_t bufsiz, void *param), int(*close_func)(void*)); +extern configfile_t * ap_pcfg_openfile(pool *p, const char *name); +extern void ap_pclosedir(pool *p, DIR * d); +extern int ap_pclosef(struct pool *, int fd); +extern int ap_pclosesocket(pool *a, int sock); +extern struct hostent * ap_pduphostent(pool *p, struct hostent *hp); +extern int ap_pfclose(struct pool *, FILE *); +extern FILE * ap_pfdopen(struct pool *, int fd, const char *fmode); +extern FILE * ap_pfopen(struct pool *, const char *name, const char *fmode); +extern struct hostent * ap_pgethostbyname(pool *p, const char *hostname); +extern int ap_pool_is_ancestor(pool *a, pool *b); +extern void ap_pool_join(pool *p, pool *sub); +extern DIR * ap_popendir(pool *p, const char *name); +extern int ap_popenf(struct pool *, const char *name, int flg, int mode); +extern regex_t * ap_pregcomp(pool *p, const char *pattern, int cflags); +extern void ap_pregfree(pool *p, regex_t * reg); +extern char * ap_pregsub(pool *p, const char *input, const char *source, size_t nmatch, regmatch_t pmatch[]); +extern const char * ap_psignature(const char *prefix, request_rec *r); +extern int ap_psocket(pool *p, int, int, int); +extern char * ap_pstrcat(struct pool *,...); +extern char * ap_pstrdup(struct pool *, const char *s); +extern char * ap_pstrndup(struct pool *, const char *s, int n); +extern char * ap_psprintf(struct pool *, const char *fmt, ...) __attribute__((format(printf,2,3))); +extern char * ap_pvsprintf(struct pool *, const char *fmt, va_list); +extern void * ap_push_array(array_header *); +extern time_t ap_rationalize_mtime(request_rec *r, time_t mtime); +extern void ap_register_cleanup(pool *p, void *data, void (*plain_cleanup) (void *), void (*child_cleanup) (void *)); +extern void ap_register_other_child(int pid, void (*maintenance) (int reason, void *data, int status), void *data, int write_fd); +extern void ap_remove_module(module *m); +extern array_header * ap_requires (request_rec *); +extern void ap_reset_timeout(request_rec *); +extern int ap_rflush(request_rec *r); +extern int ap_rind(const char *, char); +extern int ap_rprintf(request_rec *r, const char *fmt,...) __attribute__((format(printf,2,3))); +extern int ap_rputc(int c, request_rec *r); +extern int ap_rputs(const char *str, request_rec *r); +extern void ap_run_cleanup(pool *p, void *data, void (*cleanup) (void *)); +extern int ap_run_sub_req(request_rec *r); +extern int ap_rvputs(request_rec *r,...); +extern int ap_rwrite(const void *buf, int nbyte, request_rec *r); +extern int ap_satisfies (request_rec *r); +extern int ap_scan_script_header_err(request_rec *r, FILE *f, char *buffer); +extern int ap_scan_script_header_err_buff(request_rec *r, BUFF *f, char *buffer); +extern long ap_send_fb(BUFF *f, request_rec *r); +extern long ap_send_fb_length(BUFF *f, request_rec *r, long length); +extern long ap_send_fd(FILE *f, request_rec *r); +extern long ap_send_fd_length(FILE *f, request_rec *r, long length); +extern int ap_send_header_field(request_rec *r, const char *fieldname, const char *fieldval); +extern void ap_send_http_header(request_rec *l); +extern size_t ap_send_mmap(void *mm, request_rec *r, size_t offset, size_t length); +extern void ap_send_size(size_t size, request_rec *r); +extern char * ap_server_root_relative(pool *p, char *fname); +extern int ap_set_byterange(request_rec *r); +extern int ap_set_content_length(request_rec *r, long length); +extern void ap_set_etag(request_rec *r); +extern const char * ap_set_file_slot(cmd_parms *, char *, char *); +extern const char * ap_set_flag_slot(cmd_parms *, char *, int); +extern int ap_set_keepalive(request_rec *r); +extern void ap_set_last_modified(request_rec *r); +extern void ap_set_module_config(void *conf_vector, module *m, void *val); +extern const char * ap_set_string_slot(cmd_parms *, char *, char *); +extern const char * ap_set_string_slot_lower(cmd_parms *, char *, char *); +extern int ap_setup_client_block(request_rec *r, int read_policy); +extern int ap_should_client_block(request_rec *r); +extern void ap_soft_timeout(char *, request_rec *); +extern int ap_some_auth_required(request_rec *r); +extern int ap_spawn_child_err(pool *, int (*)(void *), void *, enum kill_conditions, FILE **pipe_in, FILE **pipe_out, FILE **pipe_err); +extern int ap_spawn_child_err_buff(pool *, int (*)(void *), void *, enum kill_conditions, BUFF **pipe_in, BUFF **pipe_out, BUFF **pipe_err); +extern const char * ap_srm_command_loop(cmd_parms *parms, void *config); +extern void ap_str_tolower(char *); +extern int ap_strcasecmp_match(const char *str, const char *exp); +extern int ap_strcmp_match(const char *str, const char *exp); +extern request_rec * ap_sub_req_lookup_file(const char *new_file, const request_rec *r); +extern request_rec * ap_sub_req_lookup_uri(const char *new_file, const request_rec *r); +extern void ap_sync_scoreboard_image(void); +extern void ap_table_add(table *, const char *name, const char *val); +extern void ap_table_addn(table *, const char *name, const char *val); +extern void ap_table_do(int (*comp) (void *, const char *, const char *), void *rec, const table *t,...); +extern char * ap_table_get(const table *, const char *); +extern void ap_table_merge(table *, const char *name, const char *more_val); +extern void ap_table_mergen(table *, const char *name, const char *more_val); +extern void ap_table_set(table *, const char *name, const char *val); +extern void ap_table_setn(table *, const char *name, const char *val); +extern void ap_table_unset(table *, const char *key); +extern time_t ap_tm2sec(const struct tm *t); +extern uid_t ap_uname2id(const char *name); +extern void ap_unblock_alarms(void); +extern int ap_unescape_url(char *url); +extern char * ap_unparse_uri_components(pool *p, const uri_components *uptr, unsigned flags); +extern void ap_unregister_other_child(void *data); +extern time_t ap_update_mtime(request_rec *r, time_t dependency_mtime); +extern char * ap_uudecode(pool *, const char *); +extern int ap_vbprintf(BUFF *fb, const char *fmt, va_list vlist); +extern const char * ap_get_server_built(void); +extern const char * ap_get_server_version(void); +extern void ap_log_error(const char *file, int line, int level, const server_rec *s, const char *fmt, ...) __attribute__((format(printf,5,6))); +extern void ap_log_error_old(const char *err, server_rec *s); +extern char * ap_escape_path(pool *p, const char *path, int partial); + +#endif /* APAPI_H */ 1.3 +30 -12 apache-1.3/src/test/rename/apapi.h.mk Index: apapi.h.mk =================================================================== RCS file: /export/home/cvs/apache-1.3/src/test/rename/apapi.h.mk,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- apapi.h.mk 1998/04/06 08:04:23 1.2 +++ apapi.h.mk 1998/04/06 10:49:49 1.3 @@ -14,11 +14,31 @@ my ($func) = @_; $rc = join('', `lid -f $id --key=token --result=grep $func`); - if (($r, $f) = ($rc =~ m|\.c:\d+:\s*API_EXPORT\((.+?)\)(.+?\))|s)) { - $pt = "$r$f"; - $pt =~ s|\n.+?:\d+:||sg; - return "extern $1$2;"; - } + if ( $rc =~ m|^(.+?\.h):\d+:\s*API_EXPORT(?:_NONSTD)?\(.+?\)\s*$func\s*\(|m + or $rc =~ m|^(.+?\.h):\d+:\s*(?:extern\s*)?API_VAR_EXPORT\s*.+?$func.+?;|m) { + $file = $1; + open(FP, "<$file") || die; + $contents = join('', <FP>); + close(FP); + if (($r, $f) = ($contents =~ m|\n\s*API_EXPORT(?:_NONSTD)?\(([^)]+)\)\s+($func\s*\(.+?\);)|s)) { + $r =~ s|\s*\n\s*| |sg; + $r =~ s|\s+| |sg; + $r =~ s|extern\s+||g; + $f =~ s|\s*\n\s*| |sg; + $f =~ s|\s+| |sg; + $pt = sprintf("%-20s %s", $r, $f); + return $pt; + } + if (($r, $f) = ($contents =~ m|\n\s*(?:extern\s*)?API_VAR_EXPORT\s*([^;]*?)($func[^;]*;)|s)) { + $r =~ s|\s*\n\s*| |sg; + $r =~ s|\s+| |sg; + $r =~ s|extern\s+||g; + $f =~ s|\s*\n\s*| |sg; + $f =~ s|\s+| |sg; + $pt = sprintf("%-20s %s", $r, $f); + return $pt; + } + } return ''; } @@ -26,9 +46,10 @@ open(HDR, ">$header") || die; print HDR <<'EOT'; /* -** apapi.h -- Apache API prototypes +** apapi.h -- Apache 1.3 API prototypes ** -** THIS IS NOT COMPLETE BECAUSE IT NEEDS MANUAL FIXUP! +** THIS IS A COMPLETE LIST OF PROTOTYPES +** FOR ALL PUBLIC API FUNCTIONS */ #ifndef APAPI_H @@ -41,16 +62,13 @@ if (($s1, $old, $s2, $new, $s3) = ($l =~ m|^(\s*)(\S+)(\s+)(\S+)(\s*)$|)) { if ($new =~ m|^API_|) { $new =~ s|^API_|ap_|; + $pt = &func_prototype($new); if ($pt eq '') { print STDERR "Sorry, prototype for `$new' cannot be determined automatically\n"; print HDR "/* prototype for `$new' cannot be automatically determined */\n"; } - elsif ($pt eq 'extern ;') { - print STDERR "Sorry, prototype for `$new' cannot be determined automatically\n"; - print HDR "/* prototype for `$new' cannot be automatically determined */\n"; - } else { - print HDR "$pt\n"; + print HDR "extern $pt\n"; } } } 1.3 +4 -2 apache-1.3/src/test/rename/rename.cf Index: rename.cf =================================================================== RCS file: /export/home/cvs/apache-1.3/src/test/rename/rename.cf,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- rename.cf 1998/04/06 08:04:24 1.2 +++ rename.cf 1998/04/06 10:49:49 1.3 @@ -175,7 +175,7 @@ core_reorder_directories APX_core_reorder_directories count_dirs API_count_dirs create_environment API_create_environment -create_per_dir_config API_create_per_dir_config +create_per_dir_config APX_create_per_dir_config create_request_config APX_create_request_config default_port_for_request API_default_port_for_request default_port_for_scheme API_default_port_for_scheme @@ -448,5 +448,7 @@ aplog_error API_log_error log_error API_log_error_old os_escape_path API_escape_path -os_is_path_absolute API_is_path_absolute + +# specials: needs tag in source to become API_! +os_is_path_absolute APX_is_path_absolute