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