Mailing List Archive

cvs commit: httpd-docs-1.3/apidoc dict-B_SFIO.html dict-ap_array_pstrcat.html todo TODO api.list
coar 00/09/18 04:44:46

Modified: apidoc TODO api.list
Added: apidoc dict-B_SFIO.html dict-ap_array_pstrcat.html todo
Log:
Add a couple of detail files and update the TODO list with info
autogenerated from the todo Perl script. NOTE: Don't *replace*
the TODO file with the script's output; the file contains some
subjective information about missing items and stale/poor content.

Revision Changes Path
1.9 +720 -1 httpd-docs-1.3/apidoc/TODO

Index: TODO
===================================================================
RCS file: /home/cvs/httpd-docs-1.3/apidoc/TODO,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -u -r1.8 -r1.9
--- TODO 2000/08/09 14:01:51 1.8
+++ TODO 2000/09/18 11:44:45 1.9
@@ -592,4 +592,723 @@
SECURITY_HOLE_PASS_AUTHORIZATION
server_addr_rec
short_score
-uri_components
+
+The following items need exampless:
+ APLOG_LEVELMASK
+ APLOG_WIN32ERROR
+ ap_base64decode
+ ap_base64decode_binary
+ ap_base64decode_len
+ ap_base64encode
+ ap_base64encode_binary
+ ap_base64encode_len
+ ap_bfileno
+ ap_bflsbuf
+ ap_bflush
+ ap_bgetflag
+ ap_bgetopt
+ ap_bgets
+ ap_bhalfduplex
+ ap_block_alarms
+ ap_blookc
+ ap_bnonblock
+ ap_bonerror
+ ap_bprintf
+ ap_bpushfd
+ ap_bpushh
+ ap_bputc
+ ap_bputs
+ ap_bread
+ ap_bsetflag
+ ap_bsetopt
+ ap_bskiplf
+ ap_bspawn_child
+ ap_bvputs
+ ap_bwrite
+ ap_bytes_in_free_blocks
+ ap_bytes_in_pool
+ ap_call_exec
+ ap_can_exec
+ ap_cfg_closefile
+ ap_cfg_getc
+ ap_cfg_getline
+ ap_chdir_file
+ ap_checkmask
+ ap_check_alarm
+ ap_check_cmd_context
+ ap_child_exit_modules
+ ap_child_init_modules
+ ap_cleanup_for_exec
+ ap_clear_module_list
+ ap_clear_pool
+ ap_clear_table
+ ap_close_piped_log
+ ap_construct_server
+ ap_construct_url
+ ap_content_type_tolower
+ ap_copy_array
+ ap_copy_array_hdr
+ ap_copy_table
+ ap_core_reorder_directories
+ ap_count_dirs
+ ap_create_environment
+ ap_create_per_dir_config
+ ap_create_request_config
+ ap_daemons_limit
+ ap_daemons_max_free
+ ap_daemons_min_free
+ ap_daemons_to_start
+ ap_default_port_for_request
+ ap_default_port_for_scheme
+ ap_default_type
+ ap_destroy_pool
+ ap_die
+ ap_each_byterange
+ ap_error_log2stderr
+ ap_escape_html
+ ap_escape_path
+ ap_escape_path_segment
+ ap_escape_shell_cmd
+ ap_excess_requests_per_child
+ ap_exists_config_define
+ ap_exists_scoreboard_image
+ ap_extended_status
+ ap_find_command
+ ap_find_command_in_modules
+ ap_find_last_token
+ ap_find_linked_module
+ ap_find_list_item
+ ap_find_module_name
+ ap_find_path_info
+ ap_find_token
+ ap_fini_vhost_config
+ ap_force_library_loading
+ ap_getparents
+ ap_getpass
+ ap_getword
+ ap_getword_conf
+ ap_getword_conf_nc
+ ap_getword_nc
+ ap_getword_nulls
+ ap_getword_nulls_nc
+ ap_getword_white
+ ap_getword_white_nc
+ ap_get_basic_auth_pw
+ ap_get_client_block
+ ap_get_gmtoff
+ ap_get_limit_req_body
+ ap_get_list_item
+ ap_get_local_host
+ ap_get_module_config
+ ap_get_remote_host
+ ap_get_remote_logname
+ ap_get_time
+ ap_get_token
+ ap_get_virthost_addr
+ ap_get_win32_interpreter
+ ap_gm_timestr_822
+ ap_gname2id
+ ap_group_id
+ ap_handle_command
+ ap_hard_timeout
+ ap_ht_time
+ ap_ind
+ ap_index_of_response
+ ap_init_alloc
+ ap_init_modules
+ ap_init_vhost_config
+ ap_init_virtual_host
+ ap_internal_redirect
+ ap_internal_redirect_handler
+ ap_is_directory
+ ap_is_fnmatch
+ ap_is_matchexp
+ ap_is_url
+ ap_keepalive_timeout
+ ap_kill_cleanup
+ ap_kill_cleanups_for_fd
+ ap_kill_cleanups_for_socket
+ ap_limit_section
+ ap_loaded_modules
+ ap_log_assert
+ ap_log_error
+ ap_log_pid
+ ap_log_printf
+ ap_log_reason
+ ap_log_rerror
+ ap_log_unixerr
+ ap_make_array
+ ap_make_dirstr
+ ap_make_dirstr_parent
+ ap_make_dirstr_prefix
+ ap_make_etag
+ ap_make_full_path
+ ap_make_sub_pool
+ ap_make_table
+ ap_matches_request_vhost
+ ap_max_requests_per_child
+ ap_md5
+ ap_md5context
+ ap_md5contextTo64
+ ap_md5digest
+ ap_MD5Encode
+ ap_MD5Final
+ ap_MD5Init
+ ap_MD5Update
+ ap_md5_binary
+ ap_merge_per_dir_configs
+ ap_method_number_of
+ ap_my_generation
+ ap_no2slash
+ ap_note_cleanups_for_fd
+ ap_note_cleanups_for_file
+ ap_note_cleanups_for_h
+ ap_note_cleanups_for_socket
+ ap_note_subprocess
+ ap_null_cleanup
+ ap_open_logs
+ ap_open_piped_log
+ ap_os_case_canonical_filename
+ ap_os_escape_path
+ ap_os_is_filename_valid
+ ap_os_is_path_absolute
+ ap_os_systemcase_filename
+ ap_overlap_tables
+ ap_overlay_tables
+ ap_palloc
+ ap_parseHTTPdate
+ ap_parse_htaccess
+ ap_parse_uri
+ ap_parse_uri_components
+ ap_parse_vhost_addrs
+ ap_pbase64decode
+ ap_pbase64encode
+ ap_pcalloc
+ ap_pcfg_openfile
+ ap_pcfg_open_custom
+ ap_pclosedir
+ ap_pclosef
+ ap_pcloseh
+ ap_pclosesocket
+ ap_pduphostent
+ ap_pfclose
+ ap_pfdopen
+ ap_pfopen
+ ap_pgethostbyname
+ ap_pid_fname
+ ap_pool
+ ap_pool_is_ancestor
+ ap_pool_join
+ ap_popendir
+ ap_popenf
+ ap_pregcomp
+ ap_pregfree
+ ap_pregsub
+ ap_psignature
+ ap_psocket
+ ap_pstrcat
+ ap_pstrdup
+ ap_pstrndup
+ ap_read_config
+ ap_read_request
+ ap_regerror
+ ap_regexec
+ ap_register_cleanup
+ ap_register_other_child
+ ap_registry_get_server_root
+ ap_registry_get_service_conf
+ ap_registry_set_service_conf
+ ap_release_mutex
+ ap_remove_module
+ ap_remove_spaces
+ ap_requires
+ ap_response_code_string
+ ap_rfc1413
+ ap_rind
+ ap_rprintf
+ ap_rputc
+ ap_rputs
+ ap_run_cleanup
+ ap_rvputs
+ ap_rwrite
+ ap_scan_script_header_err
+ ap_scan_script_header_err_buff
+ ap_scan_script_header_err_core
+ ap_scoreboard_fname
+ ap_send_error_response
+ ap_send_fb
+ ap_send_fb_length
+ ap_send_fd
+ ap_send_fd_length
+ ap_send_header_field
+ ap_send_mmap
+ ap_send_size
+ ap_server_confname
+ ap_server_root_relative
+ ap_setup_client_block
+ ap_set_callback_and_alarm
+ ap_set_content_length
+ ap_set_file_slot
+ ap_set_flag_slot
+ ap_set_module_config
+ ap_set_name_virtual_host
+ ap_set_string_slot
+ ap_set_string_slot_lower
+ ap_set_sub_req_protocol
+ ap_SHA1Final
+ ap_SHA1Init
+ ap_SHA1Update
+ ap_SHA1Update_binary
+ ap_sha1_base64
+ ap_size_list_item
+ ap_soft_timeout
+ ap_spawn_child
+ ap_spawn_child_err
+ ap_spawn_child_err_buff
+ ap_srm_command_loop
+ ap_standalone
+ ap_start_restart
+ ap_strcasecmp_match
+ ap_strcasestr
+ ap_strcmp_match
+ ap_str_tolower
+ ap_sub_req_lookup_file
+ ap_sub_req_lookup_uri
+ ap_sub_req_method_uri
+ ap_table_add
+ ap_table_addn
+ ap_table_do
+ ap_table_get
+ ap_table_merge
+ ap_table_mergen
+ ap_table_set
+ ap_table_setn
+ ap_table_unset
+ ap_threads_per_child
+ ap_time_process_request
+ ap_tm2sec
+ ap_to64
+ ap_uname2id
+ ap_unblock_alarms
+ ap_unescape_url
+ ap_unparse_uri_components
+ ap_unregister_other_child
+ ap_update_child_status
+ ap_update_mtime
+ ap_update_vhost_given_ip
+ ap_user_id
+ ap_user_name
+ ap_uudecode
+ ap_uuencode
+ ap_vbprintf
+ ap_vformatter
+ ap_vformatter_buff
+ ap_vrprintf
+ ascii2ebcdic
+ BO_BYTECT
+ BUFF
+ B_ASCII2EBCDIC
+ B_CHUNK
+ B_EBCDIC2ASCII
+ B_EOF
+ B_EOUT
+ B_ERROR
+ B_RD
+ B_RDERR
+ B_RDWR
+ B_SAFEREAD
+ B_SFIO
+ B_SOCKET
+ B_WR
+ B_WRERR
+ closedir
+ cmd_parms
+ command_rec
+ configfile_t
+ conn_rec
+ ebcdic2ascii
+ FNM_CASE_BLIND
+ FNM_NOESCAPE
+ FNM_NOMATCH
+ FNM_PATHNAME
+ FNM_PERIOD
+ HANDLE
+ HTTP_VERSION
+ MODULE_MAGIC_AT_LEAST
+ MODULE_MAGIC_COOKIE
+ MODULE_MAGIC_NUMBER_MAJOR
+ MODULE_MAGIC_NUMBER_MINOR
+ opendir
+ OS_ASC
+ os_spawnle
+ os_spawnv
+ os_spawnve
+ os_stat
+ os_strftime
+ piped_log
+ proxyreqtype
+ readdir
+ regcomp
+ regerror
+ regexec
+ regex_t
+ regfree
+ regmatch_t
+ REQUEST_CHUNKED_DECHUNK
+ REQUEST_CHUNKED_ERROR
+ REQUEST_CHUNKED_PASS
+ REQUEST_NO_BODY
+ request_rec
+ scoreboard
+ server_addr_rec
+ server_rec
+ short_score
+ STANDARD_MODULE_STUFF
+ uri_components
+The following items have defined detail files that don't exist:
+ APLOG_ALERT
+ APLOG_CRIT
+ APLOG_DEBUG
+ APLOG_EMERG
+ APLOG_ERR
+ APLOG_INFO
+ APLOG_LEVELMASK
+ APLOG_MARK
+ APLOG_NOERRNO
+ APLOG_NOTICE
+ APLOG_WARNING
+ APLOG_WIN32ERROR
+ ap_add_module
+ ap_add_named_module
+ ap_add_per_url_conf
+ ap_allow_overrides
+ ap_basic_http_header
+ ap_bclose
+ ap_bcreate
+ ap_bfileno
+ ap_bflsbuf
+ ap_bflush
+ ap_bgetc
+ ap_bgetflag
+ ap_bgetopt
+ ap_bgets
+ ap_bhalfduplex
+ ap_blookc
+ ap_bnonblock
+ ap_bonerror
+ ap_bpushfd
+ ap_bpushh
+ ap_bputc
+ ap_bputs
+ ap_bread
+ ap_bsetflag
+ ap_bsetopt
+ ap_bskiplf
+ ap_bspawn_child
+ ap_bvputs
+ ap_bwrite
+ ap_checkmask
+ ap_check_access
+ ap_check_alarm
+ ap_check_auth
+ ap_check_cmd_context
+ ap_check_user_id
+ ap_child_exit_modules
+ ap_child_init_modules
+ ap_child_terminate
+ ap_clear_module_list
+ ap_close_piped_log
+ ap_content_type_tolower
+ ap_core_reorder_directories
+ ap_create_environment
+ ap_create_per_dir_config
+ ap_create_request_config
+ ap_default_port_for_request
+ ap_default_port_for_scheme
+ ap_default_type
+ ap_die
+ ap_discard_request_body
+ ap_each_byterange
+ ap_error_log2stderr
+ ap_exists_scoreboard_image
+ ap_finalize_request_protocol
+ ap_finalize_sub_req_protocol
+ ap_find_command
+ ap_find_command_in_modules
+ ap_find_last_token
+ ap_find_linked_module
+ ap_find_module_name
+ ap_find_path_info
+ ap_find_pool
+ ap_find_types
+ ap_fini_vhost_config
+ ap_force_library_loading
+ ap_get_basic_auth_pw
+ ap_get_module_config
+ ap_get_remote_host
+ ap_get_remote_logname
+ ap_handle_command
+ ap_header_parse
+ ap_ind
+ ap_index_of_response
+ ap_init_alloc
+ ap_init_modules
+ ap_init_vhost_config
+ ap_init_virtual_host
+ ap_invoke_handler
+ ap_is_fnmatch
+ ap_is_initial_req
+ ap_limit_section
+ ap_log_error
+ ap_log_pid
+ ap_log_printf
+ ap_log_reason
+ ap_log_rerror
+ ap_log_transaction
+ ap_log_unixerr
+ ap_make_dirstr_parent
+ ap_make_dirstr_prefix
+ ap_matches_request_vhost
+ ap_md5
+ ap_md5context
+ ap_md5contextTo64
+ ap_md5digest
+ ap_MD5Final
+ ap_MD5Init
+ ap_MD5Update
+ AP_MD5_CTX
+ ap_meets_conditions
+ ap_merge_per_dir_configs
+ ap_note_auth_failure
+ ap_note_basic_auth_failure
+ ap_note_digest_auth_failure
+ ap_null_cleanup
+ ap_open_logs
+ ap_open_piped_log
+ ap_os_is_path_absolute
+ ap_parse_htaccess
+ ap_parse_uri
+ ap_parse_uri_components
+ ap_parse_vhost_addrs
+ ap_pcfg_openfile
+ ap_pcfg_open_custom
+ ap_pclosedir
+ ap_pclosesocket
+ ap_pduphostent
+ ap_pgethostbyname
+ ap_pool_is_ancestor
+ ap_pool_join
+ ap_popendir
+ ap_pregfree
+ ap_process_request
+ ap_process_resource_config
+ ap_psignature
+ ap_psocket
+ ap_read_config
+ ap_read_request
+ ap_register_other_child
+ ap_remove_loaded_module
+ ap_remove_module
+ ap_requires
+ ap_response_code_string
+ ap_rfc1413
+ ap_rflush
+ ap_rind
+ ap_run_fixups
+ ap_run_post_read_request
+ ap_rwrite
+ ap_satisfies
+ ap_scan_script_header_err
+ ap_scan_script_header_err_buff
+ ap_send_error_response
+ ap_send_header_field
+ ap_send_http_options
+ ap_send_http_trace
+ ap_send_mmap
+ ap_send_size
+ ap_server_root_relative
+ ap_setup_prelinked_modules
+ ap_set_byterange
+ ap_set_callback_and_alarm
+ ap_set_content_length
+ ap_set_etag
+ ap_set_file_slot
+ ap_set_flag_slot
+ ap_set_keepalive
+ ap_set_last_modified
+ ap_set_module_config
+ ap_set_name_virtual_host
+ ap_set_string_slot
+ ap_set_string_slot_lower
+ ap_set_sub_req_protocol
+ ap_show_directives
+ ap_show_modules
+ ap_some_auth_required
+ ap_srm_command_loop
+ ap_start_restart
+ ap_start_shutdown
+ ap_str_tolower
+ ap_sync_scoreboard_image
+ ap_table_do
+ ap_time_process_request
+ ap_translate_name
+ ap_unparse_uri_components
+ ap_unregister_other_child
+ ap_update_child_status
+ ap_update_mtime
+ ap_update_vhost_from_headers
+ ap_update_vhost_given_ip
+ ap_util_init
+ ap_util_uri_init
+ ap_validate_password
+ ap_vformatter
+ ap_vformatter_buff
+ ap_wait_t
+ array_header
+ BO_BYTECT
+ BUFF
+ B_ASCII2EBCDIC
+ B_CHUNK
+ B_EBCDIC2ASCII
+ B_EOF
+ B_EOUT
+ B_ERROR
+ B_RD
+ B_RDERR
+ B_RDWR
+ B_SAFEREAD
+ B_SOCKET
+ B_WR
+ B_WRERR
+ command_rec
+ configfile_t
+ DECLINE_CMD
+ DEFAULT_ADMIN
+ FNM_CASE_BLIND
+ FNM_NOESCAPE
+ FNM_NOMATCH
+ FNM_PATHNAME
+ FNM_PERIOD
+ HTTP_EXPECTATION_FAILED
+ HTTP_FAILED_DEPENDENCY
+ HTTP_INSUFFICIENT_STORAGE
+ HTTP_LOCKED
+ HTTP_NOT_EXTENDED
+ HTTP_PROCESSING
+ HTTP_RANGE_NOT_SATISFIABLE
+ HTTP_UNPROCESSABLE_ENTITY
+ HTTP_VERSION
+ HTTP_VERSION_MAJOR
+ HTTP_VERSION_MINOR
+ MODULE_MAGIC_COOKIE
+ MODULE_MAGIC_NUMBER_MAJOR
+ MODULE_MAGIC_NUMBER_MINOR
+ M_COPY
+ M_LOCK
+ M_MKCOL
+ M_MOVE
+ M_PATCH
+ M_PROPFIND
+ M_UNLOCK
+ OPT_ALL
+ OPT_EXECCGI
+ OPT_INCLUDES
+ OPT_INCNOEXEC
+ OPT_INDEXES
+ OPT_MULTI
+ OPT_NONE
+ OPT_SYM_LINKS
+ OPT_SYM_OWNER
+ OPT_UNSET
+ OS_ASC
+ piped_log
+ proxyreqtype
+ regex_t
+ regmatch_t
+ REQUEST_CHUNKED_DECHUNK
+ REQUEST_CHUNKED_ERROR
+ REQUEST_CHUNKED_PASS
+ REQUEST_NO_BODY
+ scoreboard
+ server_addr_rec
+ short_score
+ STANDARD_MODULE_STUFF
+ uri_components
+The following items have no descriptions nor detail files:
+ ap_base64decode
+ ap_base64decode_binary
+ ap_base64decode_len
+ ap_base64encode
+ ap_base64encode_binary
+ ap_base64encode_len
+ ap_daemons_limit
+ ap_daemons_max_free
+ ap_daemons_min_free
+ ap_daemons_to_start
+ ap_excess_requests_per_child
+ ap_exists_config_define
+ ap_extended_status
+ ap_find_list_item
+ ap_getpass
+ ap_get_limit_req_body
+ ap_get_list_item
+ ap_get_win32_interpreter
+ ap_group_id
+ ap_loaded_modules
+ ap_log_assert
+ ap_make_etag
+ ap_max_requests_per_child
+ ap_MD5Encode
+ ap_md5_binary
+ ap_method_number_of
+ ap_my_generation
+ ap_note_cleanups_for_h
+ ap_os_case_canonical_filename
+ ap_os_escape_path
+ ap_os_is_filename_valid
+ ap_os_systemcase_filename
+ ap_overlap_tables
+ ap_pbase64decode
+ ap_pbase64encode
+ ap_pcloseh
+ ap_pid_fname
+ ap_regerror
+ ap_regexec
+ ap_registry_get_server_root
+ ap_registry_get_service_conf
+ ap_registry_set_service_conf
+ ap_release_mutex
+ ap_remove_spaces
+ ap_scan_script_header_err_core
+ ap_scoreboard_fname
+ ap_server_confname
+ ap_SHA1Final
+ ap_SHA1Init
+ ap_SHA1Update
+ ap_SHA1Update_binary
+ ap_sha1_base64
+ ap_size_list_item
+ ap_spawn_child
+ ap_standalone
+ ap_strcasestr
+ ap_sub_req_method_uri
+ ap_threads_per_child
+ ap_to64
+ ap_user_id
+ ap_user_name
+ ap_uuencode
+ ap_vrprintf
+ ascii2ebcdic
+ closedir
+ ebcdic2ascii
+ opendir
+ os_spawnle
+ os_spawnv
+ os_spawnve
+ os_stat
+ os_strftime
+ readdir
+ regcomp
+ regerror
+ regexec
+ regfree



