1 /* ========================================================================
2  * Copyright 2008 Mark Crispin
3  * ========================================================================
4  */
5 
6 /*
7  * Program:	Mailbox Access routines
8  *
9  * Author:	Mark Crispin
10  *
11  * Date:	24 May 1995
12  * Last Edited:	19 November 2008
13  *
14  * Previous versions of this file were
15  *
16  * Copyright 1988-2008 University of Washington
17  *
18  * Licensed under the Apache License, Version 2.0 (the "License");
19  * you may not use this file except in compliance with the License.
20  * You may obtain a copy of the License at
21  *
22  *     http://www.apache.org/licenses/LICENSE-2.0
23  *
24  */
25 
26 #define auth_link a_link
27 #define auth_log a_log
28 #define auth_login_client al_cli
29 #define auth_login_server al_ser
30 #define auth_ext a_ext
31 #define auth_external_client ae_cli
32 #define auth_external_server ae_ser
33 #define auth_md5 a_md5
34 #define auth_md5_valid a5_val
35 #define auth_md5_client a5_cli
36 #define auth_md5_server a5_ser
37 #define auth_pla a_pla
38 #define auth_plain_client ap_cli
39 #define auth_plain_server ap_ser
40 #define authenticate a_auth
41 #define authserver_login a_serv
42 #define body_encodings bencds
43 #define body_types btypes
44 #define compare_csizedtext cm_szt
45 #define compare_cstring cm_cst
46 #define compare_string cm_str
47 #define compare_uchar cm_uch
48 #define compare_ulong cm_uln
49 #define default_proto d_prot
50 #define dummy_append d_appn
51 #define dummy_canonicalize d_cano
52 #define dummy_check d_chck
53 #define dummy_close d_clos
54 #define dummy_copy d_copy
55 #define dummy_create d_crea
56 #define dummy_create_path d_crep
57 #define dummy_delete d_del
58 #define dummy_expunge d_exp
59 #define dummy_file d_fil
60 #define dummy_list d_list
61 #define dummy_list_work d_lstw
62 #define dummy_listed d_lstd
63 #define dummy_lsub d_lsub
64 #define dummy_open d_open
65 #define dummy_parameters d_parm
66 #define dummy_ping d_ping
67 #define dummy_rename d_ren
68 #define dummy_scan d_scan
69 #define dummy_search d_srch
70 #define dummy_subscribe d_subs
71 #define dummy_valid d_val
72 #define env_parameters e_parm
73 #define fatal fatal
74 #define file_string fl_str
75 #define file_string_init fl_ini
76 #define file_string_next fl_nxt
77 #define file_string_setpos fl_sps
78 #define fs_get f_get
79 #define fs_give f_give
80 #define fs_resize f_rsiz
81 #define hash_create h_crea
82 #define hash_destory h_dest
83 #define hash_index h_indx
84 #define hash_lookup h_lkup
85 #define hash_add h_add
86 #define hash_lookup_and_add h_lad
87 #define imap_OK i_OK
88 #define imap_acl_work i_aclw
89 #define imap_append i_appn
90 #define imap_append_single i_apps
91 #define imap_anon i_anon
92 #define imap_auth i_auth
93 #define imap_cache i_cach
94 #define imap_cap i_cap
95 #define imap_capability i_capa
96 #define imap_challenge i_chln
97 #define imap_check i_chck
98 #define imap_close i_clos
99 #define imap_copy i_copy
100 #define imap_create i_crea
101 #define imap_delete i_del
102 #define imap_deleteacl i_dacl
103 #define imap_expunge i_expn
104 #define imap_fake i_fake
105 #define imap_fast i_fast
106 #define imap_fetch i_fetc
107 #define imap_flag i_flag
108 #define imap_flags i_flgs
109 #define imap_gc i_gc
110 #define imap_gc_body ig_bdy
111 #define imap_getacl i_gacl
112 #define imap_getquota i_gqot
113 #define imap_getquotaroot i_gqtr
114 #define imap_host i_host
115 #define imap_list i_list
116 #define imap_listrights i_lrgh
117 #define imap_list_work il_wrk
118 #define imap_login i_logn
119 #define imap_lsub i_lsub
120 #define imap_manage i_man
121 #define imap_msgdata i_msgd
122 #define imap_msgno i_msgn
123 #define imap_myrights i_mrgh
124 #define imap_open i_open
125 #define imap_parameters i_parm
126 #define imap_parse_address ip_adr
127 #define imap_parse_adrlist ip_adl
128 #define imap_parse_astring ip_ast
129 #define imap_parse_body ip_bdy
130 #define imap_parse_body_parameter ipb_pa
131 #define imap_parse_body_structure ipb_st
132 #define imap_parse_capabilities ip_cap
133 #define imap_parse_disposition ip_dsp
134 #define imap_parse_envelope ip_env
135 #define imap_parse_extension ip_ext
136 #define imap_parse_flags ip_flg
137 #define imap_parse_header ip_hdr
138 #define imap_parse_language ip_lng
139 #define imap_parse_namespace ip_nam
140 #define imap_parse_reply ip_rep
141 #define imap_parse_response ip_rsp
142 #define imap_parse_string ip_str
143 #define imap_parse_stringlist ip_stl
144 #define imap_parse_thread ip_thr
145 #define imap_parse_unsolicited ip_uns
146 #define imap_parse_user_flag ipu_fl
147 #define imap_ping i_ping
148 #define imap_reform_sequence i_rfrs
149 #define imap_rename i_ren
150 #define imap_reply i_rep
151 #define imap_response i_rspn
152 #define imap_scan i_scan
153 #define imap_search i_srch
154 #define imap_send i_send
155 #define imap_send_astring is_ast
156 #define imap_send_literal is_lit
157 #define imap_send_sdate iss_da
158 #define imap_send_slist iss_sl
159 #define imap_send_spgm iss_pg
160 #define imap_send_spgm_trim iss_pt
161 #define imap_send_sset iss_st
162 #define imap_send_sset_work iss_sw
163 #define imap_setacl i_sacl
164 #define imap_setquota i_sqot
165 #define imap_sort i_sort
166 #define imap_sout i_sout
167 #define imap_soutr i_sotr
168 #define imap_status i_stat
169 #define imap_structure i_stru
170 #define imap_subscribe i_sub
171 #define imap_thread i_thrd
172 #define imap_thread_work i_thrw
173 #define imap_uid i_uid
174 #define imap_unsubscribe i_uns
175 #define imap_valid i_val
176 #define internal_date in_dat
177 #define mail_append_full m_appn
178 #define mail_append_multiple m_appm
179 #define mail_append_set m_apps
180 #define mail_auth m_auth
181 #define mail_body m_body
182 #define mail_cdate m_cdat
183 #define mail_check m_chck
184 #define mail_close_full m_clos
185 #define mail_copy_full m_copy
186 #define mail_create m_crea
187 #define mail_criteria m_crit
188 #define mail_criteria_date mc_dat
189 #define mail_criteria_string mc_str
190 #define mail_date m_date
191 #define mail_debug m_dbug
192 #define mail_delete m_del
193 #define mail_dlog m_dlog
194 #define mail_elt m_elt
195 #define mail_exists m_exst
196 #define mail_expunge_full m_expn
197 #define mail_expunged m_expd
198 #define mail_fetch_body fs_bdy
199 #define mail_fetch_fast mf_fst
200 #define mail_fetch_flags mf_flg
201 #define mail_fetch_header mf_hdr
202 #define mail_fetch_message mf_msg
203 #define mail_fetch_mime mf_mim
204 #define mail_fetch_overview mf_ovr
205 #define mail_fetch_overview_sequence mf_ovs
206 #define mail_fetch_overview_default mf_ovd
207 #define mail_fetch_structure mf_str
208 #define mail_fetch_text mf_txt
209 #define mail_fetch_text_return mf_txr
210 #define mail_fetch_string_return mf_tsr
211 #define mail_fetchfrom mf_frm
212 #define mail_fetchsubject mf_sub
213 #define mail_filter m_filt
214 #define mail_flag m_flag
215 #define mail_free_acl mr_acl
216 #define mail_free_address mr_add
217 #define mail_free_body mr_bdy
218 #define mail_free_body_data mrb_da
219 #define mail_free_body_parameter mrb_pr
220 #define mail_free_body_part mrb_pt
221 #define mail_free_cache mr_cac
222 #define mail_free_elt mr_elt
223 #define mail_free_envelope mr_env
224 #define mail_free_handle mr_han
225 #define mail_free_namespace mr_nsp
226 #define mail_free_quotalist mr_qtl
227 #define mail_free_searchheader mrs_hd
228 #define mail_free_searchor mrs_or
229 #define mail_free_searchpgm mrs_pg
230 #define mail_free_searchpgmlist mrs_pl
231 #define mail_free_searchset mrs_st
232 #define mail_free_sortpgm mr_spg
233 #define mail_free_stringlist mr_sls
234 #define mail_free_threadnode mr_thn
235 #define mail_gc m_gc
236 #define mail_gc_msg m_gcm
237 #define mail_gc_body m_gcb
238 #define mail_initbody m_ibdy
239 #define mail_link m_link
240 #define mail_list m_list
241 #define mail_lock m_lock
242 #define mail_longdate ml_lda
243 #define mail_lookup_auth m_laut
244 #define mail_lookup_auth_name m_latn
245 #define mail_lsub m_lsub
246 #define mail_makehandle m_mhdl
247 #define mail_match_lines m_mlns
248 #define mail_msgno m_msgn
249 #define mail_newacl mn_acl
250 #define mail_newaddr mn_add
251 #define mail_newbody mn_bdy
252 #define mail_newbody_parameter mnb_pr
253 #define mail_newbody_part mnb_pt
254 #define mail_newbody_message_part mnb_mp
255 #define mail_new_cache_elt mn_elt
256 #define mail_newenvelope mn_env
257 #define mail_newmsg mn_msg
258 #define mail_newquotalist mn_qtl
259 #define mail_newsearchheader mns_hd
260 #define mail_newsearchor mns_or
261 #define mail_newsearchpgm mns_pg
262 #define mail_newsearchpgmlist mns_pl
263 #define mail_newsearchset mns_st
264 #define mail_newsortpgm mn_spg
265 #define mail_newstringlist mn_sls
266 #define mail_newthreadnode mn_thr
267 #define mail_nodebug m_ndbg
268 #define mail_open m_open
269 #define mail_parameters m_parm
270 #define mail_parse_date mp_dat
271 #define mail_parse_flags mp_flg
272 #define mail_parse_set mp_set
273 #define mail_partial_body mpt_bd
274 #define mail_partial_text mpt_tx
275 #define mail_ping m_ping
276 #define mail_read m_read
277 #define mail_recent m_rcent
278 #define mail_rename m_ren
279 #define mail_scan m_scan
280 #define mail_search_addr ms_adr
281 #define mail_search_body ms_bdy
282 #define mail_search_default ms_def
283 #define mail_search_full m_srch
284 #define mail_search_gets ms_gts
285 #define mail_search_header ms_hdr
286 #define mail_search_header_text ms_hdt
287 #define mail_search_keyword ms_key
288 #define mail_search_msg ms_msg
289 #define mail_search_string ms_str
290 #define mail_search_string_work ms_stw
291 #define mail_search_text ms_txt
292 #define mail_sequence m_seq
293 #define mail_shortdate m_shtd
294 #define mail_skip_fwd msk_fw
295 #define mail_skip_re msk_re
296 #define mail_sort ml_srt
297 #define mail_sort_cache ms_csh
298 #define mail_sort_compare ms_cmp
299 #define mail_sort_loadcache ms_lcs
300 #define mail_sort_msgs ms_mgs
301 #define mail_status m_stat
302 #define mail_status_default m_stad
303 #define mail_stream m_strm
304 #define mail_string m_strg
305 #define mail_string_init mt_ini
306 #define mail_string_next mt_nxt
307 #define mail_string_setpos mt_sps
308 #define mail_strip_subject mst_sb
309 #define mail_strip_subject_wsp mst_ws
310 #define mail_strip_subject_blob mst_bl
311 #define mail_subscribe m_sub
312 #define mail_thread m_thr
313 #define mail_threadlist mt_lst
314 #define mail_thread_c2node mt_c2n
315 #define mail_thread_check_child mt_ckc
316 #define mail_thread_compare_date mtc_da
317 #define mail_thread_loadcache mt_ldc
318 #define mail_thread_msgs mt_mgs
319 #define mail_thread_orderedsubject mt_osb
320 #define mail_thread_parse_msgid mtp_mi
321 #define mail_thread_parse_references mtp_rf
322 #define mail_thread_prune_dummy mt_prd
323 #define mail_thread_references mt_ref
324 #define mail_thread_sort mt_srt
325 #define mail_uid m_uid
326 #define mail_uid_sequence mu_seq
327 #define mail_unlock m_unl
328 #define mail_unsubscribe m_uns
329 #define mail_usable_network_stream m_usns
330 #define mail_utf7_valid m_ut7v
331 #define mail_valid m_val
332 #define mail_valid_net mv_net
333 #define mail_valid_net_parse mvn_pr
334 #define mail_valid_net_parse_work mvn_pw
335 #define mail_versioncheck m_vers
336 #define mailboxfile mbxfil
337 #define md5_init m5_ini
338 #define md5_update m5_upd
339 #define md5_final m5_fin
340 #define mime2_decode m2_dec
341 #define mime2_text m2_txt
342 #define mime2_token m2_tok
343 #define mm_cache mm_cac
344 #define mm_critical mm_crt
345 #define mm_diskerror mm_dse
346 #define mm_dlog mm_dlg
347 #define mm_exists mm_exs
348 #define mm_expunged mm_exp
349 #define mm_fatal mm_ftl
350 #define mm_flags mm_flg
351 #define mm_list mm_lst
352 #define mm_log mm_log
353 #define mm_login mm_lgi
354 #define mm_lsub mm_lsb
355 #define mm_mailbox mm_mbx
356 #define mm_nocritical mm_ncr
357 #define mm_notify mm_not
358 #define mm_searched mm_src
359 #define myhomedir myhome
360 #define mylocalhost myhost
361 #define myusername_full myuser
362 #define net_aopen nt_aop
363 #define net_close nt_cls
364 #define net_getbuffer nt_gtb
365 #define net_getdata nt_gtd
366 #define net_getline nt_gtl
367 #define net_host nt_hst
368 #define net_localhost nt_lhs
369 #define net_open nt_opn
370 #define net_port nt_prt
371 #define net_sout nt_sot
372 #define net_soutr nt_str
373 #define netmsg_read nm_rea
374 #define netmsg_slurp nm_slr
375 #define netmsg_slurp_text nm_slt
376 #define newsrc_check_uid nsc_ui
377 #define newsrc_create ns_crea
378 #define newsrc_error ns_err
379 #define newsrc_lsub ns_lsub
380 #define newsrc_newmessages ns_nms
381 #define newsrc_newstate ns_nst
382 #define newsrc_read ns_rea
383 #define newsrc_status ns_sta
384 #define newsrc_update ns_upd
385 #define newsrc_write ns_wri
386 #define newsrc_write_error ns_wer
387 #define nntp_append n_appn
388 #define nntp_canonicalize n_cano
389 #define nntp_check n_chck
390 #define nntp_close n_clos
391 #define nntp_copy n_copy
392 #define nntp_create n_crea
393 #define nntp_delete n_del
394 #define nntp_expunge n_expn
395 #define nntp_fake n_fake
396 #define nntp_fetchfast nf_fst
397 #define nntp_fetchflags nf_flg
398 #define nntp_fetchmessage nf_msg
399 #define nntp_flagmsg n_fmsg
400 #define nntp_gc n_gc
401 #define nntp_getmap n_gmap
402 #define nntp_header n_head
403 #define nntp_isvalid n_isvl
404 #define nntp_list n_list
405 #define nntp_lsub n_lsub
406 #define nntp_mail n_mail
407 #define nntp_mclose n_mcls
408 #define nntp_mopen n_mopn
409 #define nntp_open_full n_open
410 #define nntp_over n_ovr
411 #define nntp_overview n_over
412 #define nntp_parameters n_parm
413 #define nntp_parsestructure n_pars
414 #define nntp_parse_overview n_povr
415 #define nntp_ping n_ping
416 #define nntp_rename n_ren
417 #define nntp_reply n_repl
418 #define nntp_scan n_scan
419 #define nntp_search n_srch
420 #define nntp_search_msg ns_msg
421 #define nntp_send n_send
422 #define nntp_send_auth ns_aut
423 #define nntp_send_auth_work ns_atw
424 #define nntp_send_work n_sndw
425 #define nntp_sort n_sort
426 #define nntp_sort_loadcache ns_lcs
427 #define nntp_soutr n_sout
428 #define nntp_status n_stat
429 #define nntp_subscribe n_sub
430 #define nntp_text n_text
431 #define nntp_text_slurp nt_slp
432 #define nntp_thread n_thrd
433 #define nntp_unsubscribe n_uns
434 #define nntp_valid n_val
435 #define pop3_append p_appn
436 #define pop3_auth p_auth
437 #define pop3_cache p_cach
438 #define pop3_challenge p_chal
439 #define pop3_check p_chck
440 #define pop3_close p_clos
441 #define pop3_copy p_copy
442 #define pop3_create p_crea
443 #define pop3_delete p_del
444 #define pop3_expunge p_exp
445 #define pop3_fake p_fake
446 #define pop3_fetchfast pf_fst
447 #define pop3_fetchflags pf_flg
448 #define pop3_fetchmessage pf_msg
449 #define pop3_gc p_gc
450 #define pop3_list p_list
451 #define pop3_lsub p_lsub
452 #define pop3_open p_open
453 #define pop3_parameters p_parm
454 #define pop3_parsestructure p_pars
455 #define pop3_ping p_ping
456 #define pop3_rename p_ren
457 #define pop3_reply p_rep
458 #define pop3_response p_resp
459 #define pop3_scan p_scan
460 #define pop3_send p_send
461 #define pop3_send_num ps_num
462 #define pop3_status p_stat
463 #define pop3_subscribe p_sub
464 #define pop3_unsubscribe p_uns
465 #define pop3_valid p_val
466 #define rfc822_8bit r
467 #define rfc822_address r_addr
468 #define rfc822_address_line ra_lin
469 #define rfc822_base64 r_b64
470 #define rfc822_binary r_bin
471 #define rfc822_cat r_cat
472 #define rfc822_contents r_cont
473 #define rfc822_cpy r_cpy
474 #define rfc822_cpy_adr rc_adr
475 #define rfc822_date r_date
476 #define rfc822_default_subtype rd_sub
477 #define rfc822_encode_body_7bit reb_7b
478 #define rfc822_encode_body_8bit reb_8b
479 #define rfc822_header r_head
480 #define rfc822_header_line rh_lin
481 #define rfc822_output r_out
482 #define rfc822_output_address ro_adr
483 #define rfc822_output_address_line roa_ln
484 #define rfc822_output_address_list roa_li
485 #define rfc822_output_body ro_bdy
486 #define rfc822_output_body_header rob_hd
487 #define rfc822_output_full ro_ful
488 #define rfc822_output_flush ro_flu
489 #define rfc822_output_header ro_hdr
490 #define rfc822_output_header_line roh_ln
491 #define rfc822_output_cat ro_cat
492 #define rfc822_output_parameter ro_par
493 #define rfc822_output_stringlist ro_stl
494 #define rfc822_output_text ro_txt
495 #define rfc822_parse_address rp_adr
496 #define rfc822_parse_addrspec rp_ads
497 #define rfc822_parse_adrlist rp_adl
498 #define rfc822_parse_content rp_cnt
499 #define rfc822_parse_content_header rpc_hd
500 #define rfc822_parse_group rp_grp
501 #define rfc822_parse_mailbox rp_mbx
502 #define rfc822_parse_msg_full rp_msg
503 #define rfc822_parse_parameter rp_par
504 #define rfc822_parse_phrase rp_phr
505 #define rfc822_parse_routeaddr rp_rte
506 #define rfc822_parse_word rp_wrd
507 #define rfc822_phraseonly r_poly
508 #define rfc822_qprint r_qpnt
509 #define rfc822_quote r_quot
510 #define rfc822_skip_comment rs_cmt
511 #define rfc822_skipws rs_ws
512 #define rfc822_timezone r_tz
513 #define rfc822_write_address_full rw_adr
514 #define rfc822_write_body_header rwbh_8
515 #define server_input_wait s_iwat
516 #define server_login s_log
517 #define server_init s_init
518 #define sm_read sm_rd
519 #define sm_subscribe sm_sub
520 #define sm_unsubscribe sm_uns
521 #define smtp_auth s_auth
522 #define smtp_challenge s_chal
523 #define smtp_close s_clos
524 #define smtp_ehlo s_ehlo
525 #define smtp_fake s_fake
526 #define smtp_mail s_mail
527 #define smtp_open_full s_open
528 #define smtp_rcpt s_rcpt
529 #define smtp_reply s_repl
530 #define smtp_response s_resp
531 #define smtp_send s_send
532 #define smtp_send_auth ss_aut
533 #define smtp_send_auth_work ss_atw
534 #define smtp_send_work ss_wrk
535 #define smtp_soutr s_str
536 #define strcrlfcpy sc_cpy
537 #define strcrlflen sc_len
538 #define tcp_aopen t_aopn
539 #define tcp_canonical t_cnon
540 #define tcp_clientaddr t_cadr
541 #define tcp_clienthost t_chst
542 #define tcp_clientport t_cprt
543 #define tcp_close t_clos
544 #define tcp_getbuffer tg_buf
545 #define tcp_getdata tg_dat
546 #define tcp_getline tg_lin
547 #define tcp_host t_host
548 #define tcp_localhost t_lhst
549 #define tcp_open t_open
550 #define tcp_parameters t_parameters
551 #define tcp_port t_port
552 #define tcp_remotehost t_rhst
553 #define tcp_serveraddr t_sadr
554 #define tcp_serverhost t_shst
555 #define tcp_serverport t_sprt
556 #define tcp_sout t_sout
557 #define tcp_soutr t_str
558 #define textcpy txcopy
559 #define textcpystring txcpst
560 #define textcpyoffstring txcpos
561 #define ucs4_cs_get u4_csg
562 #define ucs4_decompose u4_dcm
563 #define ucs4_decompose_recursive u4_dcr
564 #define ucs4_rmapbuf u4r_bf
565 #define ucs4_rmaplen u4r_ln
566 #define ucs4_rmaptext u4r_tx
567 #define ucs4_titlecase u4_tcs
568 #define ucs4_width u4_wid
569 #define utf8_badcharset u8_bcs
570 #define utf8_charset u8_chs
571 #define utf8_cstext u8_cst
572 #define utf8_cstocstext u8_cct
573 #define utf8_from_mutf7 u8fmu7
574 #define utf8_get u8_get
575 #define utf8_get_raw u8_gtr
576 #define utf8_iso2022text u8_i22
577 #define utf8_mime2text u8_mi2
578 #define utf8_put u8_put
579 #define utf8_rmap u8_rmp
580 #define utf8_rmap_cs u8r_cs
581 #define utf8_rmap_gen u8r_gn
582 #define utf8_rmapsize u8r_sz
583 #define utf8_rmaptext u8r_tx
584 #define utf8_script u8_scr
585 #define utf8_searchpgm u8_spg
586 #define utf8_size u8_siz
587 #define utf8_stringlist u8_lst
588 #define utf8_text u8_txt
589 #define utf8_text_2022 u8t_22
590 #define utf8_text_8859_1 u8t_we
591 #define utf8_text_1byte0 u8t_10
592 #define utf8_text_1byte u8t_1b
593 #define utf8_text_1byte8 u8t_18
594 #define utf8_text_cs ut8_cs
595 #define utf8_text_euc u8t_eu
596 #define utf8_text_dbyte u8t_db
597 #define utf8_text_dbyte2 u8t_d2
598 #define utf8_text_sjis u8t_sj
599 #define utf8_text_ucs2 u8t_u2
600 #define utf8_text_ucs4 ut8_u4
601 #define utf8_text_utf7 ut8_u7
602 #define utf8_text_utf8 ut8_u8
603 #define utf8_text_utf16 ut8_16
604 #define utf8_to_mutf7 u8tmu7
605 #define utf8_validate u8_val
606 #define utf8_textwidth u8_twd
607