1.29 +3 -3 httpd-docs-1.3/apidoc/api.list

Index: api.list
===================================================================
RCS file: /home/cvs/httpd-docs-1.3/apidoc/api.list,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -u -r1.28 -r1.29
--- api.list 2000/09/18 01:58:01 1.28
+++ api.list 2000/09/18 11:44:45 1.29
@@ -1687,8 +1687,8 @@
|\
|
C|B_SFIO\
+ |env CFLAGS="-Wall -D$*" ./configure\
|\
- |\
|SA-BUFF\
|<dict-$*.html
C|BO_BYTECT\
@@ -3994,9 +3994,9 @@
|
R|ap_array_pstrcat\
|char *$*(pool *p, const array_header *arr, const char sep);\
- |\
+ |lang = $*(r-&gt;pool, variant-&gt;content_languages, ',');\
|\
- |
+ |<dict-$*.html
R|ap_base64decode\
|int $*(char *plain_dst, const char *coded_src);\
|\



1.1 httpd-docs-1.3/apidoc/dict-B_SFIO.html

Index: dict-B_SFIO.html
===================================================================
<p>
If this name is defined, Apache's buffering routines will use
the <code>sfwrite</code> and <code>sfread</code>. However,
this name is never defined by default or by any of Apache's
build configuration script; the builder must define it
explicitly as shown in the example.
</p>



1.1 httpd-docs-1.3/apidoc/dict-ap_array_pstrcat.html

Index: dict-ap_array_pstrcat.html
===================================================================
<p>
This routine returns a pointer to a string composed of all the values in the
specified array, separated by the designated delimiter character.
The string is allocated from the specified pool.
</p>
<p>
<b>Note:</b> This routine assumes that each array element consists
simply of a <code>char&nbsp;*</code> pointer (such as created by a
<code>ap_make_array(p,&nbsp;4,&nbsp;sizeof(char&nbsp;*))</code> call).
It cannot be used with other or more complex types of array elements;
results are unpredictable, and a mmory fault is almost guaranteed if
used with such.
</p>



1.1 httpd-docs-1.3/apidoc/todo

Index: todo
===================================================================
#!/usr/local/bin/perl -w
#
# Examine the dictionary and note what remains to be done.
#

use APIdict;

$dict = new APIdict("api.list");

@items = $dict->entity_list();
foreach (@items) {
push(@temp, $_)
if ($dict->category($_) ne 'X');
}
@items = sort {uc($a) cmp uc($b)} (@temp);

#
# First, find out which ones don't even have definitions..
#
@missing_def = ();
foreach (@items) {
push(@missing_def, $_)
if (! $dict->definition($_));
}

#
# Now find out which ones need one or more examples.
#
@missing_example = ();
foreach (@items) {
push(@missing_example, $_)
if (! $dict->example($_));
}

#
# Finally, the ones that don't have a description.
#
@missing_desc = ();
@missing_dfile = ();
foreach (@items) {
my($file) = $dict->description_file($_);
if ($file && (! -r $file)) {
push(@missing_dfile, $_);
}
elsif ((! $file) && (! $dict->description($_))) {
push(@missing_desc, $_);
}
}

#
# Now display the results.
#
if (@missing_def) {
print "The following items need definitions:\n";
foreach (@missing_def) {
print " $_\n";
}
}

if (@missing_example) {
print "The following items need exampless:\n";
foreach (@missing_example) {
print " $_\n";
}
}

if (@missing_dfile) {
print "The following items have defined detail files that don't exist:\n";
foreach (@missing_dfile) {
print " $_\n";
}
}

if (@missing_desc) {
print "The following items have no descriptions nor detail files:\n";
foreach (@missing_desc) {
print " $_\n";
}
}