├── .gitignore ├── COPYING ├── Changelog ├── FILES ├── INSTALL ├── KNOWN_BUGS ├── Makefile.in ├── README ├── README.CVS ├── README.git ├── TODO ├── UPGRADE ├── acconfig.h ├── aclocal.m4 ├── archive ├── 1998 ├── .indent.pro ├── Makefile.in ├── README ├── lists.h ├── mbox2hypermail.c ├── msg2archive.c ├── runtest └── test-msg ├── autogen.sh ├── config.guess ├── config.h.in ├── config.sub ├── configs ├── hmrc.example ├── hypermail-footer.hyp ├── hypermail-index.hyp ├── hypermail-msg.hyp └── hypermail.rc ├── configure ├── configure.ac ├── contrib ├── canonicalize.pl ├── cron_hypermail ├── fixhtime.pl ├── hoaf-28 │ ├── README │ ├── collect_snipplets.py │ ├── create_archive_snipplet.py │ ├── footer_html.hdr │ ├── haof-0.1.dtd │ ├── hypermail-2b28-2b28+.patch │ └── top_html.hdr ├── hyperfeed.pl ├── hypetombox.pl ├── ls2mail ├── mailbox_date_trimmer │ ├── README.html │ ├── README.mailbox_reader │ ├── mailbox_date_trimmer.py │ └── mailbox_reader.py ├── msg2hypermailarchive.py └── runtest ├── docs ├── Makefile.in ├── archive_search.html ├── attachments.txt ├── customizing.html ├── hmrc.4 ├── hmrc.html ├── hr.yellow.png ├── hypermail-faq.html ├── hypermail.1 ├── hypermail.html ├── hypermail.png ├── index_hypermail.txt └── stars.png ├── install-sh ├── lcc ├── README.txt ├── config.h ├── defaults.h ├── dirent.c ├── dirent.h ├── getdate.c ├── hypermail_files.txt ├── lcc_extras.c ├── lcc_extras.h ├── pcre.h ├── pcre_chartables.c └── pcre_config.h ├── libcgi ├── .indent.pro ├── Makefile.in ├── cgi.h ├── form_ent.c ├── form_tags.c ├── get_cgi_info.c ├── html.c ├── libcgi.html ├── main.c ├── mcode.c ├── strops.c ├── syn_mime.c ├── syn_url.c └── template.c ├── ltmain.sh ├── maketgz ├── patchlevel.h ├── src ├── .indent.pro ├── .splintrc ├── Makefile.in ├── base64.c ├── base64.h ├── date.c ├── defaults.h.in ├── dmatch.c ├── dmatch.h ├── domains.c ├── domains.h ├── file.c ├── finelink.c ├── finelink.h ├── fnv │ ├── Makefile.in │ ├── README │ ├── aclocal.m4 │ ├── config.guess │ ├── config.in │ ├── config.sub │ ├── configure │ ├── configure.in │ ├── configure.scan │ ├── fnv.h │ ├── fnv32.c │ ├── fnv64.c │ ├── hash_32.c │ ├── hash_64.c │ ├── have_ulong64.c │ ├── ltconfig │ └── ltmain.sh ├── getdate.h ├── getdate.texi ├── getdate.y ├── getname.c ├── getname.h ├── hypermail.c ├── hypermail.h ├── lang.c ├── lang.h ├── lock.c ├── mail.c ├── mem.c ├── parse.c ├── parse.h ├── pcre │ ├── 132html │ ├── AUTHORS │ ├── CMakeLists.txt │ ├── COPYING │ ├── ChangeLog │ ├── CheckMan │ ├── CleanTxt │ ├── Detrail │ ├── HACKING │ ├── INSTALL │ ├── LICENCE │ ├── Makefile.am │ ├── Makefile.in │ ├── NEWS │ ├── NON-AUTOTOOLS-BUILD │ ├── NON-UNIX-USE │ ├── PrepareRelease │ ├── README │ ├── RunGrepTest │ ├── RunTest │ ├── RunTest.bat │ ├── aclocal.m4 │ ├── ar-lib │ ├── cmake │ │ ├── COPYING-CMAKE-SCRIPTS │ │ ├── FindEditline.cmake │ │ ├── FindPackageHandleStandardArgs.cmake │ │ └── FindReadline.cmake │ ├── compile │ ├── config-cmake.h.in │ ├── config.guess │ ├── config.h.generic │ ├── config.h.in │ ├── config.sub │ ├── configure │ ├── configure.ac │ ├── depcomp │ ├── dftables.c │ ├── doc │ │ ├── html │ │ │ ├── NON-AUTOTOOLS-BUILD.txt │ │ │ ├── README.txt │ │ │ ├── index.html │ │ │ ├── pcre-config.html │ │ │ ├── pcre.html │ │ │ ├── pcre16.html │ │ │ ├── pcre32.html │ │ │ ├── pcre_assign_jit_stack.html │ │ │ ├── pcre_compile.html │ │ │ ├── pcre_compile2.html │ │ │ ├── pcre_config.html │ │ │ ├── pcre_copy_named_substring.html │ │ │ ├── pcre_copy_substring.html │ │ │ ├── pcre_dfa_exec.html │ │ │ ├── pcre_exec.html │ │ │ ├── pcre_free_study.html │ │ │ ├── pcre_free_substring.html │ │ │ ├── pcre_free_substring_list.html │ │ │ ├── pcre_fullinfo.html │ │ │ ├── pcre_get_named_substring.html │ │ │ ├── pcre_get_stringnumber.html │ │ │ ├── pcre_get_stringtable_entries.html │ │ │ ├── pcre_get_substring.html │ │ │ ├── pcre_get_substring_list.html │ │ │ ├── pcre_jit_exec.html │ │ │ ├── pcre_jit_stack_alloc.html │ │ │ ├── pcre_jit_stack_free.html │ │ │ ├── pcre_maketables.html │ │ │ ├── pcre_pattern_to_host_byte_order.html │ │ │ ├── pcre_refcount.html │ │ │ ├── pcre_study.html │ │ │ ├── pcre_utf16_to_host_byte_order.html │ │ │ ├── pcre_utf32_to_host_byte_order.html │ │ │ ├── pcre_version.html │ │ │ ├── pcreapi.html │ │ │ ├── pcrebuild.html │ │ │ ├── pcrecallout.html │ │ │ ├── pcrecompat.html │ │ │ ├── pcrecpp.html │ │ │ ├── pcredemo.html │ │ │ ├── pcregrep.html │ │ │ ├── pcrejit.html │ │ │ ├── pcrelimits.html │ │ │ ├── pcrematching.html │ │ │ ├── pcrepartial.html │ │ │ ├── pcrepattern.html │ │ │ ├── pcreperform.html │ │ │ ├── pcreposix.html │ │ │ ├── pcreprecompile.html │ │ │ ├── pcresample.html │ │ │ ├── pcrestack.html │ │ │ ├── pcresyntax.html │ │ │ ├── pcretest.html │ │ │ └── pcreunicode.html │ │ ├── index.html.src │ │ ├── pcre-config.1 │ │ ├── pcre-config.txt │ │ ├── pcre.3 │ │ ├── pcre.txt │ │ ├── pcre16.3 │ │ ├── pcre32.3 │ │ ├── pcre_assign_jit_stack.3 │ │ ├── pcre_compile.3 │ │ ├── pcre_compile2.3 │ │ ├── pcre_config.3 │ │ ├── pcre_copy_named_substring.3 │ │ ├── pcre_copy_substring.3 │ │ ├── pcre_dfa_exec.3 │ │ ├── pcre_exec.3 │ │ ├── pcre_free_study.3 │ │ ├── pcre_free_substring.3 │ │ ├── pcre_free_substring_list.3 │ │ ├── pcre_fullinfo.3 │ │ ├── pcre_get_named_substring.3 │ │ ├── pcre_get_stringnumber.3 │ │ ├── pcre_get_stringtable_entries.3 │ │ ├── pcre_get_substring.3 │ │ ├── pcre_get_substring_list.3 │ │ ├── pcre_jit_exec.3 │ │ ├── pcre_jit_stack_alloc.3 │ │ ├── pcre_jit_stack_free.3 │ │ ├── pcre_maketables.3 │ │ ├── pcre_pattern_to_host_byte_order.3 │ │ ├── pcre_refcount.3 │ │ ├── pcre_study.3 │ │ ├── pcre_utf16_to_host_byte_order.3 │ │ ├── pcre_utf32_to_host_byte_order.3 │ │ ├── pcre_version.3 │ │ ├── pcreapi.3 │ │ ├── pcrebuild.3 │ │ ├── pcrecallout.3 │ │ ├── pcrecompat.3 │ │ ├── pcrecpp.3 │ │ ├── pcredemo.3 │ │ ├── pcregrep.1 │ │ ├── pcregrep.txt │ │ ├── pcrejit.3 │ │ ├── pcrelimits.3 │ │ ├── pcrematching.3 │ │ ├── pcrepartial.3 │ │ ├── pcrepattern.3 │ │ ├── pcreperform.3 │ │ ├── pcreposix.3 │ │ ├── pcreprecompile.3 │ │ ├── pcresample.3 │ │ ├── pcrestack.3 │ │ ├── pcresyntax.3 │ │ ├── pcretest.1 │ │ ├── pcretest.txt │ │ ├── pcreunicode.3 │ │ └── perltest.txt │ ├── install-sh │ ├── libpcre.pc.in │ ├── libpcre16.pc.in │ ├── libpcre32.pc.in │ ├── libpcrecpp.pc.in │ ├── libpcreposix.pc.in │ ├── ltmain.sh │ ├── m4 │ │ ├── ax_pthread.m4 │ │ ├── libtool.m4 │ │ ├── ltoptions.m4 │ │ ├── ltsugar.m4 │ │ ├── ltversion.m4 │ │ ├── lt~obsolete.m4 │ │ └── pcre_visibility.m4 │ ├── makevp.bat │ ├── makevp_c.txt │ ├── makevp_l.txt │ ├── missing │ ├── pcre-config.in │ ├── pcre.h.generic │ ├── pcre.h.in │ ├── pcre16_byte_order.c │ ├── pcre16_chartables.c │ ├── pcre16_compile.c │ ├── pcre16_config.c │ ├── pcre16_dfa_exec.c │ ├── pcre16_exec.c │ ├── pcre16_fullinfo.c │ ├── pcre16_get.c │ ├── pcre16_globals.c │ ├── pcre16_jit_compile.c │ ├── pcre16_maketables.c │ ├── pcre16_newline.c │ ├── pcre16_ord2utf16.c │ ├── pcre16_printint.c │ ├── pcre16_refcount.c │ ├── pcre16_string_utils.c │ ├── pcre16_study.c │ ├── pcre16_tables.c │ ├── pcre16_ucd.c │ ├── pcre16_utf16_utils.c │ ├── pcre16_valid_utf16.c │ ├── pcre16_version.c │ ├── pcre16_xclass.c │ ├── pcre32_byte_order.c │ ├── pcre32_chartables.c │ ├── pcre32_compile.c │ ├── pcre32_config.c │ ├── pcre32_dfa_exec.c │ ├── pcre32_exec.c │ ├── pcre32_fullinfo.c │ ├── pcre32_get.c │ ├── pcre32_globals.c │ ├── pcre32_jit_compile.c │ ├── pcre32_maketables.c │ ├── pcre32_newline.c │ ├── pcre32_ord2utf32.c │ ├── pcre32_printint.c │ ├── pcre32_refcount.c │ ├── pcre32_string_utils.c │ ├── pcre32_study.c │ ├── pcre32_tables.c │ ├── pcre32_ucd.c │ ├── pcre32_utf32_utils.c │ ├── pcre32_valid_utf32.c │ ├── pcre32_version.c │ ├── pcre32_xclass.c │ ├── pcre_byte_order.c │ ├── pcre_chartables.c.dist │ ├── pcre_compile.c │ ├── pcre_config.c │ ├── pcre_dfa_exec.c │ ├── pcre_exec.c │ ├── pcre_fullinfo.c │ ├── pcre_get.c │ ├── pcre_globals.c │ ├── pcre_internal.h │ ├── pcre_jit_compile.c │ ├── pcre_jit_test.c │ ├── pcre_maketables.c │ ├── pcre_newline.c │ ├── pcre_ord2utf8.c │ ├── pcre_printint.c │ ├── pcre_refcount.c │ ├── pcre_scanner.cc │ ├── pcre_scanner.h │ ├── pcre_scanner_unittest.cc │ ├── pcre_string_utils.c │ ├── pcre_stringpiece.cc │ ├── pcre_stringpiece.h.in │ ├── pcre_stringpiece_unittest.cc │ ├── pcre_study.c │ ├── pcre_tables.c │ ├── pcre_ucd.c │ ├── pcre_valid_utf8.c │ ├── pcre_version.c │ ├── pcre_xclass.c │ ├── pcrecpp.cc │ ├── pcrecpp.h │ ├── pcrecpp_internal.h │ ├── pcrecpp_unittest.cc │ ├── pcrecpparg.h.in │ ├── pcredemo.c │ ├── pcregexp.pas │ ├── pcregrep.c │ ├── pcreposix.c │ ├── pcreposix.h │ ├── pcretest.c │ ├── perltest.pl │ ├── sljit │ │ ├── sljitConfig.h │ │ ├── sljitConfigInternal.h │ │ ├── sljitExecAllocator.c │ │ ├── sljitLir.c │ │ ├── sljitLir.h │ │ ├── sljitNativeARM_32.c │ │ ├── sljitNativeARM_64.c │ │ ├── sljitNativeARM_T2_32.c │ │ ├── sljitNativeMIPS_32.c │ │ ├── sljitNativeMIPS_64.c │ │ ├── sljitNativeMIPS_common.c │ │ ├── sljitNativePPC_32.c │ │ ├── sljitNativePPC_64.c │ │ ├── sljitNativePPC_common.c │ │ ├── sljitNativeSPARC_32.c │ │ ├── sljitNativeSPARC_common.c │ │ ├── sljitNativeTILEGX-encoder.c │ │ ├── sljitNativeTILEGX_64.c │ │ ├── sljitNativeX86_32.c │ │ ├── sljitNativeX86_64.c │ │ ├── sljitNativeX86_common.c │ │ └── sljitUtils.c │ ├── test-driver │ ├── testdata │ │ ├── grepbinary │ │ ├── grepfilelist │ │ ├── grepinput │ │ ├── grepinput3 │ │ ├── grepinput8 │ │ ├── grepinputv │ │ ├── grepinputx │ │ ├── greplist │ │ ├── grepoutput │ │ ├── grepoutput8 │ │ ├── grepoutputN │ │ ├── greppatN4 │ │ ├── saved16 │ │ ├── saved16BE-1 │ │ ├── saved16BE-2 │ │ ├── saved16LE-1 │ │ ├── saved16LE-2 │ │ ├── saved32 │ │ ├── saved32BE-1 │ │ ├── saved32BE-2 │ │ ├── saved32LE-1 │ │ ├── saved32LE-2 │ │ ├── saved8 │ │ ├── testinput1 │ │ ├── testinput10 │ │ ├── testinput11 │ │ ├── testinput12 │ │ ├── testinput13 │ │ ├── testinput14 │ │ ├── testinput15 │ │ ├── testinput16 │ │ ├── testinput17 │ │ ├── testinput18 │ │ ├── testinput19 │ │ ├── testinput2 │ │ ├── testinput20 │ │ ├── testinput21 │ │ ├── testinput22 │ │ ├── testinput23 │ │ ├── testinput24 │ │ ├── testinput25 │ │ ├── testinput26 │ │ ├── testinput3 │ │ ├── testinput4 │ │ ├── testinput5 │ │ ├── testinput6 │ │ ├── testinput7 │ │ ├── testinput8 │ │ ├── testinput9 │ │ ├── testinputEBC │ │ ├── testoutput1 │ │ ├── testoutput10 │ │ ├── testoutput11-16 │ │ ├── testoutput11-32 │ │ ├── testoutput11-8 │ │ ├── testoutput12 │ │ ├── testoutput13 │ │ ├── testoutput14 │ │ ├── testoutput15 │ │ ├── testoutput16 │ │ ├── testoutput17 │ │ ├── testoutput18-16 │ │ ├── testoutput18-32 │ │ ├── testoutput19 │ │ ├── testoutput2 │ │ ├── testoutput20 │ │ ├── testoutput21-16 │ │ ├── testoutput21-32 │ │ ├── testoutput22-16 │ │ ├── testoutput22-32 │ │ ├── testoutput23 │ │ ├── testoutput24 │ │ ├── testoutput25 │ │ ├── testoutput26 │ │ ├── testoutput3 │ │ ├── testoutput3A │ │ ├── testoutput3B │ │ ├── testoutput4 │ │ ├── testoutput5 │ │ ├── testoutput6 │ │ ├── testoutput7 │ │ ├── testoutput8 │ │ ├── testoutput9 │ │ ├── testoutputEBC │ │ ├── valgrind-jit.supp │ │ ├── wintestinput3 │ │ └── wintestoutput3 │ └── ucp.h ├── print.c ├── print.h ├── printfile.c ├── printfile.h ├── proto.h ├── quotes.c ├── search.c ├── search.h ├── setup.c ├── setup.h ├── string.c ├── struct.c ├── struct.h ├── threadprint.c ├── threadprint.h ├── trio │ ├── CHANGES │ ├── FILES │ ├── Makefile.in │ ├── README │ ├── README.hypermail │ ├── autogen.sh │ ├── compare.c │ ├── configure │ ├── configure.in │ ├── hypermail-patches.diff │ ├── install-sh │ ├── regression.c │ ├── strio.h │ ├── trio.c │ ├── trio.h │ ├── triodef.h │ ├── trionan.c │ ├── trionan.h │ ├── triop.h │ ├── triostr.c │ └── triostr.h ├── txt2html.c ├── txt2html.h ├── uconvert.h ├── uudecode.c └── uudecode.h └── tests ├── README ├── diff_hypermail_archives.pl ├── mboxes ├── 1msg.mbox ├── critmail.mbox ├── embedded.msg ├── t1 ├── t2 ├── t3 ├── t4 ├── t5 ├── t6 ├── t7 ├── t8 └── y2k.mbox ├── stdintest.pl ├── test-footer.hyp ├── test-index.hyp ├── test-msg.hyp ├── test.rc └── testhm.in /.gitignore: -------------------------------------------------------------------------------- 1 | # ignore all files generated by configure and make 2 | autom4te.cache 3 | config.cache 4 | config.h 5 | config.log 6 | config.status 7 | Makefile 8 | *.la 9 | *.lo 10 | *.o 11 | *.so.* 12 | *.a 13 | .libs/ 14 | src/defaults.h 15 | src/getdate.c 16 | src/defaults.h 17 | src/getdate.c 18 | src/hypermail 19 | src/lang 20 | src/mail 21 | 22 | # PCRE (if using the bundled lib) 23 | src/pcre/.deps 24 | src/pcre/.deps/ 25 | src/pcre/autom4te.cache/ 26 | src/pcre/libpcre.pc 27 | src/pcre/libpcre16.pc 28 | src/pcre/libpcre32.pc 29 | src/pcre/libpcrecpp.pc 30 | src/pcre/libpcreposix.pc 31 | src/pcre/pcre_chartables.c 32 | src/pcre/pcre_scanner_unittest 33 | src/pcre/pcre_stringpiece.h 34 | src/pcre/pcre_stringpiece_unittest 35 | src/pcre/pcrecpp_unittest 36 | src/pcre/pcrecpparg.h 37 | src/pcre/stamp-h1 38 | src/pcre/pcre.h 39 | src/pcre/pcre-config 40 | src/pcre/dftables 41 | src/pcre/libtool 42 | src/pcre/pcregrep 43 | src/pcre/pcretest 44 | 45 | # other files created when compiling 46 | archive/msg2archive 47 | archive/rdmsg 48 | tests/testhm 49 | tests/testdir 50 | tests/testmail 51 | 52 | # vi or emacs edited ones 53 | .*~ 54 | \#.* 55 | 56 | # swap files 57 | .swp 58 | 59 | -------------------------------------------------------------------------------- /Changelog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hypermail-project/hypermail/10c9cbe6e60e77e16e21b870e6c78eb1050f0438/Changelog -------------------------------------------------------------------------------- /README.git: -------------------------------------------------------------------------------- 1 | Hypermail GIT Server Access 2 | 3 | ---- 4 | Hypermail Development has a GIT server, where we (try to) keep the 5 | latest changes (usually hot out of the oven) and anyone is welcome to 6 | use it. 7 | 8 | ------------------------------------ 9 | General information on accessing the Hypermail CVS repository: 10 | 11 | Hypermail git repository address: 12 | 13 | http://sourceforge.net/scm/?type=git&group_id=18117&source=navbar 14 | git://hypermail.git.sourceforge.net/gitroot/hypermail/hypermail (read-only) 15 | 16 | A mirror is also availabe on github: 17 | 18 | https://github.com/hypermail-project/hypermail 19 | 20 | See the sourceforge documentation for more information about 21 | git and how to checkout the hypermail repository: 22 | 23 | http://sourceforge.net/scm/?type=git&group_id=18117&source=navbar 24 | 25 | ------------------------------------ 26 | Browsing the Hypermail git repository: 27 | 28 | You can also browse the repository at: 29 | 30 | http://hypermail.git.sourceforge.net/git/gitweb-index.cgi 31 | 32 | ---- 33 | -------------------------------------------------------------------------------- /UPGRADE: -------------------------------------------------------------------------------- 1 | Upgrade Notes 2 | ============== 3 | 4 | From Hypermail 2.3.0 to Hypermail 2.4.0 5 | ----------------------------------------- 6 | 7 | Hypermail will now detect and link with a system libpcre if it's 8 | available and current. Otherwise, it will compile the bundled 9 | libpcre. You can force the compile with the bundled one with the 10 | --enable-bundled-pcre configure option. 11 | 12 | The configuration directive "htmlmessage_deleted" has been 13 | renamed "htmlmessage_deleted_spam". 14 | 15 | The "deleted" configuration directive has been deprecated 16 | in favor of "annotated". However, for backwards compatibility 17 | with legacy archives, it will continue to be honored. 18 | 19 | From Hypermail 1.x to Hypermail 2.x 20 | ----------------------------------- 21 | !!!!WARNING!!!! 22 | 23 | Hypermail 2.x HTML output files, indexes, etc are not compatible with 1.x 24 | files. When installing 2.x, all existing HTML files in the specified output 25 | directory must be removed first. 26 | 27 | Use the original 1.x mailbox files to regenerate the new 2.x archive. 28 | If the mailboxes are not available it should be possible to use the 29 | script hypetombox.pl in the contrib/ directory. 30 | -------------------------------------------------------------------------------- /acconfig.h: -------------------------------------------------------------------------------- 1 | 2 | #undef HAVE_GDBM_H 3 | -------------------------------------------------------------------------------- /archive/.indent.pro: -------------------------------------------------------------------------------- 1 | -nbad -bap -nbbo -nbc -br -brs -c33 -cd33 -ncdb -nce -ci4 2 | -cp33 -ncs -d0 -di1 -nfc1 -nfca -hnl -i4 -ip0 -l75 -lp -npcs 3 | -npsl -nsc -nsob -nss 4 | -Tform_entry 5 | -Tcgi_info 6 | -TFILE 7 | -------------------------------------------------------------------------------- /archive/Makefile.in: -------------------------------------------------------------------------------- 1 | ################################################### 2 | # Sample Makefile for mail archive maintenance. 3 | # 4 | # Define variables and Macros 5 | # 6 | ################################################### 7 | 8 | prefix=@prefix@ 9 | exec_prefix=@exec_prefix@ 10 | bindir=@bindir@ 11 | SUFFIX=@suffix@ 12 | 13 | #WNOERROR=-Werror 14 | #WARNINGS=$(WNOERROR) -ansi -pedantic -Wall -Wtraditional -Wshadow -Wpointer-arith -Wcast-qual -Wcast-align -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline -Dlint 15 | 16 | CC=@CC@ $(WARNINGS) 17 | CFLAGS=@CFLAGS@ 18 | INSTALL_PROG=@INSTALL@ 19 | 20 | ################################################### 21 | # 22 | # Build the executable images 23 | # 24 | ################################################### 25 | # 26 | # PLEASE read the README in this directory before continuing. 27 | 28 | PROGS = msg2archive$(SUFFIX) rdmsg$(SUFFIX) 29 | 30 | all: $(PROGS) 31 | 32 | msg2archive$(SUFFIX): msg2archive.c lists.h 33 | $(CC) $(CFLAGS) -o $@ msg2archive.c 34 | 35 | rdmsg$(SUFFIX): mbox2hypermail.c lists.h 36 | $(CC) $(CFLAGS) -o $@ mbox2hypermail.c 37 | 38 | ######################################## 39 | # 40 | # Commands 41 | # 42 | ######################################## 43 | 44 | lint: 45 | lint $(LINT_FLAGS) $(SOURCE) | tee Lint.out 46 | 47 | clean: 48 | rm -f $(OBJS) Lint.out 49 | rm -f $(PROGS) 50 | 51 | clobber: clean 52 | 53 | distclean: clean 54 | 55 | install: $(bindir)/msg2archive$(SUFFIX) $(bindir)/rdmsg$(SUFFIX) 56 | 57 | $(bindir)/msg2archive$(SUFFIX): msg2archive$(SUFFIX) 58 | @if [ ! -d $(bindir) ]; then mkdir -p $(bindir); fi 59 | $(INSTALL_PROG) -c msg2archive$(SUFFIX) $@ 60 | 61 | $(bindir)/rdmsg$(SUFFIX): rdmsg$(SUFFIX) 62 | @if [ ! -d $(bindir) ]; then mkdir -p $(bindir); fi 63 | $(INSTALL_PROG) -c rdmsg$(SUFFIX) $@ 64 | 65 | uninstall: 66 | rm -f $(bindir)/msg2archive$(SUFFIX) 67 | rm -f $(bindir)/rdmsg$(SUFFIX) 68 | 69 | ################################################### 70 | # 71 | # Object file include dependencies. 72 | # The object file include dependencies are required. 73 | # 74 | ################################################### 75 | 76 | depend: 77 | makedepend -- $(CFLAGS) -- $(SOURCE) 78 | 79 | # DO NOT DELETE THIS LINE -- make depend depends on it. 80 | -------------------------------------------------------------------------------- /archive/lists.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** FILE: lists.h - %W% %G% 3 | ** AUTHOR: Kent Landfield 4 | ** 5 | ** ABSTRACT: Define the lists supported by hypermail 6 | ** 7 | ** This software is Copyright (c) 1996 by Kent Landfield. 8 | ** 9 | ** Permission is hereby granted to copy, distribute or otherwise 10 | ** use any part of this package as long as you do not try to make 11 | ** money from it or pretend that you wrote it. This copyright 12 | ** notice must be maintained in any copy made. 13 | ** 14 | */ 15 | 16 | #ifdef HYPERDEV 17 | 18 | #define HYPERMAIL "/usr/local/bin/hypermail" 19 | #define ARCHIVE "/ftp/hypermail/mail-archive" 20 | #define MAILBOXDIR "/ftp/hypermail/mail-archive/mailbox" 21 | #define LABEL "Hypermail Development List" 22 | #define ABOUT_LINK "/hypermail/mail-archive" 23 | #define LISTNAME "hypermail" 24 | #define CONFIGFILE "/usr/local/lib/hypermail/hypermail.rc" 25 | 26 | #else 27 | # ifdef HYPERTEST 28 | 29 | #define HYPERMAIL "../src/hypermail" 30 | #define ARCHIVE "../tests/mail-archive" 31 | #define MAILBOXDIR "../tests/mail-archive/mailbox" 32 | #define LABEL "Hypermail Test Archive" 33 | #define ABOUT_LINK "../" 34 | #define LISTNAME "hypermail-test" 35 | #define CONFIGFILE "../tests/test.rc" 36 | 37 | # else 38 | #define HYPERMAIL "/usr/local/bin/hypermail" 39 | #define ARCHIVE "NONE" 40 | #define MAILBOXDIR "NONE" 41 | #define LABEL "NONE" 42 | #define ABOUT_LINK "NONE" 43 | #define LISTNAME "NONE" 44 | #define CONFIGFILE "NONE" 45 | 46 | # endif /* HYPERTEST */ 47 | #endif /* HYPERDEV */ 48 | -------------------------------------------------------------------------------- /archive/runtest: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | 4 | DIR=`pwd` 5 | Msg2archive=$DIR/msg2archive 6 | TestMsg=$DIR/test-msg 7 | 8 | if [ ! -d ../tests/mail-archive ]; then 9 | mkdir ../tests/mail-archive 10 | fi 11 | 12 | if [ ! -d ../tests/mail-archive/mailbox ]; then 13 | mkdir ../tests/mail-archive/mailbox 14 | fi 15 | 16 | #cat test-msg | htestmail -v 17 | 18 | # Tests for generic msg2archive executable 19 | # 20 | # usage: msg2archive [options] (file on stdin only) 21 | # -A archive-basedir (#define ARCHIVE) 22 | # -b about_link (#define ABOUT_LINK) 23 | # -c configfile (#define CONFIGFILE) 24 | # -H hypermail executable (#define HYPERMAIL) 25 | # -L listname (#define LISTNAME) 26 | # -l list lable (#define LABEL) 27 | # -M mailbox directory (#define MAILBOXDIR) 28 | # -t testing (no execution, assumes -v) 29 | # -v verbose 30 | 31 | (cd ../tests; cat $TestMsg | $Msg2archive -v -A mail-archive -b ../ -c test.rc -H ../src/hypermail -L hypermail-test -l "Hypermail Test Archive" -M mail-archive/mailbox) 32 | 33 | -------------------------------------------------------------------------------- /archive/test-msg: -------------------------------------------------------------------------------- 1 | From bel@llnl.gov Fri Aug 28 11:15 PDT 1998 2 | Received: from pierce.llnl.gov (pierce.llnl.gov [128.115.18.253]) 3 | by k2.llnl.gov (8.8.5/8.8.5/LLNL-Jun96) with ESMTP id LAA17195 4 | for ; Fri, 28 Aug 1998 11:15:55 -0700 (PDT) 5 | Received: from popcorn.llnl.gov by pierce.llnl.gov (8.8.8/LLNL-1.18/llnl.gov-04.5) 6 | id LAA02432; Fri, 28 Aug 1998 11:15:55 -0700 (PDT) 7 | Received: from archive-xke.llnl.gov (archive-xke.llnl.gov [128.115.172.48]) 8 | by popcorn.llnl.gov (8.8.8/LLNL-3.0.2) with SMTP 9 | id LAA28465; Fri, 28 Aug 1998 11:15:53 -0700 (PDT) 10 | Message-Id: <4.0.5.32.19980828111501.00903100@popcorn.llnl.gov> 11 | X-Sender: e546171@popcorn.llnl.gov 12 | X-Mailer: QUALCOMM Windows Eudora Pro Version 3.0.5 (32) 13 | Date: Fri, 28 Aug 1998 11:15:01 -0700 14 | To: Joanne Perra 15 | From: "DeMarotta, Louis Joseph, Jr. (LZD) " 16 | " ) 17 | Subject: RE: When NWIG grows up... 18 | Cc: kent@landfield.com 19 | Mime-Version: 1.0 20 | Content-Type: text/plain; charset="us-ascii" 21 | Content-Length: 145 22 | 23 | has any one seen it,yet??? 24 | 25 | Lou 26 | 27 | > -----Original Message----- 28 | ... 29 | deleted content 30 | ... 31 | 32 | From the beginning 33 | 34 | From the start 35 | From now until tomorrow 36 | 37 | Joanne and Kent, 38 | Here's a message redirected from Eudora. 39 | 40 | ---- 41 | Gordon H. Buchan 42 | gordon@pobox.com 43 | http://gordon.anadas.com 44 | 45 | ----------------------------------------------------------------------------- 46 | To unsubscribe from the CUSIDnet mailing list, send a message to 47 | cusid-request@anadas.com with the following command in the message 48 | unsubscribe your@nfr.net, dave@where or sam@hear.com 49 | Follow CUSIDnet on the web at http://cusidnet.anadas.com 50 | ----------------------------------------------------------------------------- 51 | 52 | -------------------------------------------------------------------------------- /autogen.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | autoconf 3 | rm -rf autom4te.cache 4 | -------------------------------------------------------------------------------- /configs/hypermail-footer.hyp: -------------------------------------------------------------------------------- 1 |

---------

2 | 3 | \nThis archive was generated by 4 | %u. 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /configs/hypermail-index.hyp: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | %l: %s 7 | 8 | 9 | 10 | 11 |

%l
%s

12 |

---------

13 | 14 | -------------------------------------------------------------------------------- /configs/hypermail-msg.hyp: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | %A 7 | %S 8 | %l: %s 9 | 10 | 11 | 12 | 13 |

%s

14 |

---------

15 | 16 | -------------------------------------------------------------------------------- /contrib/canonicalize.pl: -------------------------------------------------------------------------------- 1 | #!/usr/bin/perl 2 | # 3 | # Author: Scott Rose 4 | # 5 | # $Id$ 6 | # 7 | # Comparing two archives is complicated by the fact that each message is 8 | # marked by the time at which it's archived. Attached is a script that 9 | # standardizes that date, if weakly, useful for such comparisons. 10 | # 11 | # NOTE: 12 | # - Must be in the html storage directory to use this. 13 | # - If your files are stored with a different suffix than .html 14 | # you will need to correct it below. 15 | # - If the date is really important to you, fix this script and 16 | # rebaseline it. 17 | # 18 | 19 | for $file (glob '[0-9][0-9][0-9][0-9].html') { 20 | open F, "$file" or die; 21 | @lines = ; 22 | close F; 23 | open F, ">$file" or die; 24 | $did = 0; 25 | for (@lines) { 26 | if(m#^: \w{3} \w{3}\s+\d{1,2} \d{4} - \d{2}:\d{2}:\d{2} \w{3}$#) { 27 | die 'oops' if($did); 28 | print F ": Sat Oct 16 1999 - 06:00:00 PDT\n"; 29 | $did++; 30 | } 31 | else { 32 | print F; 33 | } 34 | } 35 | die "Oops" unless($did); 36 | close F; 37 | print "$file\n" 38 | } 39 | 40 | 41 | -------------------------------------------------------------------------------- /contrib/hoaf-28/footer_html.hdr: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /contrib/hoaf-28/haof-0.1.dtd: -------------------------------------------------------------------------------- 1 | 26 | 27 | 28 | 30 | 31 | 32 | 35 | 36 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | -------------------------------------------------------------------------------- /contrib/hoaf-28/top_html.hdr: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /contrib/runtest: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | 4 | DIR=`pwd` 5 | Msg2archive=$DIR/msg2hypermailarchive.py 6 | TestMsg=$DIR/test-msg 7 | 8 | if [ ! -d ../tests/mail-archive ]; then 9 | mkdir ../tests/mail-archive 10 | fi 11 | 12 | if [ ! -d ../tests/mail-archive/mailbox ]; then 13 | mkdir ../tests/mail-archive/mailbox 14 | fi 15 | 16 | #cat test-msg | htestmail -v 17 | 18 | # Tests for generic msg2archive executable 19 | # 20 | # usage: msg2archive [options] (file on stdin only) 21 | # -A archive-basedir (#define ARCHIVE) 22 | # -b about_link (#define ABOUT_LINK) 23 | # -c configfile (#define CONFIGFILE) 24 | # -H hypermail executable (#define HYPERMAIL) 25 | # -L listname (#define LISTNAME) 26 | # -l list lable (#define LABEL) 27 | # -M mailbox directory (#define MAILBOXDIR) 28 | # -t testing (no execution, assumes -v) 29 | # -v verbose 30 | 31 | (cd ../tests; cat $TestMsg | $Msg2archive -v -L hypermail-test ) 32 | -------------------------------------------------------------------------------- /docs/Makefile.in: -------------------------------------------------------------------------------- 1 | # 2 | # Hypermail documentation make file 3 | # 4 | # This is where the man page goes 5 | 6 | prefix=@prefix@ 7 | datarootdir = @datarootdir@ 8 | datadir = @datadir@ 9 | 10 | # Man page base directory 11 | mandir=@mandir@ 12 | 13 | # This is where the HTML documentation goes 14 | htmldir=@htmldir@ 15 | 16 | # Installation program 17 | INSTALL_PROG=@INSTALL@ 18 | 19 | all: install 20 | 21 | uninstall: 22 | rm -f $(mandir)/man1/hypermail.1 23 | rm -f $(mandir)/man4/hmrc.4 24 | (if [ -d $(htmldir) ]; then \ 25 | rm -f $(htmldir)/hr.yellow.png; \ 26 | rm -f $(htmldir)/hypermail.png; \ 27 | rm -f $(htmldir)/stars.png; \ 28 | rm -f $(htmldir)/archive_search.html; \ 29 | rm -f $(htmldir)/hypermail.html; \ 30 | rm -f $(htmldir)/hypermail-faq.html; \ 31 | rm -f $(htmldir)/customizing.html; \ 32 | rm -f $(htmldir)/hmrc.html; \ 33 | rmdir $(htmldir); \ 34 | fi) 35 | 36 | install: install.man install.html 37 | 38 | install.man: 39 | @(if [ ! -d $(mandir) ]; then mkdir -p $(mandir); fi) 40 | @(if [ ! -d $(mandir)/man1 ]; then mkdir -p $(mandir)/man1; fi) 41 | @(if [ ! -d $(mandir)/man4 ]; then mkdir -p $(mandir)/man4; fi) 42 | $(INSTALL_PROG) -c -m 0644 hypermail.1 $(mandir)/man1 43 | $(INSTALL_PROG) -c -m 0644 hmrc.4 $(mandir)/man4 44 | 45 | install.html: 46 | @(if [ ! -d $(htmldir) ]; then mkdir -p $(htmldir); fi) 47 | $(INSTALL_PROG) -c -m 0644 hr.yellow.png $(htmldir) 48 | $(INSTALL_PROG) -c -m 0644 hypermail.png $(htmldir) 49 | $(INSTALL_PROG) -c -m 0644 stars.png $(htmldir) 50 | $(INSTALL_PROG) -c -m 0644 archive_search.html $(htmldir) 51 | $(INSTALL_PROG) -c -m 0644 hypermail.html $(htmldir) 52 | $(INSTALL_PROG) -c -m 0644 hypermail-faq.html $(htmldir) 53 | $(INSTALL_PROG) -c -m 0644 customizing.html $(htmldir) 54 | $(INSTALL_PROG) -c -m 0644 hmrc.html $(htmldir) 55 | 56 | clean: 57 | clobber: 58 | distclean: 59 | -------------------------------------------------------------------------------- /docs/hr.yellow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hypermail-project/hypermail/10c9cbe6e60e77e16e21b870e6c78eb1050f0438/docs/hr.yellow.png -------------------------------------------------------------------------------- /docs/hypermail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hypermail-project/hypermail/10c9cbe6e60e77e16e21b870e6c78eb1050f0438/docs/hypermail.png -------------------------------------------------------------------------------- /docs/stars.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hypermail-project/hypermail/10c9cbe6e60e77e16e21b870e6c78eb1050f0438/docs/stars.png -------------------------------------------------------------------------------- /lcc/defaults.h: -------------------------------------------------------------------------------- 1 | #ifndef __DEFAULTS_H 2 | #define __DEFAULTS_H 3 | 4 | /* ALERT! ALERT! ALERT! ALERT! ALERT! ALERT! ALERT! ALERT! 5 | * 6 | * The #defines following here ARE NOT intended to be modified locally 7 | * before you compile hypermail. They're here to set internal defaults 8 | * and they are set during the configure process. To alter these settings 9 | * for use during runtime, modify your config file! 10 | */ 11 | 12 | #define CONFIGFILE "~/.hmrc" 13 | 14 | #define INLINE_TYPES "image/gif image/jpeg image/png" 15 | 16 | #define SHOW_HEADERS "From Subject Date Message-ID" 17 | 18 | #define MAILCOMMAND "mailto:$TO?Subject=$SUBJECT" 19 | 20 | #define PROGRESS 0 21 | 22 | #define RECOGNIZE_SUPERCITE_QUOTES 1 23 | 24 | #define LANGUAGE "@language@" 25 | 26 | #define HTMLSUFFIX "@htmlsuffix@" 27 | 28 | #define DEFAULTINDEX "@defaultindex@" 29 | 30 | #define DOMAINADDR "@domainaddr@" 31 | 32 | #define ANTISPAM_AT "_at_" 33 | 34 | #endif 35 | -------------------------------------------------------------------------------- /lcc/dirent.h: -------------------------------------------------------------------------------- 1 | #ifndef DIRENT_INCLUDED 2 | #define DIRENT_INCLUDED 3 | 4 | /* 5 | 6 | Declaration of POSIX directory browsing functions and types for Win32. 7 | 8 | Author: Kevlin Henney (kevlin@acm.org, kevlin@curbralan.com) 9 | History: Created March 1997. Updated February 2003. 10 | Rights: See end of file. 11 | 12 | */ 13 | 14 | typedef struct DIR DIR; 15 | 16 | struct dirent 17 | { 18 | char *d_name; 19 | }; 20 | 21 | DIR *opendir(const char *); 22 | int closedir(DIR *); 23 | struct dirent *readdir(DIR *); 24 | void rewinddir(DIR *); 25 | 26 | /* 27 | 28 | Copyright Kevlin Henney, 1997, 2003. All rights reserved. 29 | 30 | Permission to use, copy, modify, and distribute this software and its 31 | documentation for any purpose is hereby granted without fee, provided 32 | that this copyright and permissions notice appear in all copies and 33 | derivatives. 34 | 35 | This software is supplied "as is" without express or implied warranty. 36 | 37 | But that said, if there are any problems please get in touch. 38 | 39 | */ 40 | 41 | #endif 42 | -------------------------------------------------------------------------------- /lcc/hypermail_files.txt: -------------------------------------------------------------------------------- 1 | lcc_extras.c 2 | getdate.c 3 | dirent.c 4 | ..\src\uudecode.c 5 | ..\src\txt2html.c 6 | ..\src\trio\triostr.c 7 | ..\src\trio\trionan.c 8 | ..\src\trio\trio.c 9 | ..\src\threadprint.c 10 | ..\src\struct.c 11 | ..\src\string.c 12 | ..\src\setup.c 13 | ..\src\search.c 14 | ..\src\quotes.c 15 | ..\src\printfile.c 16 | ..\src\print.c 17 | ..\src\pcre\pcre_study.c 18 | ..\src\pcre\pcreposix.c 19 | ..\src\pcre\pcre.c 20 | ..\src\pcre\pcre_maketables.c 21 | ..\src\pcre\pcre_get.c 22 | ..\src\parse.c 23 | ..\src\mem.c 24 | ..\src\lock.c 25 | ..\src\lang.c 26 | ..\src\hypermail.c 27 | ..\src\getname.c 28 | ..\src\finelink.c 29 | ..\src\file.c 30 | ..\src\domains.c 31 | ..\src\dmatch.c 32 | ..\src\date.c 33 | ..\src\base64.c 34 | -------------------------------------------------------------------------------- /lcc/lcc_extras.c: -------------------------------------------------------------------------------- 1 | /* 2 | stat and fstat are defined in lcc, but not lstat 3 | */ 4 | 5 | #include 6 | 7 | /* 8 | * The way we're handling this now is to assume that we'll never try this 9 | * on a symlink 10 | */ 11 | int lstat(const char *file_name, struct stat *buf) 12 | { 13 | return stat(file_name, buf); 14 | } 15 | -------------------------------------------------------------------------------- /lcc/lcc_extras.h: -------------------------------------------------------------------------------- 1 | /* 2 | stat and fstat are defined in lcc, but not lstat 3 | */ 4 | 5 | int lstat(const char *file_name, struct stat *buf); 6 | -------------------------------------------------------------------------------- /libcgi/.indent.pro: -------------------------------------------------------------------------------- 1 | -nbad -bap -nbbo -nbc -br -brs -c33 -cd33 -ncdb -nce -ci4 2 | -cp33 -ncs -d0 -di1 -nfc1 -nfca -hnl -i4 -ip0 -l75 -lp -npcs 3 | -npsl -nsc -nsob -nss 4 | -Tform_entry 5 | -Tcgi_info 6 | -TFILE 7 | -------------------------------------------------------------------------------- /libcgi/Makefile.in: -------------------------------------------------------------------------------- 1 | # CGI virdoc library makefile 2 | 3 | #WNOERROR=-Werror 4 | #WARNINGS=$(WNOERROR) -ansi -pedantic -Wall -Wtraditional -Wshadow -Wpointer-arith -Wcast-qual -Wcast-align -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline -Dlint 5 | 6 | # You shouldn't have to edit anything else. 7 | CC=@CC@ $(WARNINGS) 8 | INSTALL=@INSTALL@ 9 | AUX_LIBS= 10 | RANLIB=@RANLIB@ 11 | RM=rm 12 | LINT=lint 13 | 14 | SRCS=form_ent.c get_cgi_info.c main.c syn_mime.c syn_url.c mcode.c\ 15 | form_tags.c strops.c html.c 16 | 17 | .c.o: 18 | $(CC) -c $(CFLAGS) $(AUX_CFLAGS) $(INF_INCS) $< 19 | 20 | ALL = libcgi.a 21 | 22 | %.o: %.c 23 | $(CC) -c $(CFLAGS) $(AUX_CFLAGS) $(INF_INCS) $< 24 | 25 | all: $(ALL) 26 | 27 | libcgi.a: form_ent.o get_cgi_info.o main.o syn_mime.o syn_url.o mcode.o\ 28 | form_tags.o strops.o html.o 29 | ar r $@ $? 30 | ${RANLIB} $@ 31 | 32 | install: $(ALL) 33 | 34 | clean: 35 | -$(RM) -f *.o *~ *.a 36 | 37 | clobber: clean 38 | distclean: clean 39 | 40 | insight: clean 41 | $(MAKE) CC="insight" 42 | 43 | lint: 44 | $(LINT) $(LINTFLAGS) $(SRCS) 2>&1 | tee lint.out 45 | 46 | -------------------------------------------------------------------------------- /libcgi/form_tags.c: -------------------------------------------------------------------------------- 1 | /* 2 | ** Copyright (C) 1994, 1995 Enterprise Integration Technologies Corp. 3 | ** VeriFone Inc./Hewlett-Packard. All Rights Reserved. 4 | ** Kevin Hughes, kev@kevcom.com 3/11/94 5 | ** Kent Landfield, kent@landfield.com 4/6/97 6 | ** 7 | ** This program and library is free software; you can redistribute it and/or 8 | ** modify it under the terms of the GNU (Library) General Public License 9 | ** as published by the Free Software Foundation; either version 2 10 | ** of the License, or any later version. 11 | ** 12 | ** This program is distributed in the hope that it will be useful, 13 | ** but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | ** GNU (Library) General Public License for more details. 16 | ** 17 | ** You should have received a copy of the GNU (Library) General Public License 18 | ** along with this program; if not, write to the Free Software 19 | ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA 20 | */ 21 | 22 | /* 23 | * This file is part of the LIBCGI library 24 | * 25 | */ 26 | 27 | #include "cgi.h" 28 | 29 | void print_sel_list(char *tname, char **opts, char *init) 30 | { 31 | printf("", stdout); 38 | } 39 | 40 | void print_input_blank(char *tname, unsigned int size, 41 | unsigned int maxlength, char *init) 42 | { 43 | printf("", stdout); 51 | } 52 | 53 | void print_submit(char *label) 54 | { 55 | printf("", stdout); 59 | } 60 | -------------------------------------------------------------------------------- /libcgi/get_cgi_info.c: -------------------------------------------------------------------------------- 1 | /* 2 | ** Copyright (C) 1994, 1995 Enterprise Integration Technologies Corp. 3 | ** VeriFone Inc./Hewlett-Packard. All Rights Reserved. 4 | ** Kevin Hughes, kev@kevcom.com 3/11/94 5 | ** Kent Landfield, kent@landfield.com 4/6/97 6 | ** 7 | ** This program and library is free software; you can redistribute it and/or 8 | ** modify it under the terms of the GNU (Library) General Public License 9 | ** as published by the Free Software Foundation; either version 2 10 | ** of the License, or any later version. 11 | ** 12 | ** This program is distributed in the hope that it will be useful, 13 | ** but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | ** GNU (Library) General Public License for more details. 16 | ** 17 | ** You should have received a copy of the GNU (Library) General Public License 18 | ** along with this program; if not, write to the Free Software 19 | ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA 20 | */ 21 | 22 | /* 23 | * This file is part of the LIBCGI library 24 | * 25 | */ 26 | 27 | #include "cgi.h" 28 | 29 | int get_cgi_info(cgi_info *ci) 30 | { 31 | char *s; 32 | 33 | ci->content_length = (s = getenv("CONTENT_LENGTH")) ? atoi(s) : 0; 34 | ci->content_type = getenv("CONTENT_TYPE"); 35 | ci->server_software = getenv("SERVER_SOFTWARE"); 36 | ci->gateway_interface = getenv("GATEWAY_INTERFACE"); 37 | ci->server_protocol = getenv("SERVER_PROTOCOL"); 38 | ci->server_port = getenv("SERVER_PORT"); 39 | ci->request_method = getenv("REQUEST_METHOD"); 40 | ci->http_accept = getenv("HTTP_ACCEPT"); 41 | ci->path_info = getenv("PATH_INFO"); 42 | ci->path_translated = getenv("PATH_TRANSLATED"); 43 | ci->script_name = getenv("SCRIPT_NAME"); 44 | ci->query_string = getenv("QUERY_STRING"); 45 | ci->remote_host = getenv("REMOTE_HOST"); 46 | ci->remote_addr = getenv("REMOTE_ADDR"); 47 | ci->remote_user = getenv("REMOTE_USER"); 48 | ci->auth_type = getenv("AUTH_TYPE"); 49 | ci->remote_user = getenv("REMOTE_USER"); 50 | ci->remote_ident = getenv("REMOTE_IDENT"); 51 | return (ci->server_name = getenv("SERVER_NAME")) != NULL; 52 | } 53 | -------------------------------------------------------------------------------- /libcgi/html.c: -------------------------------------------------------------------------------- 1 | /* 2 | ** Copyright (C) 1994, 1995 Enterprise Integration Technologies Corp. 3 | ** VeriFone Inc./Hewlett-Packard. All Rights Reserved. 4 | ** Kevin Hughes, kev@kevcom.com 3/11/94 5 | ** Kent Landfield, kent@landfield.com 4/6/97 6 | ** 7 | ** This program and library is free software; you can redistribute it and/or 8 | ** modify it under the terms of the GNU (Library) General Public License 9 | ** as published by the Free Software Foundation; either version 2 10 | ** of the License, or any later version. 11 | ** 12 | ** This program is distributed in the hope that it will be useful, 13 | ** but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | ** GNU (Library) General Public License for more details. 16 | ** 17 | ** You should have received a copy of the GNU (Library) General Public License 18 | ** along with this program; if not, write to the Free Software 19 | ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA 20 | */ 21 | 22 | /* 23 | * This file is part of the LIBCGI library 24 | * 25 | */ 26 | 27 | #include "cgi.h" 28 | 29 | void print_doc_begin(char *title) 30 | { 31 | printf("%s\n", title); 32 | printf("

%s

\n\"\"
", 33 | title); 34 | } 35 | 36 | void print_doc_end(char *text) 37 | { 38 | char *w; 39 | 40 | puts("


"); 41 | if (text && *text) 42 | puts(text); 43 | else if ((w = getenv("WEBMASTER"))) 44 | printf("
%s
\n", w); 45 | } 46 | 47 | void print_logo(void) 48 | { 49 | printf("\"HYPERMAIL\""); 50 | } 51 | -------------------------------------------------------------------------------- /libcgi/main.c: -------------------------------------------------------------------------------- 1 | /* 2 | ** Copyright (C) 1994, 1995 Enterprise Integration Technologies Corp. 3 | ** VeriFone Inc./Hewlett-Packard. All Rights Reserved. 4 | ** Kevin Hughes, kev@kevcom.com 3/11/94 5 | ** Kent Landfield, kent@landfield.com 4/6/97 6 | ** 7 | ** This program and library is free software; you can redistribute it and/or 8 | ** modify it under the terms of the GNU (Library) General Public License 9 | ** as published by the Free Software Foundation; either version 2 10 | ** of the License, or any later version. 11 | ** 12 | ** This program is distributed in the hope that it will be useful, 13 | ** but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | ** GNU (Library) General Public License for more details. 16 | ** 17 | ** You should have received a copy of the GNU (Library) General Public License 18 | ** along with this program; if not, write to the Free Software 19 | ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA 20 | */ 21 | 22 | /* 23 | * This file is part of the LIBCGI library 24 | * 25 | */ 26 | 27 | #include "cgi.h" 28 | 29 | void cgi_main(cgi_info *ci); 30 | 31 | int main(void) 32 | { 33 | cgi_info ci; 34 | 35 | get_cgi_info(&ci); 36 | cgi_main(&ci); 37 | return (0); 38 | } 39 | -------------------------------------------------------------------------------- /libcgi/mcode.c: -------------------------------------------------------------------------------- 1 | /* 2 | ** Copyright (C) 1994, 1995 Enterprise Integration Technologies Corp. 3 | ** VeriFone Inc./Hewlett-Packard. All Rights Reserved. 4 | ** Kevin Hughes, kev@kevcom.com 3/11/94 5 | ** Kent Landfield, kent@landfield.com 4/6/97 6 | ** 7 | ** This program and library is free software; you can redistribute it and/or 8 | ** modify it under the terms of the GNU (Library) General Public License 9 | ** as published by the Free Software Foundation; either version 2 10 | ** of the License, or any later version. 11 | ** 12 | ** This program is distributed in the hope that it will be useful, 13 | ** but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | ** GNU (Library) General Public License for more details. 16 | ** 17 | ** You should have received a copy of the GNU (Library) General Public License 18 | ** along with this program; if not, write to the Free Software 19 | ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA 20 | */ 21 | 22 | /* 23 | * This file is part of the LIBCGI library 24 | * 25 | */ 26 | 27 | #include "cgi.h" 28 | 29 | int mcode(cgi_info *ci) 30 | { 31 | if (ci->request_method == NULL) 32 | return 0; 33 | else if (!strncasecmp(ci->request_method, "GET", 3)) 34 | return MCODE_GET; 35 | else if (!strncasecmp(ci->request_method, "POST", 4)) 36 | return MCODE_POST; 37 | else if (!strncasecmp(ci->request_method, "PUT", 3)) 38 | return MCODE_PUT; 39 | else if (!strncasecmp(ci->request_method, "HEAD", 4)) 40 | return MCODE_HEAD; 41 | else 42 | return 0; 43 | } 44 | -------------------------------------------------------------------------------- /libcgi/strops.c: -------------------------------------------------------------------------------- 1 | /* 2 | ** Copyright (C) 1994, 1995 Enterprise Integration Technologies Corp. 3 | ** VeriFone Inc./Hewlett-Packard. All Rights Reserved. 4 | ** Kevin Hughes, kev@kevcom.com 3/11/94 5 | ** Kent Landfield, kent@landfield.com 4/6/97 6 | ** 7 | ** This program and library is free software; you can redistribute it and/or 8 | ** modify it under the terms of the GNU (Library) General Public License 9 | ** as published by the Free Software Foundation; either version 2 10 | ** of the License, or any later version. 11 | ** 12 | ** This program is distributed in the hope that it will be useful, 13 | ** but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | ** GNU (Library) General Public License for more details. 16 | ** 17 | ** You should have received a copy of the GNU (Library) General Public License 18 | ** along with this program; if not, write to the Free Software 19 | ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA 20 | */ 21 | 22 | /* 23 | ** This file is part of the LIBCGI library 24 | ** 25 | */ 26 | 27 | #include "cgi.h" 28 | 29 | char *trim(char *s) 30 | { 31 | char *t = s; 32 | 33 | while (*t) 34 | t++; 35 | while (t > s && *--t == ' ') 36 | *t = 0; 37 | return s; 38 | } 39 | 40 | #if 0 41 | char *sanitize(char *buf, char *s) 42 | { 43 | char *t; 44 | 45 | for (t = buf; *s; s++) 46 | if (*s == ' ') 47 | *t++ = '+'; 48 | else if (isalnum(*s)) 49 | *t++ = *s; 50 | else { 51 | sprintf(t, "%%%2X", *s); 52 | t += 3; 53 | } 54 | *t = '\0'; 55 | return buf; 56 | } 57 | #endif 58 | 59 | char *strmaxcpy(char *dest, char *src, int n) 60 | { 61 | char *d = dest; 62 | 63 | if (n < 1) 64 | return NULL; 65 | while (--n && *src) 66 | *d++ = *src++; 67 | *d = 0; 68 | return dest; 69 | } 70 | -------------------------------------------------------------------------------- /libcgi/syn_mime.c: -------------------------------------------------------------------------------- 1 | /* 2 | ** Copyright (C) 1994, 1995 Enterprise Integration Technologies Corp. 3 | ** VeriFone Inc./Hewlett-Packard. All Rights Reserved. 4 | ** Kevin Hughes, kev@kevcom.com 3/11/94 5 | ** Kent Landfield, kent@landfield.com 4/6/97 6 | ** 7 | ** This program and library is free software; you can redistribute it and/or 8 | ** modify it under the terms of the GNU (Library) General Public License 9 | ** as published by the Free Software Foundation; either version 2 10 | ** of the License, or any later version. 11 | ** 12 | ** This program is distributed in the hope that it will be useful, 13 | ** but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | ** GNU (Library) General Public License for more details. 16 | ** 17 | ** You should have received a copy of the GNU (Library) General Public License 18 | ** along with this program; if not, write to the Free Software 19 | ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA 20 | */ 21 | 22 | /* 23 | * This file is part of the LIBCGI library 24 | * 25 | */ 26 | 27 | #include "cgi.h" 28 | 29 | #if 0 30 | int syn_mimeheader(char *buf, char *ct) 31 | { 32 | int x; 33 | 34 | if (buf && ct) { 35 | x = (int)sprintf(buf, "Content-Type: %s\n\n", ct); 36 | return (x && x != EOF); 37 | } 38 | else 39 | return 0; 40 | } 41 | #endif 42 | 43 | int print_mimeheader(const char *ct) 44 | { 45 | return (ct && (printf("Content-Type: %s\n\n", ct) != EOF)); 46 | } 47 | -------------------------------------------------------------------------------- /libcgi/syn_url.c: -------------------------------------------------------------------------------- 1 | /* 2 | ** Copyright (C) 1994, 1995 Enterprise Integration Technologies Corp. 3 | ** VeriFone Inc./Hewlett-Packard. All Rights Reserved. 4 | ** Kevin Hughes, kev@kevcom.com 3/11/94 5 | ** Kent Landfield, kent@landfield.com 4/6/97 6 | ** 7 | ** This program and library is free software; you can redistribute it and/or 8 | ** modify it under the terms of the GNU (Library) General Public License 9 | ** as published by the Free Software Foundation; either version 2 10 | ** of the License, or any later version. 11 | ** 12 | ** This program is distributed in the hope that it will be useful, 13 | ** but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | ** GNU (Library) General Public License for more details. 16 | ** 17 | ** You should have received a copy of the GNU (Library) General Public License 18 | ** along with this program; if not, write to the Free Software 19 | ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA 20 | */ 21 | 22 | /* 23 | * This file is part of the LIBCGI library 24 | * 25 | */ 26 | 27 | #include "cgi.h" 28 | 29 | #if 0 30 | int syn_base_url(char *buf, cgi_info *ci) 31 | { 32 | int x; 33 | 34 | if (ci && buf) { 35 | x = 36 | (int)sprintf(buf, "http://%s:%s%s", ci->server_name, 37 | ci->server_port, ci->script_name); 38 | return (x && x != EOF); 39 | } 40 | else 41 | return 0; 42 | } 43 | #endif 44 | 45 | int print_base_url(cgi_info *ci) 46 | { 47 | return (ci && 48 | (printf("http://%s:%s%s", ci->server_name, ci->server_port, 49 | ci->script_name) != EOF)); 50 | } 51 | -------------------------------------------------------------------------------- /libcgi/template.c: -------------------------------------------------------------------------------- 1 | /* 2 | ** Copyright (C) 1994, 1995 Enterprise Integration Technologies Corp. 3 | ** VeriFone Inc./Hewlett-Packard. All Rights Reserved. 4 | ** Kevin Hughes, kev@kevcom.com 3/11/94 5 | ** Kent Landfield, kent@landfield.com 4/6/97 6 | ** 7 | ** This program and library is free software; you can redistribute it and/or 8 | ** modify it under the terms of the GNU (Library) General Public License 9 | ** as published by the Free Software Foundation; either version 2 10 | ** of the License, or any later version. 11 | ** 12 | ** This program is distributed in the hope that it will be useful, 13 | ** but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | ** GNU (Library) General Public License for more details. 16 | ** 17 | ** You should have received a copy of the GNU (Library) General Public License 18 | ** along with this program; if not, write to the Free Software 19 | ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA 20 | */ 21 | 22 | /* 23 | * This file is part of the LIBCGI library 24 | * 25 | */ 26 | 27 | #include "cgi.h" 28 | 29 | void cgi_main(cgi_info *ci) 30 | { 31 | char *parmval(); 32 | form_entry *parms, *p; 33 | form_entry *get_form_entries(); 34 | char *foo, *bar; 35 | 36 | print_mimeheader("text/html"); 37 | 38 | puts("Your Title Here"); 39 | puts("

Your heading here

"); 40 | 41 | parms = get_form_entries(ci); 42 | if (parms) { 43 | /* extract specific form parameters */ 44 | for (p = parms; p; p = p->next) { 45 | if (strcasecmp(p->name, "foo")) 46 | foo = p->val; 47 | else if (strcasecmp(p->name, "bar")) 48 | bar = p->val; 49 | } 50 | } 51 | 52 | switch (mcode(ci)) { 53 | 54 | case MCODE_HEAD: 55 | return; 56 | 57 | case MCODE_GET: 58 | puts("Your GET response here"); 59 | printf("based on foo=%s and bar=%s.\n", foo, bar); 60 | break; 61 | 62 | case MCODE_POST: 63 | puts("Your POST response here"); 64 | printf("based on foo=%s and bar=%s.\n", foo, bar); 65 | break; 66 | 67 | default: 68 | printf("Unrecognized method '%s'.\n", ci->request_method); 69 | } 70 | 71 | free_form_entries(parms); 72 | } 73 | -------------------------------------------------------------------------------- /maketgz: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | # Script to build release-archives with 3 | # 4 | 5 | echo "Version number ?" 6 | read version 7 | 8 | echo "Patchlevel ?" 9 | read patchlevel 10 | 11 | HEADER="patchlevel.h" 12 | 13 | # Replace version number in header file: 14 | sed -e 's/#define VERSION.*/#define VERSION "'$version'"/g' \ 15 | -e 's/#define PATCHLEVEL.*/#define PATCHLEVEL "'$patchlevel'"/g' $HEADER >$HEADER.new 16 | 17 | # Save old header file 18 | cp -p $HEADER $HEADER.old 19 | 20 | # Make new header: 21 | mv $HEADER.new $HEADER 22 | 23 | # get current dir 24 | dir=`pwd` 25 | 26 | # Get basename 27 | orig=`basename $dir` 28 | 29 | # Get the left part of the dash (-) 30 | new=`echo $orig | cut -d- -f1` 31 | 32 | # Build new directory name 33 | n=$new-$version; 34 | 35 | # Tell the world what we're doing 36 | echo "creates $n.tar.gz"; 37 | 38 | if [ -r $n ]; then 39 | echo "Directory already exists!" 40 | exit 41 | fi 42 | 43 | # Create the new dir 44 | mkdir $n 45 | 46 | # Copy all relevant files, with path and permissions! 47 | tar -cf - `cat FILES | grep -v \#` | (cd $n; tar -xBpf -) 48 | 49 | # Make a tar archive of it all 50 | tar -cvf $n.tar $n 51 | 52 | # gzip the archive 53 | gzip $n.tar 54 | 55 | # Make it world readable 56 | chmod a+r $n.tar.gz ; 57 | 58 | # Delete the temp dir 59 | rm -rf $n 60 | -------------------------------------------------------------------------------- /patchlevel.h: -------------------------------------------------------------------------------- 1 | #define VERSION "2.4.0" 2 | #define PATCHLEVEL "0" 3 | -------------------------------------------------------------------------------- /src/.indent.pro: -------------------------------------------------------------------------------- 1 | -nbad -bap -nbbo -nbc -br -brs -ncdb -nce -ci4 -cp33 2 | -ncs -d0 -di1 -nfc1 -nfca -hnl -i4 -ip0 -l75 -lp -npcs 3 | -npsl -nsc -nsob -nss 4 | -Tform_entry 5 | -Tcgi_info 6 | -TFILE 7 | -Ttime_t 8 | -Tva_stack_t 9 | -Tpattern 10 | -------------------------------------------------------------------------------- /src/.splintrc: -------------------------------------------------------------------------------- 1 | # 2 | # Standard mode of checking. 3 | # 4 | -weak 5 | #-standard 6 | #-checks 7 | #-strict 8 | # 9 | # MEMORY/NULL/SECURITY 10 | +nullterminated 11 | +bounds 12 | +boundsread 13 | +boundswrite 14 | +fcnpost 15 | +redundantconstraints 16 | +checkpost 17 | +implictconstraint 18 | +orconstraint 19 | +nullterminated 20 | +showconstraintparens 21 | +boundscompacterrormessages 22 | +showconstraintlocation 23 | +debugfcnconstraint 24 | +deparrays 25 | +charindex 26 | +enumindex 27 | +mustfreefresh 28 | +mustfreeonly 29 | +mustfree 30 | +compdestroy 31 | +strictdestroy 32 | +null 33 | +nullderef 34 | +nullpass 35 | +nullret 36 | +nullstate 37 | +nullassign 38 | +bufferoverflow 39 | +bufferoverflowhigh 40 | +implementationoptional 41 | +multithreaded 42 | +portability 43 | +superuser 44 | +toctou 45 | +unixstandard 46 | +its4mostrisky 47 | +its4veryrisky 48 | +its4risky 49 | +its4moderate 50 | +its4low 51 | # 52 | # Others 53 | # 54 | # 55 | #-abstract 56 | #-badflag 57 | #-boolops 58 | #-booltype 59 | #-branchstate 60 | #-casebreak 61 | #+charintliteral 62 | #-compdef 63 | #-compdestroy 64 | #-compmempass 65 | #-dependenttrans 66 | #-evalorder 67 | #-exitarg 68 | #-exportlocal 69 | #-formatconst 70 | #-formattype 71 | #-fullinitblock 72 | #-globstate 73 | #-globuse 74 | #-ifempty 75 | +ignoresigns 76 | #-immediatetrans 77 | #-incondefs 78 | #-infloops 79 | #-initallelements 80 | #-kepttrans 81 | #-likelybool 82 | #-macroredef 83 | +matchanyintegral 84 | #-mayaliasunique 85 | #-modobserver 86 | #-mustfreefresh 87 | #-mustfreeonly 88 | #-noret 89 | #-nullassign 90 | #-nullderef 91 | #-nullpass 92 | #-nullret 93 | #-nullstate 94 | #-observertrans 95 | #-onlytrans 96 | #-paramuse 97 | #-posix-lib 98 | #-predboolint 99 | #-predboolothers 100 | #+ptrnegate 101 | #-realcompare 102 | #-redef 103 | #-retvalint 104 | -retvalother 105 | #-shadow 106 | #-shiftimplementation 107 | #-shiftnegative 108 | #+showscan 109 | #-showsummary 110 | #-statictrans 111 | #+stats 112 | #-temptrans 113 | #-type 114 | #-uniondef 115 | #-unqualifiedtrans 116 | #-unreachable 117 | -unrecog 118 | #-unrecogcomments 119 | #-usedef 120 | #-usereleased 121 | -usevarargs 122 | #-varuse 123 | #-warnlintcomments 124 | -warnposixheaders 125 | -------------------------------------------------------------------------------- /src/base64.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** MIME Decode - base64.c 3 | */ 4 | 5 | void base64Decode(char *, char *, int *); 6 | -------------------------------------------------------------------------------- /src/defaults.h.in: -------------------------------------------------------------------------------- 1 | #ifndef __DEFAULTS_H 2 | #define __DEFAULTS_H 3 | 4 | /* ALERT! ALERT! ALERT! ALERT! ALERT! ALERT! ALERT! ALERT! 5 | * 6 | * The #defines following here ARE NOT intended to be modified locally 7 | * before you compile hypermail. They're here to set internal defaults 8 | * and they are set during the configure process. To alter these settings 9 | * for use during runtime, modify your config file! 10 | */ 11 | 12 | #define CONFIGFILE "~/.hmrc" 13 | 14 | #define INLINE_TYPES "image/gif image/jpeg image/png" 15 | 16 | #define SHOW_HEADERS "From Subject Date Message-ID" 17 | 18 | #define MAILCOMMAND "mailto:$TO?Subject=$SUBJECT" 19 | 20 | #define PROGRESS 0 21 | 22 | #define RECOGNIZE_SUPERCITE_QUOTES 1 23 | 24 | #define LANGUAGE "@language@" 25 | 26 | #define HTMLSUFFIX "@htmlsuffix@" 27 | 28 | #define DEFAULTINDEX "@defaultindex@" 29 | 30 | #define DOMAINADDR "@domainaddr@" 31 | 32 | #define ANTISPAM_AT "_at_" 33 | 34 | #define APPLE_MAIL_UA "Apple iPhone iPad" 35 | 36 | #endif 37 | -------------------------------------------------------------------------------- /src/dmatch.c: -------------------------------------------------------------------------------- 1 | /* 2 | The shortest ever? 88 characters... 3 | 4 | m(char*s,char*t){return*t-'*'?*s?*t=='?'|*s==*t&&m(s+1,t+1):!*t:m(s,t+1)||*s&&m(s+1,t);} 5 | 6 | Written by Staffan Ulfberg 7 | 8 | What follows below is a rewrite of the above into readable C and a small 9 | patch to prevent really deep recursiveness on patterns featuring a long 10 | sequence of '*'. Done by Daniel Stenberg 11 | */ 12 | 13 | #include "dmatch.h" 14 | #ifdef __LCC__ 15 | #include "../lcc/config.h" 16 | #else 17 | #include "../config.h" 18 | #endif 19 | 20 | #ifdef HAVE_CTYPE_H 21 | #include 22 | #endif 23 | 24 | #undef FALSE 25 | #define FALSE 0 26 | #undef TRUE 27 | #define TRUE 1 28 | 29 | char Match(char *string, char *pattern) 30 | { 31 | for (; '*'^*pattern; ++pattern, ++string) { 32 | if (!*string) 33 | return (!*pattern); 34 | if (toupper(*string) ^ toupper(*pattern) && '?'^*pattern) 35 | return (FALSE); 36 | } 37 | 38 | /* two-line patch to prevent *too* much recursiveness: */ 39 | 40 | while ('*' == pattern[1]) 41 | pattern ++; 42 | 43 | do { 44 | if (Match(string, pattern +1)) 45 | return (TRUE); 46 | } while (*string++); 47 | 48 | return (FALSE); 49 | } 50 | -------------------------------------------------------------------------------- /src/dmatch.h: -------------------------------------------------------------------------------- 1 | char Match(char *, char *); 2 | -------------------------------------------------------------------------------- /src/domains.c: -------------------------------------------------------------------------------- 1 | #include "hypermail.h" 2 | #include "domains.h" 3 | 4 | struct co_code *ccptr; 5 | 6 | int valid_root_domain(char *eaddr) 7 | { 8 | char *name_to_check; 9 | 10 | /* First check to see if it has a '.' in it. 11 | ** Not invalid if there is no '.'. 12 | */ 13 | 14 | if ((name_to_check = strrchr(eaddr, '.')) == NULL) 15 | return (0); 16 | 17 | ++name_to_check; 18 | if (!*name_to_check) 19 | return (0); 20 | 21 | /* DNS has evolved and we have now a variety of new domains, hard 22 | to track and that are not covered by this function. While temporary 23 | waiting to see if we evolve this function to be user configurable, 24 | we're going to return 1 (valid) all the time. 19/06/2020 -JK */ 25 | return (1); 26 | 27 | 28 | for (ccptr = domain_codes; ccptr->domain != NULL; ccptr++) { 29 | if (strcasecmp(name_to_check, ccptr->domain) == 0) 30 | return (1); 31 | } 32 | return (0); 33 | } 34 | -------------------------------------------------------------------------------- /src/finelink.h: -------------------------------------------------------------------------------- 1 | #ifndef __FINELINK_H 2 | #define __FINELINK_H 3 | 4 | #include "hypermail.h" 5 | #include "setup.h" /* for bool */ 6 | 7 | int 8 | handle_quoted_text(FILE *fp, struct emailinfo *, const struct body *, 9 | char *line, int inquote, int quote_num, 10 | bool replace_quoted, int maybe_reply); 11 | void replace_maybe_replies(const char *, struct emailinfo *, int); 12 | void set_new_reply_to(int msgnum, int match_len); 13 | int get_new_reply_to(void); 14 | 15 | #endif 16 | -------------------------------------------------------------------------------- /src/fnv/config.in: -------------------------------------------------------------------------------- 1 | /* config.in. Generated automatically from configure.in by autoheader 2.13. */ 2 | 3 | /* Define to empty if the keyword does not work. */ 4 | #undef const 5 | 6 | /* Define to `unsigned' if doesn't define. */ 7 | #undef size_t 8 | 9 | /* Define if you have the ANSI C header files. */ 10 | #undef STDC_HEADERS 11 | 12 | /* Define if you have the header file. */ 13 | #undef HAVE_DLFCN_H 14 | 15 | /* Define if you have the header file. */ 16 | #undef HAVE_FCNTL_H 17 | 18 | /* Define if you have the header file. */ 19 | #undef HAVE_UNISTD_H 20 | -------------------------------------------------------------------------------- /src/fnv/configure.in: -------------------------------------------------------------------------------- 1 | dnl Process this file with autoconf to produce a configure script. 2 | AC_INIT(fnv.h) 3 | 4 | dnl Arrange to build config.h from config.in. 5 | dnl Manual says this macro should come right after AC_INIT. 6 | AC_CONFIG_HEADER(config.h:config.in) 7 | 8 | dnl Provide the current FNV version information. Do not use numbers 9 | dnl with leading zeros for the minor version, as they end up in a C 10 | dnl macro, and may be treated as octal constants. Stick to single 11 | dnl digits for minor numbers less than 10. There are unlikely to be 12 | dnl that many releases anyway. 13 | dnl JK: As there was no such release number, I gave it 1.0 and the 14 | dnl date of last commit of the Makefile 15 | 16 | FNV_MAJOR=1 17 | FNV_MINOR=0 18 | FNV_DATE=09-Sep-2002 19 | FNV_VERSION=${FNV_MAJOR}.${FNV_MINOR} 20 | 21 | dnl Provide versioning information for libtool shared libraries that 22 | dnl are built by default on Unix systems. 23 | 24 | FNV_LIB_VERSION=0:1:0 25 | 26 | dnl Checks for programs. 27 | AC_PROG_CC 28 | AC_PROG_INSTALL 29 | AC_PROG_LN_S 30 | AC_PROG_LIBTOOL 31 | 32 | dnl Checks for libraries. 33 | 34 | dnl Checks for header files. 35 | AC_HEADER_STDC 36 | AC_CHECK_HEADERS(fcntl.h unistd.h) 37 | 38 | dnl Checks for typedefs, structures, and compiler characteristics. 39 | AC_C_CONST 40 | AC_TYPE_SIZE_T 41 | 42 | dnl Handle --enable-shared-libraries 43 | 44 | LIBTOOL=./libtool 45 | LIBSUFFIX=la 46 | AC_ARG_ENABLE(shared, 47 | [ --enable-shared build FNV as a shared library], 48 | if test "$enableval" = "no"; then 49 | LIBTOOL= 50 | LIBSUFFIX=a 51 | fi 52 | ) 53 | 54 | # JK: as the install/uninstall stuff is not yet ready, I am forcing the 55 | # unshared lib by default 56 | LIBTOOL= 57 | LIBSUFFIX=a 58 | 59 | 60 | dnl Checks for library functions. 61 | 62 | dnl "Export" these variables 63 | 64 | AC_SUBST(LIBTOOL) 65 | AC_SUBST(LIBSUFFIX) 66 | AC_SUBST(FNV_MAJOR) 67 | AC_SUBST(FNV_MINOR) 68 | AC_SUBST(FNV_DATE) 69 | AC_SUBST(FNV_VERSION) 70 | AC_SUBST(FNV_LIB_VERSION) 71 | 72 | AC_OUTPUT(Makefile) 73 | -------------------------------------------------------------------------------- /src/fnv/configure.scan: -------------------------------------------------------------------------------- 1 | dnl Process this file with autoconf to produce a configure script. 2 | AC_INIT(fnv.h) 3 | 4 | dnl Checks for programs. 5 | AC_PROG_CC 6 | AC_PROG_INSTALL 7 | AC_PROG_LN_S 8 | AC_PROG_RANLIB 9 | 10 | dnl Checks for libraries. 11 | 12 | dnl Checks for header files. 13 | AC_HEADER_STDC 14 | AC_CHECK_HEADERS(fcntl.h unistd.h) 15 | 16 | dnl Checks for typedefs, structures, and compiler characteristics. 17 | AC_C_CONST 18 | AC_TYPE_SIZE_T 19 | 20 | dnl Checks for library functions. 21 | 22 | AC_OUTPUT(Makefile) 23 | -------------------------------------------------------------------------------- /src/fnv/have_ulong64.c: -------------------------------------------------------------------------------- 1 | /* 2 | * have_ulong64 - Determine if we have a 64 bit unsigned long long 3 | * 4 | * usage: 5 | * have_ulong64 > longlong.h 6 | * 7 | * Not all systems have a 'long long type' so this may not compile on 8 | * your system. 9 | * 10 | * This prog outputs the define: 11 | * 12 | * HAVE_64BIT_LONG_LONG 13 | * defined ==> we have a 64 bit unsigned long long 14 | * undefined ==> we must simulate a 64 bit unsigned long long 15 | */ 16 | /* 17 | * 18 | * Please do not copyright this code. This code is in the public domain. 19 | * 20 | * LANDON CURT NOLL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, 21 | * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO 22 | * EVENT SHALL LANDON CURT NOLL BE LIABLE FOR ANY SPECIAL, INDIRECT OR 23 | * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF 24 | * USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR 25 | * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 26 | * PERFORMANCE OF THIS SOFTWARE. 27 | * 28 | * By: 29 | * chongo /\oo/\ 30 | * http://www.isthe.com/chongo/ 31 | * 32 | * Share and Enjoy! :-) 33 | */ 34 | 35 | /* 36 | * have the compiler try its hand with unsigned and signed long longs 37 | */ 38 | unsigned long long val = 1099511628211ULL; 39 | 40 | int 41 | main(void) 42 | { 43 | int longlong_bits; /* bits in a long long */ 44 | 45 | /* 46 | * ensure that the length of long long val is what we expect 47 | */ 48 | if (val == 1099511628211ULL && sizeof(val) == 8) { 49 | printf("#define HAVE_64BIT_LONG_LONG\t/* yes */\n"); 50 | } 51 | 52 | /* exit(0); */ 53 | return 0; 54 | } 55 | -------------------------------------------------------------------------------- /src/getdate.h: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 1995 Free Software Foundation, Inc. 2 | 3 | This program is free software; you can redistribute it and/or modify 4 | it under the terms of the GNU General Public License as published by 5 | the Free Software Foundation; either version 2, or (at your option) 6 | any later version. 7 | 8 | This program is distributed in the hope that it will be useful, 9 | but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | GNU General Public License for more details. 12 | 13 | You should have received a copy of the GNU General Public License 14 | along with this program; if not, write to the Free Software Foundation, 15 | Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ 16 | 17 | #ifdef HAVE_CONFIG_H 18 | # include 19 | #endif 20 | 21 | #if defined (vms) 22 | # include 23 | # include 24 | #else 25 | # ifdef HAVE_STDLIB_H 26 | # include 27 | # endif 28 | # include 29 | # ifdef TIME_WITH_SYS_TIME 30 | # include 31 | # include 32 | # else 33 | # ifdef HAVE_SYS_TIME_H 34 | # include 35 | # else 36 | # include 37 | # endif 38 | # endif 39 | #endif /* defined (vms) */ 40 | 41 | #ifdef NO_MACRO 42 | #undef isspace 43 | #undef isdigit 44 | #undef isalpha 45 | #undef isupper 46 | #undef islower 47 | #undef isxdigit 48 | #undef isalnum 49 | #undef ispunct 50 | #undef isprint 51 | #undef isgraph 52 | #undef iscntrl 53 | #undef isascii 54 | #endif 55 | 56 | time_t get_date (const char *p, const time_t *now); 57 | -------------------------------------------------------------------------------- /src/getname.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hypermail-project/hypermail/10c9cbe6e60e77e16e21b870e6c78eb1050f0438/src/getname.c -------------------------------------------------------------------------------- /src/getname.h: -------------------------------------------------------------------------------- 1 | void getname(char *, char **, char **); 2 | -------------------------------------------------------------------------------- /src/lang.c: -------------------------------------------------------------------------------- 1 | #ifdef LANG_PROG 2 | #define MAIN_FILE 3 | #endif 4 | 5 | #include 6 | 7 | #include "hypermail.h" 8 | 9 | char **valid_language(char *lg, char **locale_code) 10 | { 11 | struct language_entry *lte; 12 | 13 | if (!strcmp(lg, "se")) { 14 | printf("Warning: language code 'se' not supported. Using 'sv' (Swedish) instead.\n"); 15 | lg = "sv"; 16 | } 17 | lte = <able[0]; 18 | while (lte->langcode != NULL) { 19 | if (strcmp(lg, lte->langcode) == 0) { 20 | if (locale_code != NULL && *locale_code == NULL) 21 | *locale_code = lte->locale_code; 22 | return (lte->mtable); 23 | } 24 | lte++; 25 | } 26 | return (NULL); 27 | } 28 | 29 | #ifdef LANG_PROG 30 | 31 | extern char *optarg; 32 | extern int opterr; 33 | 34 | int main(int argc, char **argv) 35 | { 36 | char *progname; 37 | char *language = "en"; 38 | 39 | int c; 40 | int verbose = 0; 41 | int print_table = 0; 42 | 43 | 44 | opterr = 0; 45 | progname = argv[0]; 46 | 47 | if (argc > 1) { 48 | while ((c = getopt(argc, argv, "L:tv")) != EOF) { 49 | switch (c) { 50 | case 'v': 51 | verbose++; 52 | break; 53 | case 'L': 54 | language = optarg; 55 | break; 56 | case 't': 57 | print_table++; 58 | break; 59 | default: 60 | fprintf(stderr, 61 | "usage: %s [-tv] [-L lang] [msg-num [..]]\n", 62 | progname); 63 | return (1); 64 | } 65 | } 66 | } 67 | 68 | if ((lang = valid_language(language, NULL)) == NULL) { 69 | (void)fprintf(stderr, "%s: %s: invalid language specified\n", 70 | progname, language); 71 | return (1); 72 | } 73 | 74 | if (print_table || (argc <= optind)) { 75 | int cnt; 76 | for (cnt = 0; lang[cnt] != NULL; cnt++) { 77 | printf("%02d: %s\n", cnt, lang[cnt]); 78 | } 79 | } 80 | 81 | else { 82 | for (; optind < argc; optind++) /* process files to print */ 83 | printf("%s: \n", lang[atoi(argv[optind])]); 84 | } 85 | 86 | return (0); /* terminate this process */ 87 | } 88 | 89 | #endif 90 | -------------------------------------------------------------------------------- /src/lang.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hypermail-project/hypermail/10c9cbe6e60e77e16e21b870e6c78eb1050f0438/src/lang.h -------------------------------------------------------------------------------- /src/lock.c: -------------------------------------------------------------------------------- 1 | #include "hypermail.h" 2 | #include "setup.h" 3 | 4 | #define LOCKBASE ".hypermail.lock" 5 | 6 | int i_locked_it = 0; 7 | 8 | void lock_archive(char *dir) 9 | { 10 | FILE *fp; 11 | char buffer[MAXLINE]; 12 | 13 | int count = 0; /* # minutes waited */ 14 | i_locked_it = 0; /* guilty until proven innocent */ 15 | 16 | snprintf(lockfile, sizeof(lockfile), "%s/%s", dir, LOCKBASE); 17 | 18 | while ((fp = fopen(lockfile, "r")) != NULL) { 19 | fgets(buffer, MAXLINE-1, fp); 20 | fclose(fp); 21 | /* 22 | * "set_locktime" is the config file item named 'locktime', 23 | * default is 3600 seconds 24 | */ 25 | if (time(NULL) > (time_t)(atol(buffer) + set_locktime)) 26 | break; /* lock over hour old - break it */ 27 | 28 | ++count; 29 | if (set_showprogress) 30 | fprintf(stderr, "Waiting for lock (file '%s')\n", lockfile); 31 | sleep(30); 32 | } 33 | if ((fp = fopen(lockfile, "w")) != NULL) { 34 | i_locked_it = 1; 35 | fprintf(fp, "%ld\n", (long)time(NULL)); 36 | fclose(fp); 37 | } 38 | else if (dir[0]) { 39 | snprintf(errmsg, sizeof(errmsg), "Couldn't create lock file \"%s\".", lockfile); 40 | progerr(errmsg); 41 | } 42 | } 43 | 44 | void unlock_archive(void) 45 | { 46 | if (lockfile && i_locked_it) 47 | remove(lockfile); 48 | lockfile[0] = '\0'; 49 | } 50 | -------------------------------------------------------------------------------- /src/mail.c: -------------------------------------------------------------------------------- 1 | /* 2 | ** Copyright (C) 1994, 1995 Enterprise Integration Technologies Corp. 3 | ** VeriFone Inc./Hewlett-Packard. All Rights Reserved. 4 | ** Kevin Hughes, kev@kevcom.com 3/11/94 5 | ** Jay Weber, weber@eit.com 6 | ** Kent Landfield, kent@landfield.com 4/6/97 7 | ** 8 | ** This program and library is free software; you can redistribute it and/or 9 | ** modify it under the terms of the GNU (Library) General Public License 10 | ** as published by the Free Software Foundation; either version 2 11 | ** of the License, or any later version. 12 | ** 13 | ** This program is distributed in the hope that it will be useful, 14 | ** but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | ** GNU (Library) General Public License for more details. 17 | ** 18 | ** You should have received a copy of the GNU (Library) General Public License 19 | ** along with this program; if not, write to the Free Software 20 | ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA 21 | */ 22 | #include "../libcgi/cgi.h" 23 | #include "../config.h" 24 | 25 | void cgi_main(cgi_info *ci) 26 | { 27 | /* This program has been disabled because it 28 | * was probably easy for spammers to use as an open relay. It also 29 | * had problems with enabling malicious use of JavaScript and 30 | * CRLF Injection. 31 | */ 32 | printf("\n"); 33 | printf("\n"); 34 | printf("This page has been disabled due to potential abuse by spammers.\n"); 35 | printf("\n\n"); 36 | } 37 | -------------------------------------------------------------------------------- /src/mem.c: -------------------------------------------------------------------------------- 1 | /* 2 | ** Copyright (C) 1994, 1995 Enterprise Integration Technologies Corp. 3 | ** VeriFone Inc./Hewlett-Packard. All Rights Reserved. 4 | ** Kevin Hughes, kev@kevcom.com 3/11/94 5 | ** Kent Landfield, kent@landfield.com 4/6/97 6 | ** 7 | ** This program and library is free software; you can redistribute it and/or 8 | ** modify it under the terms of the GNU (Library) General Public License 9 | ** as published by the Free Software Foundation; either version 2 10 | ** of the License, or any later version. 11 | ** 12 | ** This program is distributed in the hope that it will be useful, 13 | ** but WITHOUT ANY WARRANTY; without even the implied warranty of 14 | ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 | ** GNU (Library) General Public License for more details. 16 | ** 17 | ** You should have received a copy of the GNU (Library) General Public License 18 | ** along with this program; if not, write to the Free Software 19 | ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA 20 | */ 21 | 22 | #include "hypermail.h" 23 | 24 | /* Just a tiny malloc() error checker! */ 25 | 26 | void *emalloc(int i) 27 | { 28 | void *p; 29 | 30 | if ((p = (void *)malloc(i)) == NULL) 31 | progerr(lang[MSG_RAN_OUT_OF_MEMORY]); 32 | return p; 33 | } 34 | 35 | #ifndef HAVE_MEMSET 36 | 37 | void *memset(void *s, int c, size_t n) 38 | { 39 | if (n != 0) { 40 | register char *d = s; 41 | 42 | do 43 | *d++ = c; 44 | while (--n != 0); 45 | } 46 | return (s); 47 | } 48 | 49 | #endif 50 | -------------------------------------------------------------------------------- /src/parse.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** parse.c Functions 3 | */ 4 | 5 | int ignorecontent(char *); 6 | int inlinecontent(char *); 7 | int preferedcontent(int *, char *, int); 8 | char *safe_filename(char *); 9 | char *getmaildate(char *); 10 | char *getfromdate(char *); 11 | char *getid(char *); 12 | char *getsubject(char *); 13 | char *getreply(char *); 14 | void print_progress(int, char *, char *); 15 | int parsemail(char *, int, int, int, char *, int, int); 16 | int parse_old_html(int, struct emailinfo *, int, int, struct reply **, int); 17 | int loadoldheaders(char *); 18 | int loadoldheadersfromGDBMindex(char *, int); 19 | void crossindex(void); 20 | void crossindexthread1(struct header *); 21 | void crossindexthread2(int); 22 | void fixnextheader(char *, int, int); 23 | void fixreplyheader(char *, int, int, int); 24 | void fixthreadheader(char *, int, int); 25 | int isre(char *, char **); 26 | char *findre(char *, char **); 27 | int textcontent(char *); 28 | char *createlink(char *, char *, char *, int, char *); 29 | void emptydir(char *); 30 | int count_deleted(int); 31 | 32 | /* 33 | * Suffix to prepend to all saved attachments' filenames when the 34 | * headers don't propose a filename 35 | */ 36 | #define FILE_SUFFIXER "part" 37 | 38 | /* 39 | * Prefix to prepend to all saved attachments' directory names (before 40 | * the article number) 41 | */ 42 | #define DIR_PREFIXER "att-" 43 | 44 | /* 45 | * Used to replace invalid characters in supplied attachment filenames 46 | */ 47 | #define REPLACEMENT_CHAR '_' 48 | 49 | /* 50 | * Directory where meta information will be stored 51 | */ 52 | #define META_DIR ".meta" 53 | 54 | /* 55 | * Extension to add to meta files 56 | */ 57 | #define META_EXTENSION ".meta" 58 | -------------------------------------------------------------------------------- /src/pcre/AUTHORS: -------------------------------------------------------------------------------- 1 | THE MAIN PCRE LIBRARY 2 | --------------------- 3 | 4 | Written by: Philip Hazel 5 | Email local part: ph10 6 | Email domain: cam.ac.uk 7 | 8 | University of Cambridge Computing Service, 9 | Cambridge, England. 10 | 11 | Copyright (c) 1997-2019 University of Cambridge 12 | All rights reserved 13 | 14 | 15 | PCRE JUST-IN-TIME COMPILATION SUPPORT 16 | ------------------------------------- 17 | 18 | Written by: Zoltan Herczeg 19 | Email local part: hzmester 20 | Emain domain: freemail.hu 21 | 22 | Copyright(c) 2010-2019 Zoltan Herczeg 23 | All rights reserved. 24 | 25 | 26 | STACK-LESS JUST-IN-TIME COMPILER 27 | -------------------------------- 28 | 29 | Written by: Zoltan Herczeg 30 | Email local part: hzmester 31 | Emain domain: freemail.hu 32 | 33 | Copyright(c) 2009-2019 Zoltan Herczeg 34 | All rights reserved. 35 | 36 | 37 | THE C++ WRAPPER LIBRARY 38 | ----------------------- 39 | 40 | Written by: Google Inc. 41 | 42 | Copyright (c) 2007-2012 Google Inc 43 | All rights reserved 44 | 45 | #### 46 | -------------------------------------------------------------------------------- /src/pcre/COPYING: -------------------------------------------------------------------------------- 1 | PCRE LICENCE 2 | 3 | Please see the file LICENCE in the PCRE distribution for licensing details. 4 | 5 | End 6 | -------------------------------------------------------------------------------- /src/pcre/ChangeLog: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hypermail-project/hypermail/10c9cbe6e60e77e16e21b870e6c78eb1050f0438/src/pcre/ChangeLog -------------------------------------------------------------------------------- /src/pcre/CheckMan: -------------------------------------------------------------------------------- 1 | #! /usr/bin/perl 2 | 3 | # A script to scan PCRE's man pages to check for typos in the control 4 | # sequences. I use only a small set of the available repertoire, so it is 5 | # straightforward to check that nothing else has slipped in by mistake. This 6 | # script should be called in the doc directory. 7 | 8 | $yield = 0; 9 | 10 | while (scalar(@ARGV) > 0) 11 | { 12 | $line = 0; 13 | $file = shift @ARGV; 14 | 15 | open (IN, $file) || die "Failed to open $file\n"; 16 | 17 | while () 18 | { 19 | $line++; 20 | if (/^\s*$/) 21 | { 22 | printf "Empty line $line of $file\n"; 23 | $yield = 1; 24 | } 25 | elsif (/^\./) 26 | { 27 | if (!/^\.\s*$| 28 | ^\.B\s+\S| 29 | ^\.TH\s\S| 30 | ^\.SH\s\S| 31 | ^\.SS\s\S| 32 | ^\.TP(?:\s?\d+)?\s*$| 33 | ^\.SM\s*$| 34 | ^\.br\s*$| 35 | ^\.rs\s*$| 36 | ^\.sp\s*$| 37 | ^\.nf\s*$| 38 | ^\.fi\s*$| 39 | ^\.P\s*$| 40 | ^\.PP\s*$| 41 | ^\.\\"(?:\ HREF)?\s*$| 42 | ^\.\\"\sHTML\s\s*$| 43 | ^\.\\"\sHTML\s<\/a>\s*$| 44 | ^\.\\"\s<\/a>\s*$| 45 | ^\.\\"\sJOINSH\s*$| 46 | ^\.\\"\sJOIN\s*$/x 47 | ) 48 | { 49 | printf "Bad control line $line of $file\n"; 50 | $yield = 1; 51 | } 52 | } 53 | else 54 | { 55 | if (/\\[^ef]|\\f[^IBP]/) 56 | { 57 | printf "Bad backslash in line $line of $file\n"; 58 | $yield = 1; 59 | } 60 | } 61 | } 62 | 63 | close(IN); 64 | } 65 | 66 | exit $yield; 67 | # End 68 | -------------------------------------------------------------------------------- /src/pcre/Detrail: -------------------------------------------------------------------------------- 1 | #!/usr/bin/perl 2 | 3 | # This is a script for removing trailing whitespace from lines in files that 4 | # are listed on the command line. 5 | 6 | # This subroutine does the work for one file. 7 | 8 | sub detrail { 9 | my($file) = $_[0]; 10 | my($changed) = 0; 11 | open(IN, "$file") || die "Can't open $file for input"; 12 | @lines = ; 13 | close(IN); 14 | foreach (@lines) 15 | { 16 | if (/\s+\n$/) 17 | { 18 | s/\s+\n$/\n/; 19 | $changed = 1; 20 | } 21 | } 22 | if ($changed) 23 | { 24 | open(OUT, ">$file") || die "Can't open $file for output"; 25 | print OUT @lines; 26 | close(OUT); 27 | } 28 | } 29 | 30 | # This is the main program 31 | 32 | $, = ""; # Output field separator 33 | for ($i = 0; $i < @ARGV; $i++) { &detrail($ARGV[$i]); } 34 | 35 | # End 36 | -------------------------------------------------------------------------------- /src/pcre/NON-UNIX-USE: -------------------------------------------------------------------------------- 1 | Compiling PCRE on non-Unix systems 2 | ---------------------------------- 3 | 4 | This has been renamed to better reflect its contents. Please see the file 5 | NON-AUTOTOOLS-BUILD for details of how to build PCRE without using autotools. 6 | 7 | #### 8 | -------------------------------------------------------------------------------- /src/pcre/cmake/COPYING-CMAKE-SCRIPTS: -------------------------------------------------------------------------------- 1 | Redistribution and use in source and binary forms, with or without 2 | modification, are permitted provided that the following conditions 3 | are met: 4 | 5 | 1. Redistributions of source code must retain the copyright 6 | notice, this list of conditions and the following disclaimer. 7 | 2. Redistributions in binary form must reproduce the copyright 8 | notice, this list of conditions and the following disclaimer in the 9 | documentation and/or other materials provided with the distribution. 10 | 3. The name of the author may not be used to endorse or promote products 11 | derived from this software without specific prior written permission. 12 | 13 | THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 14 | IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 15 | OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 16 | IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 17 | INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 18 | NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 19 | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 20 | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 21 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 22 | THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 23 | -------------------------------------------------------------------------------- /src/pcre/cmake/FindEditline.cmake: -------------------------------------------------------------------------------- 1 | # Modified from FindReadline.cmake (PH Feb 2012) 2 | 3 | if(EDITLINE_INCLUDE_DIR AND EDITLINE_LIBRARY AND NCURSES_LIBRARY) 4 | set(EDITLINE_FOUND TRUE) 5 | else(EDITLINE_INCLUDE_DIR AND EDITLINE_LIBRARY AND NCURSES_LIBRARY) 6 | FIND_PATH(EDITLINE_INCLUDE_DIR readline.h 7 | /usr/include/editline 8 | /usr/include/edit/readline 9 | /usr/include/readline 10 | ) 11 | 12 | FIND_LIBRARY(EDITLINE_LIBRARY NAMES edit) 13 | include(FindPackageHandleStandardArgs) 14 | FIND_PACKAGE_HANDLE_STANDARD_ARGS(Editline DEFAULT_MSG EDITLINE_INCLUDE_DIR EDITLINE_LIBRARY ) 15 | 16 | MARK_AS_ADVANCED(EDITLINE_INCLUDE_DIR EDITLINE_LIBRARY) 17 | endif(EDITLINE_INCLUDE_DIR AND EDITLINE_LIBRARY AND NCURSES_LIBRARY) 18 | -------------------------------------------------------------------------------- /src/pcre/cmake/FindReadline.cmake: -------------------------------------------------------------------------------- 1 | # from http://websvn.kde.org/trunk/KDE/kdeedu/cmake/modules/FindReadline.cmake 2 | # http://websvn.kde.org/trunk/KDE/kdeedu/cmake/modules/COPYING-CMAKE-SCRIPTS 3 | # --> BSD licensed 4 | # 5 | # GNU Readline library finder 6 | if(READLINE_INCLUDE_DIR AND READLINE_LIBRARY AND NCURSES_LIBRARY) 7 | set(READLINE_FOUND TRUE) 8 | else(READLINE_INCLUDE_DIR AND READLINE_LIBRARY AND NCURSES_LIBRARY) 9 | FIND_PATH(READLINE_INCLUDE_DIR readline/readline.h 10 | /usr/include/readline 11 | ) 12 | 13 | # 2008-04-22 The next clause used to read like this: 14 | # 15 | # FIND_LIBRARY(READLINE_LIBRARY NAMES readline) 16 | # FIND_LIBRARY(NCURSES_LIBRARY NAMES ncurses ) 17 | # include(FindPackageHandleStandardArgs) 18 | # FIND_PACKAGE_HANDLE_STANDARD_ARGS(Readline DEFAULT_MSG NCURSES_LIBRARY READLINE_INCLUDE_DIR READLINE_LIBRARY ) 19 | # 20 | # I was advised to modify it such that it will find an ncurses library if 21 | # required, but not if one was explicitly given, that is, it allows the 22 | # default to be overridden. PH 23 | 24 | FIND_LIBRARY(READLINE_LIBRARY NAMES readline) 25 | include(FindPackageHandleStandardArgs) 26 | FIND_PACKAGE_HANDLE_STANDARD_ARGS(Readline DEFAULT_MSG READLINE_INCLUDE_DIR READLINE_LIBRARY ) 27 | 28 | MARK_AS_ADVANCED(READLINE_INCLUDE_DIR READLINE_LIBRARY) 29 | endif(READLINE_INCLUDE_DIR AND READLINE_LIBRARY AND NCURSES_LIBRARY) 30 | -------------------------------------------------------------------------------- /src/pcre/config-cmake.h.in: -------------------------------------------------------------------------------- 1 | /* config.h for CMake builds */ 2 | 3 | #cmakedefine HAVE_DIRENT_H 1 4 | #cmakedefine HAVE_SYS_STAT_H 1 5 | #cmakedefine HAVE_SYS_TYPES_H 1 6 | #cmakedefine HAVE_UNISTD_H 1 7 | #cmakedefine HAVE_WINDOWS_H 1 8 | #cmakedefine HAVE_STDINT_H 1 9 | #cmakedefine HAVE_INTTYPES_H 1 10 | 11 | #cmakedefine HAVE_TYPE_TRAITS_H 1 12 | #cmakedefine HAVE_BITS_TYPE_TRAITS_H 1 13 | 14 | #cmakedefine HAVE_BCOPY 1 15 | #cmakedefine HAVE_MEMMOVE 1 16 | #cmakedefine HAVE_STRERROR 1 17 | #cmakedefine HAVE_STRTOLL 1 18 | #cmakedefine HAVE_STRTOQ 1 19 | #cmakedefine HAVE__STRTOI64 1 20 | 21 | #cmakedefine PCRE_STATIC 1 22 | 23 | #cmakedefine SUPPORT_PCRE8 1 24 | #cmakedefine SUPPORT_PCRE16 1 25 | #cmakedefine SUPPORT_PCRE32 1 26 | #cmakedefine SUPPORT_JIT 1 27 | #cmakedefine SUPPORT_PCREGREP_JIT 1 28 | #cmakedefine SUPPORT_UTF 1 29 | #cmakedefine SUPPORT_UCP 1 30 | #cmakedefine EBCDIC 1 31 | #cmakedefine EBCDIC_NL25 1 32 | #cmakedefine BSR_ANYCRLF 1 33 | #cmakedefine NO_RECURSE 1 34 | 35 | #cmakedefine HAVE_LONG_LONG 1 36 | #cmakedefine HAVE_UNSIGNED_LONG_LONG 1 37 | 38 | #cmakedefine SUPPORT_LIBBZ2 1 39 | #cmakedefine SUPPORT_LIBZ 1 40 | #cmakedefine SUPPORT_LIBEDIT 1 41 | #cmakedefine SUPPORT_LIBREADLINE 1 42 | 43 | #cmakedefine SUPPORT_VALGRIND 1 44 | #cmakedefine SUPPORT_GCOV 1 45 | 46 | #define NEWLINE @NEWLINE@ 47 | #define POSIX_MALLOC_THRESHOLD @PCRE_POSIX_MALLOC_THRESHOLD@ 48 | #define LINK_SIZE @PCRE_LINK_SIZE@ 49 | #define PARENS_NEST_LIMIT @PCRE_PARENS_NEST_LIMIT@ 50 | #define MATCH_LIMIT @PCRE_MATCH_LIMIT@ 51 | #define MATCH_LIMIT_RECURSION @PCRE_MATCH_LIMIT_RECURSION@ 52 | #define PCREGREP_BUFSIZE @PCREGREP_BUFSIZE@ 53 | 54 | #define MAX_NAME_SIZE 32 55 | #define MAX_NAME_COUNT 10000 56 | 57 | /* end config.h for CMake builds */ 58 | -------------------------------------------------------------------------------- /src/pcre/doc/html/pcre_free_study.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | pcre_free_study specification 4 | 5 | 6 |

pcre_free_study man page

7 |

8 | Return to the PCRE index page. 9 |

10 |

11 | This page is part of the PCRE HTML documentation. It was generated automatically 12 | from the original man page. If there is any nonsense in it, please consult the 13 | man page, in case the conversion went wrong. 14 |
15 |
16 | SYNOPSIS 17 |
18 |

19 | #include <pcre.h> 20 |

21 |

22 | void pcre_free_study(pcre_extra *extra); 23 |

24 |

25 | void pcre16_free_study(pcre16_extra *extra); 26 |

27 |

28 | void pcre32_free_study(pcre32_extra *extra); 29 |

30 |
31 | DESCRIPTION 32 |
33 |

34 | This function is used to free the memory used for the data generated by a call 35 | to pcre[16|32]_study() when it is no longer needed. The argument must be the 36 | result of such a call. 37 |

38 |

39 | There is a complete description of the PCRE native API in the 40 | pcreapi 41 | page and a description of the POSIX API in the 42 | pcreposix 43 | page. 44 |

45 | Return to the PCRE index page. 46 |

47 | -------------------------------------------------------------------------------- /src/pcre/doc/html/pcre_free_substring.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | pcre_free_substring specification 4 | 5 | 6 |

pcre_free_substring man page

7 |

8 | Return to the PCRE index page. 9 |

10 |

11 | This page is part of the PCRE HTML documentation. It was generated automatically 12 | from the original man page. If there is any nonsense in it, please consult the 13 | man page, in case the conversion went wrong. 14 |
15 |
16 | SYNOPSIS 17 |
18 |

19 | #include <pcre.h> 20 |

21 |

22 | void pcre_free_substring(const char *stringptr); 23 |

24 |

25 | void pcre16_free_substring(PCRE_SPTR16 stringptr); 26 |

27 |

28 | void pcre32_free_substring(PCRE_SPTR32 stringptr); 29 |

30 |
31 | DESCRIPTION 32 |
33 |

34 | This is a convenience function for freeing the store obtained by a previous 35 | call to pcre[16|32]_get_substring() or pcre[16|32]_get_named_substring(). 36 | Its only argument is a pointer to the string. 37 |

38 |

39 | There is a complete description of the PCRE native API in the 40 | pcreapi 41 | page and a description of the POSIX API in the 42 | pcreposix 43 | page. 44 |

45 | Return to the PCRE index page. 46 |

47 | -------------------------------------------------------------------------------- /src/pcre/doc/html/pcre_free_substring_list.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | pcre_free_substring_list specification 4 | 5 | 6 |

pcre_free_substring_list man page

7 |

8 | Return to the PCRE index page. 9 |

10 |

11 | This page is part of the PCRE HTML documentation. It was generated automatically 12 | from the original man page. If there is any nonsense in it, please consult the 13 | man page, in case the conversion went wrong. 14 |
15 |
16 | SYNOPSIS 17 |
18 |

19 | #include <pcre.h> 20 |

21 |

22 | void pcre_free_substring_list(const char **stringptr); 23 |

24 |

25 | void pcre16_free_substring_list(PCRE_SPTR16 *stringptr); 26 |

27 |

28 | void pcre32_free_substring_list(PCRE_SPTR32 *stringptr); 29 |

30 |
31 | DESCRIPTION 32 |
33 |

34 | This is a convenience function for freeing the store obtained by a previous 35 | call to pcre[16|32]_get_substring_list(). Its only argument is a pointer to 36 | the list of string pointers. 37 |

38 |

39 | There is a complete description of the PCRE native API in the 40 | pcreapi 41 | page and a description of the POSIX API in the 42 | pcreposix 43 | page. 44 |

45 | Return to the PCRE index page. 46 |

47 | -------------------------------------------------------------------------------- /src/pcre/doc/html/pcre_get_stringnumber.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | pcre_get_stringnumber specification 4 | 5 | 6 |

pcre_get_stringnumber man page

7 |

8 | Return to the PCRE index page. 9 |

10 |

11 | This page is part of the PCRE HTML documentation. It was generated automatically 12 | from the original man page. If there is any nonsense in it, please consult the 13 | man page, in case the conversion went wrong. 14 |
15 |
16 | SYNOPSIS 17 |
18 |

19 | #include <pcre.h> 20 |

21 |

22 | int pcre_get_stringnumber(const pcre *code, 23 | const char *name); 24 |
25 |
26 | int pcre16_get_stringnumber(const pcre16 *code, 27 | PCRE_SPTR16 name); 28 |
29 |
30 | int pcre32_get_stringnumber(const pcre32 *code, 31 | PCRE_SPTR32 name); 32 |

33 |
34 | DESCRIPTION 35 |
36 |

37 | This convenience function finds the number of a named substring capturing 38 | parenthesis in a compiled pattern. Its arguments are: 39 |

40 |   code    Compiled regular expression
41 |   name    Name whose number is required
42 | 
43 | The yield of the function is the number of the parenthesis if the name is 44 | found, or PCRE_ERROR_NOSUBSTRING otherwise. When duplicate names are allowed 45 | (PCRE_DUPNAMES is set), it is not defined which of the numbers is returned by 46 | pcre[16|32]_get_stringnumber(). You can obtain the complete list by calling 47 | pcre[16|32]_get_stringtable_entries(). 48 |

49 |

50 | There is a complete description of the PCRE native API in the 51 | pcreapi 52 | page and a description of the POSIX API in the 53 | pcreposix 54 | page. 55 |

56 | Return to the PCRE index page. 57 |

58 | -------------------------------------------------------------------------------- /src/pcre/doc/html/pcre_get_stringtable_entries.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | pcre_get_stringtable_entries specification 4 | 5 | 6 |

pcre_get_stringtable_entries man page

7 |

8 | Return to the PCRE index page. 9 |

10 |

11 | This page is part of the PCRE HTML documentation. It was generated automatically 12 | from the original man page. If there is any nonsense in it, please consult the 13 | man page, in case the conversion went wrong. 14 |
15 |
16 | SYNOPSIS 17 |
18 |

19 | #include <pcre.h> 20 |

21 |

22 | int pcre_get_stringtable_entries(const pcre *code, 23 | const char *name, char **first, char **last); 24 |
25 |
26 | int pcre16_get_stringtable_entries(const pcre16 *code, 27 | PCRE_SPTR16 name, PCRE_UCHAR16 **first, PCRE_UCHAR16 **last); 28 |
29 |
30 | int pcre32_get_stringtable_entries(const pcre32 *code, 31 | PCRE_SPTR32 name, PCRE_UCHAR32 **first, PCRE_UCHAR32 **last); 32 |

33 |
34 | DESCRIPTION 35 |
36 |

37 | This convenience function finds, for a compiled pattern, the first and last 38 | entries for a given name in the table that translates capturing parenthesis 39 | names into numbers. When names are required to be unique (PCRE_DUPNAMES is 40 | not set), it is usually easier to use pcre[16|32]_get_stringnumber() 41 | instead. 42 |

43 |   code    Compiled regular expression
44 |   name    Name whose entries required
45 |   first   Where to return a pointer to the first entry
46 |   last    Where to return a pointer to the last entry
47 | 
48 | The yield of the function is the length of each entry, or 49 | PCRE_ERROR_NOSUBSTRING if none are found. 50 |

51 |

52 | There is a complete description of the PCRE native API, including the format of 53 | the table entries, in the 54 | pcreapi 55 | page, and a description of the POSIX API in the 56 | pcreposix 57 | page. 58 |

59 | Return to the PCRE index page. 60 |

61 | -------------------------------------------------------------------------------- /src/pcre/doc/html/pcre_jit_stack_alloc.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | pcre_jit_stack_alloc specification 4 | 5 | 6 |

pcre_jit_stack_alloc man page

7 |

8 | Return to the PCRE index page. 9 |

10 |

11 | This page is part of the PCRE HTML documentation. It was generated automatically 12 | from the original man page. If there is any nonsense in it, please consult the 13 | man page, in case the conversion went wrong. 14 |
15 |
16 | SYNOPSIS 17 |
18 |

19 | #include <pcre.h> 20 |

21 |

22 | pcre_jit_stack *pcre_jit_stack_alloc(int startsize, 23 | int maxsize); 24 |
25 |
26 | pcre16_jit_stack *pcre16_jit_stack_alloc(int startsize, 27 | int maxsize); 28 |
29 |
30 | pcre32_jit_stack *pcre32_jit_stack_alloc(int startsize, 31 | int maxsize); 32 |

33 |
34 | DESCRIPTION 35 |
36 |

37 | This function is used to create a stack for use by the code compiled by the JIT 38 | optimization of pcre[16|32]_study(). The arguments are a starting size for 39 | the stack, and a maximum size to which it is allowed to grow. The result can be 40 | passed to the JIT run-time code by pcre[16|32]_assign_jit_stack(), or that 41 | function can set up a callback for obtaining a stack. A maximum stack size of 42 | 512K to 1M should be more than enough for any pattern. For more details, see 43 | the 44 | pcrejit 45 | page. 46 |

47 |

48 | There is a complete description of the PCRE native API in the 49 | pcreapi 50 | page and a description of the POSIX API in the 51 | pcreposix 52 | page. 53 |

54 | Return to the PCRE index page. 55 |

56 | -------------------------------------------------------------------------------- /src/pcre/doc/html/pcre_jit_stack_free.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | pcre_jit_stack_free specification 4 | 5 | 6 |

pcre_jit_stack_free man page

7 |

8 | Return to the PCRE index page. 9 |

10 |

11 | This page is part of the PCRE HTML documentation. It was generated automatically 12 | from the original man page. If there is any nonsense in it, please consult the 13 | man page, in case the conversion went wrong. 14 |
15 |
16 | SYNOPSIS 17 |
18 |

19 | #include <pcre.h> 20 |

21 |

22 | void pcre_jit_stack_free(pcre_jit_stack *stack); 23 |

24 |

25 | void pcre16_jit_stack_free(pcre16_jit_stack *stack); 26 |

27 |

28 | void pcre32_jit_stack_free(pcre32_jit_stack *stack); 29 |

30 |
31 | DESCRIPTION 32 |
33 |

34 | This function is used to free a JIT stack that was created by 35 | pcre[16|32]_jit_stack_alloc() when it is no longer needed. For more details, 36 | see the 37 | pcrejit 38 | page. 39 |

40 |

41 | There is a complete description of the PCRE native API in the 42 | pcreapi 43 | page and a description of the POSIX API in the 44 | pcreposix 45 | page. 46 |

47 | Return to the PCRE index page. 48 |

49 | -------------------------------------------------------------------------------- /src/pcre/doc/html/pcre_maketables.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | pcre_maketables specification 4 | 5 | 6 |

pcre_maketables man page

7 |

8 | Return to the PCRE index page. 9 |

10 |

11 | This page is part of the PCRE HTML documentation. It was generated automatically 12 | from the original man page. If there is any nonsense in it, please consult the 13 | man page, in case the conversion went wrong. 14 |
15 |
16 | SYNOPSIS 17 |
18 |

19 | #include <pcre.h> 20 |

21 |

22 | const unsigned char *pcre_maketables(void); 23 |

24 |

25 | const unsigned char *pcre16_maketables(void); 26 |

27 |

28 | const unsigned char *pcre32_maketables(void); 29 |

30 |
31 | DESCRIPTION 32 |
33 |

34 | This function builds a set of character tables for character values less than 35 | 256. These can be passed to pcre[16|32]_compile() to override PCRE's 36 | internal, built-in tables (which were made by pcre[16|32]_maketables() when 37 | PCRE was compiled). You might want to do this if you are using a non-standard 38 | locale. The function yields a pointer to the tables. 39 |

40 |

41 | There is a complete description of the PCRE native API in the 42 | pcreapi 43 | page and a description of the POSIX API in the 44 | pcreposix 45 | page. 46 |

47 | Return to the PCRE index page. 48 |

49 | -------------------------------------------------------------------------------- /src/pcre/doc/html/pcre_pattern_to_host_byte_order.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | pcre_pattern_to_host_byte_order specification 4 | 5 | 6 |

pcre_pattern_to_host_byte_order man page

7 |

8 | Return to the PCRE index page. 9 |

10 |

11 | This page is part of the PCRE HTML documentation. It was generated automatically 12 | from the original man page. If there is any nonsense in it, please consult the 13 | man page, in case the conversion went wrong. 14 |
15 |
16 | SYNOPSIS 17 |
18 |

19 | #include <pcre.h> 20 |

21 |

22 | int pcre_pattern_to_host_byte_order(pcre *code, 23 | pcre_extra *extra, const unsigned char *tables); 24 |
25 |
26 | int pcre16_pattern_to_host_byte_order(pcre16 *code, 27 | pcre16_extra *extra, const unsigned char *tables); 28 |
29 |
30 | int pcre32_pattern_to_host_byte_order(pcre32 *code, 31 | pcre32_extra *extra, const unsigned char *tables); 32 |

33 |
34 | DESCRIPTION 35 |
36 |

37 | This function ensures that the bytes in 2-byte and 4-byte values in a compiled 38 | pattern are in the correct order for the current host. It is useful when a 39 | pattern that has been compiled on one host is transferred to another that might 40 | have different endianness. The arguments are: 41 |

42 |   code         A compiled regular expression
43 |   extra        Points to an associated pcre[16|32]_extra structure,
44 |                  or is NULL
45 |   tables       Pointer to character tables, or NULL to
46 |                  set the built-in default
47 | 
48 | The result is 0 for success, a negative PCRE_ERROR_xxx value otherwise. 49 |

50 |

51 | There is a complete description of the PCRE native API in the 52 | pcreapi 53 | page and a description of the POSIX API in the 54 | pcreposix 55 | page. 56 |

57 | Return to the PCRE index page. 58 |

59 | -------------------------------------------------------------------------------- /src/pcre/doc/html/pcre_refcount.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | pcre_refcount specification 4 | 5 | 6 |

pcre_refcount man page

7 |

8 | Return to the PCRE index page. 9 |

10 |

11 | This page is part of the PCRE HTML documentation. It was generated automatically 12 | from the original man page. If there is any nonsense in it, please consult the 13 | man page, in case the conversion went wrong. 14 |
15 |
16 | SYNOPSIS 17 |
18 |

19 | #include <pcre.h> 20 |

21 |

22 | int pcre_refcount(pcre *code, int adjust); 23 |

24 |

25 | int pcre16_refcount(pcre16 *code, int adjust); 26 |

27 |

28 | int pcre32_refcount(pcre32 *code, int adjust); 29 |

30 |
31 | DESCRIPTION 32 |
33 |

34 | This function is used to maintain a reference count inside a data block that 35 | contains a compiled pattern. Its arguments are: 36 |

37 |   code                      Compiled regular expression
38 |   adjust                    Adjustment to reference value
39 | 
40 | The yield of the function is the adjusted reference value, which is constrained 41 | to lie between 0 and 65535. 42 |

43 |

44 | There is a complete description of the PCRE native API in the 45 | pcreapi 46 | page and a description of the POSIX API in the 47 | pcreposix 48 | page. 49 |

50 | Return to the PCRE index page. 51 |

52 | -------------------------------------------------------------------------------- /src/pcre/doc/html/pcre_utf16_to_host_byte_order.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | pcre_utf16_to_host_byte_order specification 4 | 5 | 6 |

pcre_utf16_to_host_byte_order man page

7 |

8 | Return to the PCRE index page. 9 |

10 |

11 | This page is part of the PCRE HTML documentation. It was generated automatically 12 | from the original man page. If there is any nonsense in it, please consult the 13 | man page, in case the conversion went wrong. 14 |
15 |
16 | SYNOPSIS 17 |
18 |

19 | #include <pcre.h> 20 |

21 |

22 | int pcre16_utf16_to_host_byte_order(PCRE_UCHAR16 *output, 23 | PCRE_SPTR16 input, int length, int *host_byte_order, 24 | int keep_boms); 25 |

26 |
27 | DESCRIPTION 28 |
29 |

30 | This function, which exists only in the 16-bit library, converts a UTF-16 31 | string to the correct order for the current host, taking account of any byte 32 | order marks (BOMs) within the string. Its arguments are: 33 |

34 |   output           pointer to output buffer, may be the same as input
35 |   input            pointer to input buffer
36 |   length           number of 16-bit units in the input, or negative for
37 |                      a zero-terminated string
38 |   host_byte_order  a NULL value or a non-zero value pointed to means
39 |                      start in host byte order
40 |   keep_boms        if non-zero, BOMs are copied to the output string
41 | 
42 | The result of the function is the number of 16-bit units placed into the output 43 | buffer, including the zero terminator if the string was zero-terminated. 44 |

45 |

46 | If host_byte_order is not NULL, it is set to indicate the byte order that 47 | is current at the end of the string. 48 |

49 |

50 | There is a complete description of the PCRE native API in the 51 | pcreapi 52 | page and a description of the POSIX API in the 53 | pcreposix 54 | page. 55 |

56 | Return to the PCRE index page. 57 |

58 | -------------------------------------------------------------------------------- /src/pcre/doc/html/pcre_utf32_to_host_byte_order.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | pcre_utf32_to_host_byte_order specification 4 | 5 | 6 |

pcre_utf32_to_host_byte_order man page

7 |

8 | Return to the PCRE index page. 9 |

10 |

11 | This page is part of the PCRE HTML documentation. It was generated automatically 12 | from the original man page. If there is any nonsense in it, please consult the 13 | man page, in case the conversion went wrong. 14 |
15 |
16 | SYNOPSIS 17 |
18 |

19 | #include <pcre.h> 20 |

21 |

22 | int pcre32_utf32_to_host_byte_order(PCRE_UCHAR32 *output, 23 | PCRE_SPTR32 input, int length, int *host_byte_order, 24 | int keep_boms); 25 |

26 |
27 | DESCRIPTION 28 |
29 |

30 | This function, which exists only in the 32-bit library, converts a UTF-32 31 | string to the correct order for the current host, taking account of any byte 32 | order marks (BOMs) within the string. Its arguments are: 33 |

34 |   output           pointer to output buffer, may be the same as input
35 |   input            pointer to input buffer
36 |   length           number of 32-bit units in the input, or negative for
37 |                      a zero-terminated string
38 |   host_byte_order  a NULL value or a non-zero value pointed to means
39 |                      start in host byte order
40 |   keep_boms        if non-zero, BOMs are copied to the output string
41 | 
42 | The result of the function is the number of 32-bit units placed into the output 43 | buffer, including the zero terminator if the string was zero-terminated. 44 |

45 |

46 | If host_byte_order is not NULL, it is set to indicate the byte order that 47 | is current at the end of the string. 48 |

49 |

50 | There is a complete description of the PCRE native API in the 51 | pcreapi 52 | page and a description of the POSIX API in the 53 | pcreposix 54 | page. 55 |

56 | Return to the PCRE index page. 57 |

58 | -------------------------------------------------------------------------------- /src/pcre/doc/html/pcre_version.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | pcre_version specification 4 | 5 | 6 |

pcre_version man page

7 |

8 | Return to the PCRE index page. 9 |

10 |

11 | This page is part of the PCRE HTML documentation. It was generated automatically 12 | from the original man page. If there is any nonsense in it, please consult the 13 | man page, in case the conversion went wrong. 14 |
15 |
16 | SYNOPSIS 17 |
18 |

19 | #include <pcre.h> 20 |

21 |

22 | const char *pcre_version(void); 23 |

24 |

25 | const char *pcre16_version(void); 26 |

27 |

28 | const char *pcre32_version(void); 29 |

30 |
31 | DESCRIPTION 32 |
33 |

34 | This function (even in the 16-bit and 32-bit libraries) returns a 35 | zero-terminated, 8-bit character string that gives the version number of the 36 | PCRE library and the date of its release. 37 |

38 |

39 | There is a complete description of the PCRE native API in the 40 | pcreapi 41 | page and a description of the POSIX API in the 42 | pcreposix 43 | page. 44 |

45 | Return to the PCRE index page. 46 |

47 | -------------------------------------------------------------------------------- /src/pcre/doc/pcre_assign_jit_stack.3: -------------------------------------------------------------------------------- 1 | .TH PCRE_ASSIGN_JIT_STACK 3 "24 June 2012" "PCRE 8.30" 2 | .SH NAME 3 | PCRE - Perl-compatible regular expressions 4 | .SH SYNOPSIS 5 | .rs 6 | .sp 7 | .B #include 8 | .PP 9 | .nf 10 | .B void pcre_assign_jit_stack(pcre_extra *\fIextra\fP, 11 | .B " pcre_jit_callback \fIcallback\fP, void *\fIdata\fP);" 12 | .sp 13 | .B void pcre16_assign_jit_stack(pcre16_extra *\fIextra\fP, 14 | .B " pcre16_jit_callback \fIcallback\fP, void *\fIdata\fP);" 15 | .sp 16 | .B void pcre32_assign_jit_stack(pcre32_extra *\fIextra\fP, 17 | .B " pcre32_jit_callback \fIcallback\fP, void *\fIdata\fP);" 18 | .fi 19 | . 20 | .SH DESCRIPTION 21 | .rs 22 | .sp 23 | This function provides control over the memory used as a stack at run-time by a 24 | call to \fBpcre[16|32]_exec()\fP with a pattern that has been successfully 25 | compiled with JIT optimization. The arguments are: 26 | .sp 27 | extra the data pointer returned by \fBpcre[16|32]_study()\fP 28 | callback a callback function 29 | data a JIT stack or a value to be passed to the callback 30 | function 31 | .P 32 | If \fIcallback\fP is NULL and \fIdata\fP is NULL, an internal 32K block on 33 | the machine stack is used. 34 | .P 35 | If \fIcallback\fP is NULL and \fIdata\fP is not NULL, \fIdata\fP must 36 | be a valid JIT stack, the result of calling \fBpcre[16|32]_jit_stack_alloc()\fP. 37 | .P 38 | If \fIcallback\fP not NULL, it is called with \fIdata\fP as an argument at 39 | the start of matching, in order to set up a JIT stack. If the result is NULL, 40 | the internal 32K stack is used; otherwise the return value must be a valid JIT 41 | stack, the result of calling \fBpcre[16|32]_jit_stack_alloc()\fP. 42 | .P 43 | You may safely assign the same JIT stack to multiple patterns, as long as they 44 | are all matched in the same thread. In a multithread application, each thread 45 | must use its own JIT stack. For more details, see the 46 | .\" HREF 47 | \fBpcrejit\fP 48 | .\" 49 | page. 50 | .P 51 | There is a complete description of the PCRE native API in the 52 | .\" HREF 53 | \fBpcreapi\fP 54 | .\" 55 | page and a description of the POSIX API in the 56 | .\" HREF 57 | \fBpcreposix\fP 58 | .\" 59 | page. 60 | -------------------------------------------------------------------------------- /src/pcre/doc/pcre_copy_named_substring.3: -------------------------------------------------------------------------------- 1 | .TH PCRE_COPY_NAMED_SUBSTRING 3 "24 June 2012" "PCRE 8.30" 2 | .SH NAME 3 | PCRE - Perl-compatible regular expressions 4 | .SH SYNOPSIS 5 | .rs 6 | .sp 7 | .B #include 8 | .PP 9 | .nf 10 | .B int pcre_copy_named_substring(const pcre *\fIcode\fP, 11 | .B " const char *\fIsubject\fP, int *\fIovector\fP," 12 | .B " int \fIstringcount\fP, const char *\fIstringname\fP," 13 | .B " char *\fIbuffer\fP, int \fIbuffersize\fP);" 14 | .sp 15 | .B int pcre16_copy_named_substring(const pcre16 *\fIcode\fP, 16 | .B " PCRE_SPTR16 \fIsubject\fP, int *\fIovector\fP," 17 | .B " int \fIstringcount\fP, PCRE_SPTR16 \fIstringname\fP," 18 | .B " PCRE_UCHAR16 *\fIbuffer\fP, int \fIbuffersize\fP);" 19 | .sp 20 | .B int pcre32_copy_named_substring(const pcre32 *\fIcode\fP, 21 | .B " PCRE_SPTR32 \fIsubject\fP, int *\fIovector\fP," 22 | .B " int \fIstringcount\fP, PCRE_SPTR32 \fIstringname\fP," 23 | .B " PCRE_UCHAR32 *\fIbuffer\fP, int \fIbuffersize\fP);" 24 | .fi 25 | . 26 | .SH DESCRIPTION 27 | .rs 28 | .sp 29 | This is a convenience function for extracting a captured substring, identified 30 | by name, into a given buffer. The arguments are: 31 | .sp 32 | \fIcode\fP Pattern that was successfully matched 33 | \fIsubject\fP Subject that has been successfully matched 34 | \fIovector\fP Offset vector that \fBpcre[16|32]_exec()\fP used 35 | \fIstringcount\fP Value returned by \fBpcre[16|32]_exec()\fP 36 | \fIstringname\fP Name of the required substring 37 | \fIbuffer\fP Buffer to receive the string 38 | \fIbuffersize\fP Size of buffer 39 | .sp 40 | The yield is the length of the substring, PCRE_ERROR_NOMEMORY if the buffer was 41 | too small, or PCRE_ERROR_NOSUBSTRING if the string name is invalid. 42 | .P 43 | There is a complete description of the PCRE native API in the 44 | .\" HREF 45 | \fBpcreapi\fP 46 | .\" 47 | page and a description of the POSIX API in the 48 | .\" HREF 49 | \fBpcreposix\fP 50 | .\" 51 | page. 52 | -------------------------------------------------------------------------------- /src/pcre/doc/pcre_copy_substring.3: -------------------------------------------------------------------------------- 1 | .TH PCRE_COPY_SUBSTRING 3 "24 June 2012" "PCRE 8.30" 2 | .SH NAME 3 | PCRE - Perl-compatible regular expressions 4 | .SH SYNOPSIS 5 | .rs 6 | .sp 7 | .B #include 8 | .PP 9 | .nf 10 | .B int pcre_copy_substring(const char *\fIsubject\fP, int *\fIovector\fP, 11 | .B " int \fIstringcount\fP, int \fIstringnumber\fP, char *\fIbuffer\fP," 12 | .B " int \fIbuffersize\fP);" 13 | .sp 14 | .B int pcre16_copy_substring(PCRE_SPTR16 \fIsubject\fP, int *\fIovector\fP, 15 | .B " int \fIstringcount\fP, int \fIstringnumber\fP, PCRE_UCHAR16 *\fIbuffer\fP," 16 | .B " int \fIbuffersize\fP);" 17 | .sp 18 | .B int pcre32_copy_substring(PCRE_SPTR32 \fIsubject\fP, int *\fIovector\fP, 19 | .B " int \fIstringcount\fP, int \fIstringnumber\fP, PCRE_UCHAR32 *\fIbuffer\fP," 20 | .B " int \fIbuffersize\fP);" 21 | .fi 22 | . 23 | .SH DESCRIPTION 24 | .rs 25 | .sp 26 | This is a convenience function for extracting a captured substring into a given 27 | buffer. The arguments are: 28 | .sp 29 | \fIsubject\fP Subject that has been successfully matched 30 | \fIovector\fP Offset vector that \fBpcre[16|32]_exec()\fP used 31 | \fIstringcount\fP Value returned by \fBpcre[16|32]_exec()\fP 32 | \fIstringnumber\fP Number of the required substring 33 | \fIbuffer\fP Buffer to receive the string 34 | \fIbuffersize\fP Size of buffer 35 | .sp 36 | The yield is the length of the string, PCRE_ERROR_NOMEMORY if the buffer was 37 | too small, or PCRE_ERROR_NOSUBSTRING if the string number is invalid. 38 | .P 39 | There is a complete description of the PCRE native API in the 40 | .\" HREF 41 | \fBpcreapi\fP 42 | .\" 43 | page and a description of the POSIX API in the 44 | .\" HREF 45 | \fBpcreposix\fP 46 | .\" 47 | page. 48 | -------------------------------------------------------------------------------- /src/pcre/doc/pcre_free_study.3: -------------------------------------------------------------------------------- 1 | .TH PCRE_FREE_STUDY 3 "24 June 2012" "PCRE 8.30" 2 | .SH NAME 3 | PCRE - Perl-compatible regular expressions 4 | .SH SYNOPSIS 5 | .rs 6 | .sp 7 | .B #include 8 | .PP 9 | .SM 10 | .B void pcre_free_study(pcre_extra *\fIextra\fP); 11 | .PP 12 | .B void pcre16_free_study(pcre16_extra *\fIextra\fP); 13 | .PP 14 | .B void pcre32_free_study(pcre32_extra *\fIextra\fP); 15 | . 16 | .SH DESCRIPTION 17 | .rs 18 | .sp 19 | This function is used to free the memory used for the data generated by a call 20 | to \fBpcre[16|32]_study()\fP when it is no longer needed. The argument must be the 21 | result of such a call. 22 | .P 23 | There is a complete description of the PCRE native API in the 24 | .\" HREF 25 | \fBpcreapi\fP 26 | .\" 27 | page and a description of the POSIX API in the 28 | .\" HREF 29 | \fBpcreposix\fP 30 | .\" 31 | page. 32 | -------------------------------------------------------------------------------- /src/pcre/doc/pcre_free_substring.3: -------------------------------------------------------------------------------- 1 | .TH PCRE_FREE_SUBSTRING 3 "24 June 2012" "PCRE 8.30" 2 | .SH NAME 3 | PCRE - Perl-compatible regular expressions 4 | .SH SYNOPSIS 5 | .rs 6 | .sp 7 | .B #include 8 | .PP 9 | .SM 10 | .B void pcre_free_substring(const char *\fIstringptr\fP); 11 | .PP 12 | .B void pcre16_free_substring(PCRE_SPTR16 \fIstringptr\fP); 13 | .PP 14 | .B void pcre32_free_substring(PCRE_SPTR32 \fIstringptr\fP); 15 | . 16 | .SH DESCRIPTION 17 | .rs 18 | .sp 19 | This is a convenience function for freeing the store obtained by a previous 20 | call to \fBpcre[16|32]_get_substring()\fP or \fBpcre[16|32]_get_named_substring()\fP. 21 | Its only argument is a pointer to the string. 22 | .P 23 | There is a complete description of the PCRE native API in the 24 | .\" HREF 25 | \fBpcreapi\fP 26 | .\" 27 | page and a description of the POSIX API in the 28 | .\" HREF 29 | \fBpcreposix\fP 30 | .\" 31 | page. 32 | -------------------------------------------------------------------------------- /src/pcre/doc/pcre_free_substring_list.3: -------------------------------------------------------------------------------- 1 | .TH PCRE_FREE_SUBSTRING_LIST 3 "24 June 2012" "PCRE 8.30" 2 | .SH NAME 3 | PCRE - Perl-compatible regular expressions 4 | .SH SYNOPSIS 5 | .rs 6 | .sp 7 | .B #include 8 | .PP 9 | .SM 10 | .B void pcre_free_substring_list(const char **\fIstringptr\fP); 11 | .PP 12 | .B void pcre16_free_substring_list(PCRE_SPTR16 *\fIstringptr\fP); 13 | .PP 14 | .B void pcre32_free_substring_list(PCRE_SPTR32 *\fIstringptr\fP); 15 | . 16 | .SH DESCRIPTION 17 | .rs 18 | .sp 19 | This is a convenience function for freeing the store obtained by a previous 20 | call to \fBpcre[16|32]_get_substring_list()\fP. Its only argument is a pointer to 21 | the list of string pointers. 22 | .P 23 | There is a complete description of the PCRE native API in the 24 | .\" HREF 25 | \fBpcreapi\fP 26 | .\" 27 | page and a description of the POSIX API in the 28 | .\" HREF 29 | \fBpcreposix\fP 30 | .\" 31 | page. 32 | -------------------------------------------------------------------------------- /src/pcre/doc/pcre_get_named_substring.3: -------------------------------------------------------------------------------- 1 | .TH PCRE_GET_NAMED_SUBSTRING 3 "24 June 2012" "PCRE 8.30" 2 | .SH NAME 3 | PCRE - Perl-compatible regular expressions 4 | .SH SYNOPSIS 5 | .rs 6 | .sp 7 | .B #include 8 | .PP 9 | .nf 10 | .B int pcre_get_named_substring(const pcre *\fIcode\fP, 11 | .B " const char *\fIsubject\fP, int *\fIovector\fP," 12 | .B " int \fIstringcount\fP, const char *\fIstringname\fP," 13 | .B " const char **\fIstringptr\fP);" 14 | .sp 15 | .B int pcre16_get_named_substring(const pcre16 *\fIcode\fP, 16 | .B " PCRE_SPTR16 \fIsubject\fP, int *\fIovector\fP," 17 | .B " int \fIstringcount\fP, PCRE_SPTR16 \fIstringname\fP," 18 | .B " PCRE_SPTR16 *\fIstringptr\fP);" 19 | .sp 20 | .B int pcre32_get_named_substring(const pcre32 *\fIcode\fP, 21 | .B " PCRE_SPTR32 \fIsubject\fP, int *\fIovector\fP," 22 | .B " int \fIstringcount\fP, PCRE_SPTR32 \fIstringname\fP," 23 | .B " PCRE_SPTR32 *\fIstringptr\fP);" 24 | .fi 25 | . 26 | .SH DESCRIPTION 27 | .rs 28 | .sp 29 | This is a convenience function for extracting a captured substring by name. The 30 | arguments are: 31 | .sp 32 | \fIcode\fP Compiled pattern 33 | \fIsubject\fP Subject that has been successfully matched 34 | \fIovector\fP Offset vector that \fBpcre[16|32]_exec()\fP used 35 | \fIstringcount\fP Value returned by \fBpcre[16|32]_exec()\fP 36 | \fIstringname\fP Name of the required substring 37 | \fIstringptr\fP Where to put the string pointer 38 | .sp 39 | The memory in which the substring is placed is obtained by calling 40 | \fBpcre[16|32]_malloc()\fP. The convenience function 41 | \fBpcre[16|32]_free_substring()\fP can be used to free it when it is no longer 42 | needed. The yield of the function is the length of the extracted substring, 43 | PCRE_ERROR_NOMEMORY if sufficient memory could not be obtained, or 44 | PCRE_ERROR_NOSUBSTRING if the string name is invalid. 45 | .P 46 | There is a complete description of the PCRE native API in the 47 | .\" HREF 48 | \fBpcreapi\fP 49 | .\" 50 | page and a description of the POSIX API in the 51 | .\" HREF 52 | \fBpcreposix\fP 53 | .\" 54 | page. 55 | -------------------------------------------------------------------------------- /src/pcre/doc/pcre_get_stringnumber.3: -------------------------------------------------------------------------------- 1 | .TH PCRE_GET_STRINGNUMBER 3 "24 June 2012" "PCRE 8.30" 2 | .SH NAME 3 | PCRE - Perl-compatible regular expressions 4 | .SH SYNOPSIS 5 | .rs 6 | .sp 7 | .B #include 8 | .PP 9 | .nf 10 | .B int pcre_get_stringnumber(const pcre *\fIcode\fP, 11 | .B " const char *\fIname\fP);" 12 | .sp 13 | .B int pcre16_get_stringnumber(const pcre16 *\fIcode\fP, 14 | .B " PCRE_SPTR16 \fIname\fP);" 15 | .sp 16 | .B int pcre32_get_stringnumber(const pcre32 *\fIcode\fP, 17 | .B " PCRE_SPTR32 \fIname\fP);" 18 | .fi 19 | . 20 | .SH DESCRIPTION 21 | .rs 22 | .sp 23 | This convenience function finds the number of a named substring capturing 24 | parenthesis in a compiled pattern. Its arguments are: 25 | .sp 26 | \fIcode\fP Compiled regular expression 27 | \fIname\fP Name whose number is required 28 | .sp 29 | The yield of the function is the number of the parenthesis if the name is 30 | found, or PCRE_ERROR_NOSUBSTRING otherwise. When duplicate names are allowed 31 | (PCRE_DUPNAMES is set), it is not defined which of the numbers is returned by 32 | \fBpcre[16|32]_get_stringnumber()\fP. You can obtain the complete list by calling 33 | \fBpcre[16|32]_get_stringtable_entries()\fP. 34 | .P 35 | There is a complete description of the PCRE native API in the 36 | .\" HREF 37 | \fBpcreapi\fP 38 | .\" 39 | page and a description of the POSIX API in the 40 | .\" HREF 41 | \fBpcreposix\fP 42 | .\" 43 | page. 44 | -------------------------------------------------------------------------------- /src/pcre/doc/pcre_get_stringtable_entries.3: -------------------------------------------------------------------------------- 1 | .TH PCRE_GET_STRINGTABLE_ENTRIES 3 "24 June 2012" "PCRE 8.30" 2 | .SH NAME 3 | PCRE - Perl-compatible regular expressions 4 | .SH SYNOPSIS 5 | .rs 6 | .sp 7 | .B #include 8 | .PP 9 | .nf 10 | .B int pcre_get_stringtable_entries(const pcre *\fIcode\fP, 11 | .B " const char *\fIname\fP, char **\fIfirst\fP, char **\fIlast\fP);" 12 | .sp 13 | .B int pcre16_get_stringtable_entries(const pcre16 *\fIcode\fP, 14 | .B " PCRE_SPTR16 \fIname\fP, PCRE_UCHAR16 **\fIfirst\fP, PCRE_UCHAR16 **\fIlast\fP);" 15 | .sp 16 | .B int pcre32_get_stringtable_entries(const pcre32 *\fIcode\fP, 17 | .B " PCRE_SPTR32 \fIname\fP, PCRE_UCHAR32 **\fIfirst\fP, PCRE_UCHAR32 **\fIlast\fP);" 18 | .fi 19 | . 20 | .SH DESCRIPTION 21 | .rs 22 | .sp 23 | This convenience function finds, for a compiled pattern, the first and last 24 | entries for a given name in the table that translates capturing parenthesis 25 | names into numbers. When names are required to be unique (PCRE_DUPNAMES is 26 | \fInot\fP set), it is usually easier to use \fBpcre[16|32]_get_stringnumber()\fP 27 | instead. 28 | .sp 29 | \fIcode\fP Compiled regular expression 30 | \fIname\fP Name whose entries required 31 | \fIfirst\fP Where to return a pointer to the first entry 32 | \fIlast\fP Where to return a pointer to the last entry 33 | .sp 34 | The yield of the function is the length of each entry, or 35 | PCRE_ERROR_NOSUBSTRING if none are found. 36 | .P 37 | There is a complete description of the PCRE native API, including the format of 38 | the table entries, in the 39 | .\" HREF 40 | \fBpcreapi\fP 41 | .\" 42 | page, and a description of the POSIX API in the 43 | .\" HREF 44 | \fBpcreposix\fP 45 | .\" 46 | page. 47 | -------------------------------------------------------------------------------- /src/pcre/doc/pcre_get_substring.3: -------------------------------------------------------------------------------- 1 | .TH PCRE_GET_SUBSTRING 3 "24 June 2012" "PCRE 8.30" 2 | .SH NAME 3 | PCRE - Perl-compatible regular expressions 4 | .SH SYNOPSIS 5 | .rs 6 | .sp 7 | .B #include 8 | .PP 9 | .nf 10 | .B int pcre_get_substring(const char *\fIsubject\fP, int *\fIovector\fP, 11 | .B " int \fIstringcount\fP, int \fIstringnumber\fP," 12 | .B " const char **\fIstringptr\fP);" 13 | .sp 14 | .B int pcre16_get_substring(PCRE_SPTR16 \fIsubject\fP, int *\fIovector\fP, 15 | .B " int \fIstringcount\fP, int \fIstringnumber\fP," 16 | .B " PCRE_SPTR16 *\fIstringptr\fP);" 17 | .sp 18 | .B int pcre32_get_substring(PCRE_SPTR32 \fIsubject\fP, int *\fIovector\fP, 19 | .B " int \fIstringcount\fP, int \fIstringnumber\fP," 20 | .B " PCRE_SPTR32 *\fIstringptr\fP);" 21 | .fi 22 | . 23 | .SH DESCRIPTION 24 | .rs 25 | .sp 26 | This is a convenience function for extracting a captured substring. The 27 | arguments are: 28 | .sp 29 | \fIsubject\fP Subject that has been successfully matched 30 | \fIovector\fP Offset vector that \fBpcre[16|32]_exec()\fP used 31 | \fIstringcount\fP Value returned by \fBpcre[16|32]_exec()\fP 32 | \fIstringnumber\fP Number of the required substring 33 | \fIstringptr\fP Where to put the string pointer 34 | .sp 35 | The memory in which the substring is placed is obtained by calling 36 | \fBpcre[16|32]_malloc()\fP. The convenience function 37 | \fBpcre[16|32]_free_substring()\fP can be used to free it when it is no longer 38 | needed. The yield of the function is the length of the substring, 39 | PCRE_ERROR_NOMEMORY if sufficient memory could not be obtained, or 40 | PCRE_ERROR_NOSUBSTRING if the string number is invalid. 41 | .P 42 | There is a complete description of the PCRE native API in the 43 | .\" HREF 44 | \fBpcreapi\fP 45 | .\" 46 | page and a description of the POSIX API in the 47 | .\" HREF 48 | \fBpcreposix\fP 49 | .\" 50 | page. 51 | -------------------------------------------------------------------------------- /src/pcre/doc/pcre_get_substring_list.3: -------------------------------------------------------------------------------- 1 | .TH PCRE_GET_SUBSTRING_LIST 3 "24 June 2012" "PCRE 8.30" 2 | .SH NAME 3 | PCRE - Perl-compatible regular expressions 4 | .SH SYNOPSIS 5 | .rs 6 | .sp 7 | .B #include 8 | .PP 9 | .nf 10 | .B int pcre_get_substring_list(const char *\fIsubject\fP, 11 | .B " int *\fIovector\fP, int \fIstringcount\fP, const char ***\fIlistptr\fP);" 12 | .sp 13 | .B int pcre16_get_substring_list(PCRE_SPTR16 \fIsubject\fP, 14 | .B " int *\fIovector\fP, int \fIstringcount\fP, PCRE_SPTR16 **\fIlistptr\fP);" 15 | .sp 16 | .B int pcre32_get_substring_list(PCRE_SPTR32 \fIsubject\fP, 17 | .B " int *\fIovector\fP, int \fIstringcount\fP, PCRE_SPTR32 **\fIlistptr\fP);" 18 | .fi 19 | . 20 | .SH DESCRIPTION 21 | .rs 22 | .sp 23 | This is a convenience function for extracting a list of all the captured 24 | substrings. The arguments are: 25 | .sp 26 | \fIsubject\fP Subject that has been successfully matched 27 | \fIovector\fP Offset vector that \fBpcre[16|32]_exec\fP used 28 | \fIstringcount\fP Value returned by \fBpcre[16|32]_exec\fP 29 | \fIlistptr\fP Where to put a pointer to the list 30 | .sp 31 | The memory in which the substrings and the list are placed is obtained by 32 | calling \fBpcre[16|32]_malloc()\fP. The convenience function 33 | \fBpcre[16|32]_free_substring_list()\fP can be used to free it when it is no 34 | longer needed. A pointer to a list of pointers is put in the variable whose 35 | address is in \fIlistptr\fP. The list is terminated by a NULL pointer. The 36 | yield of the function is zero on success or PCRE_ERROR_NOMEMORY if sufficient 37 | memory could not be obtained. 38 | .P 39 | There is a complete description of the PCRE native API in the 40 | .\" HREF 41 | \fBpcreapi\fP 42 | .\" 43 | page and a description of the POSIX API in the 44 | .\" HREF 45 | \fBpcreposix\fP 46 | .\" 47 | page. 48 | -------------------------------------------------------------------------------- /src/pcre/doc/pcre_jit_stack_alloc.3: -------------------------------------------------------------------------------- 1 | .TH PCRE_JIT_STACK_ALLOC 3 "24 June 2012" "PCRE 8.30" 2 | .SH NAME 3 | PCRE - Perl-compatible regular expressions 4 | .SH SYNOPSIS 5 | .rs 6 | .sp 7 | .B #include 8 | .PP 9 | .nf 10 | .B pcre_jit_stack *pcre_jit_stack_alloc(int \fIstartsize\fP, 11 | .B " int \fImaxsize\fP);" 12 | .sp 13 | .B pcre16_jit_stack *pcre16_jit_stack_alloc(int \fIstartsize\fP, 14 | .B " int \fImaxsize\fP);" 15 | .sp 16 | .B pcre32_jit_stack *pcre32_jit_stack_alloc(int \fIstartsize\fP, 17 | .B " int \fImaxsize\fP);" 18 | .fi 19 | . 20 | .SH DESCRIPTION 21 | .rs 22 | .sp 23 | This function is used to create a stack for use by the code compiled by the JIT 24 | optimization of \fBpcre[16|32]_study()\fP. The arguments are a starting size for 25 | the stack, and a maximum size to which it is allowed to grow. The result can be 26 | passed to the JIT run-time code by \fBpcre[16|32]_assign_jit_stack()\fP, or that 27 | function can set up a callback for obtaining a stack. A maximum stack size of 28 | 512K to 1M should be more than enough for any pattern. For more details, see 29 | the 30 | .\" HREF 31 | \fBpcrejit\fP 32 | .\" 33 | page. 34 | .P 35 | There is a complete description of the PCRE native API in the 36 | .\" HREF 37 | \fBpcreapi\fP 38 | .\" 39 | page and a description of the POSIX API in the 40 | .\" HREF 41 | \fBpcreposix\fP 42 | .\" 43 | page. 44 | -------------------------------------------------------------------------------- /src/pcre/doc/pcre_jit_stack_free.3: -------------------------------------------------------------------------------- 1 | .TH PCRE_JIT_STACK_FREE 3 "24 June 2012" "PCRE 8.30" 2 | .SH NAME 3 | PCRE - Perl-compatible regular expressions 4 | .SH SYNOPSIS 5 | .rs 6 | .sp 7 | .B #include 8 | .PP 9 | .SM 10 | .B void pcre_jit_stack_free(pcre_jit_stack *\fIstack\fP); 11 | .PP 12 | .B void pcre16_jit_stack_free(pcre16_jit_stack *\fIstack\fP); 13 | .PP 14 | .B void pcre32_jit_stack_free(pcre32_jit_stack *\fIstack\fP); 15 | . 16 | .SH DESCRIPTION 17 | .rs 18 | .sp 19 | This function is used to free a JIT stack that was created by 20 | \fBpcre[16|32]_jit_stack_alloc()\fP when it is no longer needed. For more details, 21 | see the 22 | .\" HREF 23 | \fBpcrejit\fP 24 | .\" 25 | page. 26 | .P 27 | There is a complete description of the PCRE native API in the 28 | .\" HREF 29 | \fBpcreapi\fP 30 | .\" 31 | page and a description of the POSIX API in the 32 | .\" HREF 33 | \fBpcreposix\fP 34 | .\" 35 | page. 36 | -------------------------------------------------------------------------------- /src/pcre/doc/pcre_maketables.3: -------------------------------------------------------------------------------- 1 | .TH PCRE_MAKETABLES 3 "24 June 2012" "PCRE 8.30" 2 | .SH NAME 3 | PCRE - Perl-compatible regular expressions 4 | .SH SYNOPSIS 5 | .rs 6 | .sp 7 | .B #include 8 | .PP 9 | .SM 10 | .B const unsigned char *pcre_maketables(void); 11 | .PP 12 | .B const unsigned char *pcre16_maketables(void); 13 | .PP 14 | .B const unsigned char *pcre32_maketables(void); 15 | . 16 | .SH DESCRIPTION 17 | .rs 18 | .sp 19 | This function builds a set of character tables for character values less than 20 | 256. These can be passed to \fBpcre[16|32]_compile()\fP to override PCRE's 21 | internal, built-in tables (which were made by \fBpcre[16|32]_maketables()\fP when 22 | PCRE was compiled). You might want to do this if you are using a non-standard 23 | locale. The function yields a pointer to the tables. 24 | .P 25 | There is a complete description of the PCRE native API in the 26 | .\" HREF 27 | \fBpcreapi\fP 28 | .\" 29 | page and a description of the POSIX API in the 30 | .\" HREF 31 | \fBpcreposix\fP 32 | .\" 33 | page. 34 | -------------------------------------------------------------------------------- /src/pcre/doc/pcre_pattern_to_host_byte_order.3: -------------------------------------------------------------------------------- 1 | .TH PCRE_PATTERN_TO_HOST_BYTE_ORDER 3 "24 June 2012" "PCRE 8.30" 2 | .SH NAME 3 | PCRE - Perl-compatible regular expressions 4 | .SH SYNOPSIS 5 | .rs 6 | .sp 7 | .B #include 8 | .PP 9 | .nf 10 | .B int pcre_pattern_to_host_byte_order(pcre *\fIcode\fP, 11 | .B " pcre_extra *\fIextra\fP, const unsigned char *\fItables\fP);" 12 | .sp 13 | .B int pcre16_pattern_to_host_byte_order(pcre16 *\fIcode\fP, 14 | .B " pcre16_extra *\fIextra\fP, const unsigned char *\fItables\fP);" 15 | .sp 16 | .B int pcre32_pattern_to_host_byte_order(pcre32 *\fIcode\fP, 17 | .B " pcre32_extra *\fIextra\fP, const unsigned char *\fItables\fP);" 18 | .fi 19 | . 20 | .SH DESCRIPTION 21 | .rs 22 | .sp 23 | This function ensures that the bytes in 2-byte and 4-byte values in a compiled 24 | pattern are in the correct order for the current host. It is useful when a 25 | pattern that has been compiled on one host is transferred to another that might 26 | have different endianness. The arguments are: 27 | .sp 28 | \fIcode\fP A compiled regular expression 29 | \fIextra\fP Points to an associated \fBpcre[16|32]_extra\fP structure, 30 | or is NULL 31 | \fItables\fP Pointer to character tables, or NULL to 32 | set the built-in default 33 | .sp 34 | The result is 0 for success, a negative PCRE_ERROR_xxx value otherwise. 35 | .P 36 | There is a complete description of the PCRE native API in the 37 | .\" HREF 38 | \fBpcreapi\fP 39 | .\" 40 | page and a description of the POSIX API in the 41 | .\" HREF 42 | \fBpcreposix\fP 43 | .\" 44 | page. 45 | -------------------------------------------------------------------------------- /src/pcre/doc/pcre_refcount.3: -------------------------------------------------------------------------------- 1 | .TH PCRE_REFCOUNT 3 "24 June 2012" "PCRE 8.30" 2 | .SH NAME 3 | PCRE - Perl-compatible regular expressions 4 | .SH SYNOPSIS 5 | .rs 6 | .sp 7 | .B #include 8 | .PP 9 | .SM 10 | .B int pcre_refcount(pcre *\fIcode\fP, int \fIadjust\fP); 11 | .PP 12 | .B int pcre16_refcount(pcre16 *\fIcode\fP, int \fIadjust\fP); 13 | .PP 14 | .B int pcre32_refcount(pcre32 *\fIcode\fP, int \fIadjust\fP); 15 | . 16 | .SH DESCRIPTION 17 | .rs 18 | .sp 19 | This function is used to maintain a reference count inside a data block that 20 | contains a compiled pattern. Its arguments are: 21 | .sp 22 | \fIcode\fP Compiled regular expression 23 | \fIadjust\fP Adjustment to reference value 24 | .sp 25 | The yield of the function is the adjusted reference value, which is constrained 26 | to lie between 0 and 65535. 27 | .P 28 | There is a complete description of the PCRE native API in the 29 | .\" HREF 30 | \fBpcreapi\fP 31 | .\" 32 | page and a description of the POSIX API in the 33 | .\" HREF 34 | \fBpcreposix\fP 35 | .\" 36 | page. 37 | -------------------------------------------------------------------------------- /src/pcre/doc/pcre_study.3: -------------------------------------------------------------------------------- 1 | .TH PCRE_STUDY 3 " 24 June 2012" "PCRE 8.30" 2 | .SH NAME 3 | PCRE - Perl-compatible regular expressions 4 | .SH SYNOPSIS 5 | .rs 6 | .sp 7 | .B #include 8 | .PP 9 | .nf 10 | .B pcre_extra *pcre_study(const pcre *\fIcode\fP, int \fIoptions\fP, 11 | .B " const char **\fIerrptr\fP);" 12 | .sp 13 | .B pcre16_extra *pcre16_study(const pcre16 *\fIcode\fP, int \fIoptions\fP, 14 | .B " const char **\fIerrptr\fP);" 15 | .sp 16 | .B pcre32_extra *pcre32_study(const pcre32 *\fIcode\fP, int \fIoptions\fP, 17 | .B " const char **\fIerrptr\fP);" 18 | .fi 19 | . 20 | .SH DESCRIPTION 21 | .rs 22 | .sp 23 | This function studies a compiled pattern, to see if additional information can 24 | be extracted that might speed up matching. Its arguments are: 25 | .sp 26 | \fIcode\fP A compiled regular expression 27 | \fIoptions\fP Options for \fBpcre[16|32]_study()\fP 28 | \fIerrptr\fP Where to put an error message 29 | .sp 30 | If the function succeeds, it returns a value that can be passed to 31 | \fBpcre[16|32]_exec()\fP or \fBpcre[16|32]_dfa_exec()\fP via their \fIextra\fP 32 | arguments. 33 | .P 34 | If the function returns NULL, either it could not find any additional 35 | information, or there was an error. You can tell the difference by looking at 36 | the error value. It is NULL in first case. 37 | .P 38 | The only option is PCRE_STUDY_JIT_COMPILE. It requests just-in-time compilation 39 | if possible. If PCRE has been compiled without JIT support, this option is 40 | ignored. See the 41 | .\" HREF 42 | \fBpcrejit\fP 43 | .\" 44 | page for further details. 45 | .P 46 | There is a complete description of the PCRE native API in the 47 | .\" HREF 48 | \fBpcreapi\fP 49 | .\" 50 | page and a description of the POSIX API in the 51 | .\" HREF 52 | \fBpcreposix\fP 53 | .\" 54 | page. 55 | -------------------------------------------------------------------------------- /src/pcre/doc/pcre_utf16_to_host_byte_order.3: -------------------------------------------------------------------------------- 1 | .TH PCRE_UTF16_TO_HOST_BYTE_ORDER 3 "21 January 2012" "PCRE 8.30" 2 | .SH NAME 3 | PCRE - Perl-compatible regular expressions 4 | .SH SYNOPSIS 5 | .rs 6 | .sp 7 | .B #include 8 | .PP 9 | .nf 10 | .B int pcre16_utf16_to_host_byte_order(PCRE_UCHAR16 *\fIoutput\fP, 11 | .B " PCRE_SPTR16 \fIinput\fP, int \fIlength\fP, int *\fIhost_byte_order\fP," 12 | .B " int \fIkeep_boms\fP);" 13 | .fi 14 | . 15 | . 16 | .SH DESCRIPTION 17 | .rs 18 | .sp 19 | This function, which exists only in the 16-bit library, converts a UTF-16 20 | string to the correct order for the current host, taking account of any byte 21 | order marks (BOMs) within the string. Its arguments are: 22 | .sp 23 | \fIoutput\fP pointer to output buffer, may be the same as \fIinput\fP 24 | \fIinput\fP pointer to input buffer 25 | \fIlength\fP number of 16-bit units in the input, or negative for 26 | a zero-terminated string 27 | \fIhost_byte_order\fP a NULL value or a non-zero value pointed to means 28 | start in host byte order 29 | \fIkeep_boms\fP if non-zero, BOMs are copied to the output string 30 | .sp 31 | The result of the function is the number of 16-bit units placed into the output 32 | buffer, including the zero terminator if the string was zero-terminated. 33 | .P 34 | If \fIhost_byte_order\fP is not NULL, it is set to indicate the byte order that 35 | is current at the end of the string. 36 | .P 37 | There is a complete description of the PCRE native API in the 38 | .\" HREF 39 | \fBpcreapi\fP 40 | .\" 41 | page and a description of the POSIX API in the 42 | .\" HREF 43 | \fBpcreposix\fP 44 | .\" 45 | page. 46 | -------------------------------------------------------------------------------- /src/pcre/doc/pcre_utf32_to_host_byte_order.3: -------------------------------------------------------------------------------- 1 | .TH PCRE_UTF32_TO_HOST_BYTE_ORDER 3 "24 June 2012" "PCRE 8.30" 2 | .SH NAME 3 | PCRE - Perl-compatible regular expressions 4 | .SH SYNOPSIS 5 | .rs 6 | .sp 7 | .B #include 8 | .PP 9 | .nf 10 | .B int pcre32_utf32_to_host_byte_order(PCRE_UCHAR32 *\fIoutput\fP, 11 | .B " PCRE_SPTR32 \fIinput\fP, int \fIlength\fP, int *\fIhost_byte_order\fP," 12 | .B " int \fIkeep_boms\fP);" 13 | .fi 14 | . 15 | . 16 | .SH DESCRIPTION 17 | .rs 18 | .sp 19 | This function, which exists only in the 32-bit library, converts a UTF-32 20 | string to the correct order for the current host, taking account of any byte 21 | order marks (BOMs) within the string. Its arguments are: 22 | .sp 23 | \fIoutput\fP pointer to output buffer, may be the same as \fIinput\fP 24 | \fIinput\fP pointer to input buffer 25 | \fIlength\fP number of 32-bit units in the input, or negative for 26 | a zero-terminated string 27 | \fIhost_byte_order\fP a NULL value or a non-zero value pointed to means 28 | start in host byte order 29 | \fIkeep_boms\fP if non-zero, BOMs are copied to the output string 30 | .sp 31 | The result of the function is the number of 32-bit units placed into the output 32 | buffer, including the zero terminator if the string was zero-terminated. 33 | .P 34 | If \fIhost_byte_order\fP is not NULL, it is set to indicate the byte order that 35 | is current at the end of the string. 36 | .P 37 | There is a complete description of the PCRE native API in the 38 | .\" HREF 39 | \fBpcreapi\fP 40 | .\" 41 | page and a description of the POSIX API in the 42 | .\" HREF 43 | \fBpcreposix\fP 44 | .\" 45 | page. 46 | -------------------------------------------------------------------------------- /src/pcre/doc/pcre_version.3: -------------------------------------------------------------------------------- 1 | .TH PCRE_VERSION 3 "24 June 2012" "PCRE 8.30" 2 | .SH NAME 3 | PCRE - Perl-compatible regular expressions 4 | .SH SYNOPSIS 5 | .rs 6 | .sp 7 | .B #include 8 | .PP 9 | .SM 10 | .B const char *pcre_version(void); 11 | .PP 12 | .B const char *pcre16_version(void); 13 | .PP 14 | .B const char *pcre32_version(void); 15 | . 16 | .SH DESCRIPTION 17 | .rs 18 | .sp 19 | This function (even in the 16-bit and 32-bit libraries) returns a 20 | zero-terminated, 8-bit character string that gives the version number of the 21 | PCRE library and the date of its release. 22 | .P 23 | There is a complete description of the PCRE native API in the 24 | .\" HREF 25 | \fBpcreapi\fP 26 | .\" 27 | page and a description of the POSIX API in the 28 | .\" HREF 29 | \fBpcreposix\fP 30 | .\" 31 | page. 32 | -------------------------------------------------------------------------------- /src/pcre/doc/perltest.txt: -------------------------------------------------------------------------------- 1 | The perltest program 2 | -------------------- 3 | 4 | The perltest.pl script tests Perl's regular expressions; it has the same 5 | specification as pcretest, and so can be given identical input, except that 6 | input patterns can be followed only by Perl's lower case modifiers and certain 7 | other pcretest modifiers that are either handled or ignored: 8 | 9 | /+ recognized and handled by perltest 10 | /++ the second + is ignored 11 | /8 recognized and handled by perltest 12 | /J ignored 13 | /K ignored 14 | /W ignored 15 | /S ignored 16 | /SS ignored 17 | /Y ignored 18 | 19 | The pcretest \Y escape in data lines is removed before matching. The data lines 20 | are processed as Perl double-quoted strings, so if they contain " $ or @ 21 | characters, these have to be escaped. For this reason, all such characters in 22 | the Perl-compatible testinput1 file are escaped so that they can be used for 23 | perltest as well as for pcretest. The special upper case pattern modifiers such 24 | as /A that pcretest recognizes, and its special data line escapes, are not used 25 | in the Perl-compatible test file. The output should be identical, apart from 26 | the initial identifying banner. 27 | 28 | The perltest.pl script can also test UTF-8 features. It recognizes the special 29 | modifier /8 that pcretest uses to invoke UTF-8 functionality. The testinput4 30 | and testinput6 files can be fed to perltest to run compatible UTF-8 tests. 31 | However, it is necessary to add "use utf8; require Encode" to the script to 32 | make this work correctly. I have not managed to find a way to handle this 33 | automatically. 34 | 35 | The other testinput files are not suitable for feeding to perltest.pl, since 36 | they make use of the special upper case modifiers and escapes that pcretest 37 | uses to test certain features of PCRE. Some of these files also contain 38 | malformed regular expressions, in order to check that PCRE diagnoses them 39 | correctly. 40 | 41 | Philip Hazel 42 | January 2012 43 | -------------------------------------------------------------------------------- /src/pcre/libpcre.pc.in: -------------------------------------------------------------------------------- 1 | # Package Information for pkg-config 2 | 3 | prefix=@prefix@ 4 | exec_prefix=@exec_prefix@ 5 | libdir=@libdir@ 6 | includedir=@includedir@ 7 | 8 | Name: libpcre 9 | Description: PCRE - Perl compatible regular expressions C library with 8 bit character support 10 | Version: @PACKAGE_VERSION@ 11 | Libs: -L${libdir} -lpcre 12 | Libs.private: @PTHREAD_CFLAGS@ @PTHREAD_LIBS@ 13 | Cflags: -I${includedir} @PCRE_STATIC_CFLAG@ 14 | -------------------------------------------------------------------------------- /src/pcre/libpcre16.pc.in: -------------------------------------------------------------------------------- 1 | # Package Information for pkg-config 2 | 3 | prefix=@prefix@ 4 | exec_prefix=@exec_prefix@ 5 | libdir=@libdir@ 6 | includedir=@includedir@ 7 | 8 | Name: libpcre16 9 | Description: PCRE - Perl compatible regular expressions C library with 16 bit character support 10 | Version: @PACKAGE_VERSION@ 11 | Libs: -L${libdir} -lpcre16 12 | Libs.private: @PTHREAD_CFLAGS@ @PTHREAD_LIBS@ 13 | Cflags: -I${includedir} @PCRE_STATIC_CFLAG@ 14 | -------------------------------------------------------------------------------- /src/pcre/libpcre32.pc.in: -------------------------------------------------------------------------------- 1 | # Package Information for pkg-config 2 | 3 | prefix=@prefix@ 4 | exec_prefix=@exec_prefix@ 5 | libdir=@libdir@ 6 | includedir=@includedir@ 7 | 8 | Name: libpcre32 9 | Description: PCRE - Perl compatible regular expressions C library with 32 bit character support 10 | Version: @PACKAGE_VERSION@ 11 | Libs: -L${libdir} -lpcre32 12 | Libs.private: @PTHREAD_CFLAGS@ @PTHREAD_LIBS@ 13 | Cflags: -I${includedir} @PCRE_STATIC_CFLAG@ 14 | -------------------------------------------------------------------------------- /src/pcre/libpcrecpp.pc.in: -------------------------------------------------------------------------------- 1 | # Package Information for pkg-config 2 | 3 | prefix=@prefix@ 4 | exec_prefix=@exec_prefix@ 5 | libdir=@libdir@ 6 | includedir=@includedir@ 7 | 8 | Name: libpcrecpp 9 | Description: PCRECPP - C++ wrapper for PCRE 10 | Version: @PACKAGE_VERSION@ 11 | Libs: -L${libdir} -lpcre -lpcrecpp 12 | Cflags: -I${includedir} @PCRE_STATIC_CFLAG@ 13 | -------------------------------------------------------------------------------- /src/pcre/libpcreposix.pc.in: -------------------------------------------------------------------------------- 1 | # Package Information for pkg-config 2 | 3 | prefix=@prefix@ 4 | exec_prefix=@exec_prefix@ 5 | libdir=@libdir@ 6 | includedir=@includedir@ 7 | 8 | Name: libpcreposix 9 | Description: PCREPosix - Posix compatible interface to libpcre 10 | Version: @PACKAGE_VERSION@ 11 | Libs: -L${libdir} -lpcreposix 12 | Cflags: -I${includedir} @PCRE_STATIC_CFLAG@ 13 | Requires.private: libpcre 14 | -------------------------------------------------------------------------------- /src/pcre/m4/ltversion.m4: -------------------------------------------------------------------------------- 1 | # ltversion.m4 -- version numbers -*- Autoconf -*- 2 | # 3 | # Copyright (C) 2004, 2011-2018 Free Software Foundation, Inc. 4 | # Written by Scott James Remnant, 2004 5 | # 6 | # This file is free software; the Free Software Foundation gives 7 | # unlimited permission to copy and/or distribute it, with or without 8 | # modifications, as long as this notice is preserved. 9 | 10 | # @configure_input@ 11 | 12 | # serial 4221 ltversion.m4 13 | # This file is part of GNU Libtool 14 | 15 | m4_define([LT_PACKAGE_VERSION], [2.4.6.42-b88ce]) 16 | m4_define([LT_PACKAGE_REVISION], [2.4.6.42]) 17 | 18 | AC_DEFUN([LTVERSION_VERSION], 19 | [macro_version='2.4.6.42-b88ce' 20 | macro_revision='2.4.6.42' 21 | _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) 22 | _LT_DECL(, macro_revision, 0) 23 | ]) 24 | -------------------------------------------------------------------------------- /src/pcre/makevp_c.txt: -------------------------------------------------------------------------------- 1 | pcre_byte_order.c 2 | pcre_chartables.c 3 | pcre_compile.c 4 | pcre_config.c 5 | pcre_dfa_exec.c 6 | pcre_exec.c 7 | pcre_fullinfo.c 8 | pcre_get.c 9 | pcre_globals.c 10 | pcre_jit_compile.c 11 | pcre_maketables.c 12 | pcre_newline.c 13 | pcre_ord2utf8.c 14 | pcre_refcount.c 15 | pcre_string_utils.c 16 | pcre_study.c 17 | pcre_tables.c 18 | pcre_ucd.c 19 | pcre_valid_utf8.c 20 | pcre_version.c 21 | pcre_xclass.c 22 | -------------------------------------------------------------------------------- /src/pcre/makevp_l.txt: -------------------------------------------------------------------------------- 1 | +pcre_byte_order.obj & 2 | +pcre_chartables.obj & 3 | +pcre_compile.obj & 4 | +pcre_config.obj & 5 | +pcre_dfa_exec.obj & 6 | +pcre_exec.obj & 7 | +pcre_fullinfo.obj & 8 | +pcre_get.obj & 9 | +pcre_globals.obj & 10 | +pcre_jit_compile.obj & 11 | +pcre_maketables.obj & 12 | +pcre_newline.obj & 13 | +pcre_ord2utf8.obj & 14 | +pcre_refcount.obj & 15 | +pcre_string_utils.obj & 16 | +pcre_study.obj & 17 | +pcre_tables.obj & 18 | +pcre_ucd.obj & 19 | +pcre_valid_utf8.obj & 20 | +pcre_version.obj & 21 | +pcre_xclass.obj 22 | -------------------------------------------------------------------------------- /src/pcre/pcre16_compile.c: -------------------------------------------------------------------------------- 1 | /************************************************* 2 | * Perl-Compatible Regular Expressions * 3 | *************************************************/ 4 | 5 | /* PCRE is a library of functions to support regular expressions whose syntax 6 | and semantics are as close as possible to those of the Perl 5 language. 7 | 8 | Written by Philip Hazel 9 | Copyright (c) 1997-2012 University of Cambridge 10 | 11 | ----------------------------------------------------------------------------- 12 | Redistribution and use in source and binary forms, with or without 13 | modification, are permitted provided that the following conditions are met: 14 | 15 | * Redistributions of source code must retain the above copyright notice, 16 | this list of conditions and the following disclaimer. 17 | 18 | * Redistributions in binary form must reproduce the above copyright 19 | notice, this list of conditions and the following disclaimer in the 20 | documentation and/or other materials provided with the distribution. 21 | 22 | * Neither the name of the University of Cambridge nor the names of its 23 | contributors may be used to endorse or promote products derived from 24 | this software without specific prior written permission. 25 | 26 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 27 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 28 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 29 | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 30 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 31 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 32 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 33 | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 34 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 35 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 36 | POSSIBILITY OF SUCH DAMAGE. 37 | ----------------------------------------------------------------------------- 38 | */ 39 | 40 | /* Generate code with 16 bit character support. */ 41 | #define COMPILE_PCRE16 42 | 43 | #include "pcre_compile.c" 44 | 45 | /* End of pcre16_compile.c */ 46 | -------------------------------------------------------------------------------- /src/pcre/pcre16_config.c: -------------------------------------------------------------------------------- 1 | /************************************************* 2 | * Perl-Compatible Regular Expressions * 3 | *************************************************/ 4 | 5 | /* PCRE is a library of functions to support regular expressions whose syntax 6 | and semantics are as close as possible to those of the Perl 5 language. 7 | 8 | Written by Philip Hazel 9 | Copyright (c) 1997-2012 University of Cambridge 10 | 11 | ----------------------------------------------------------------------------- 12 | Redistribution and use in source and binary forms, with or without 13 | modification, are permitted provided that the following conditions are met: 14 | 15 | * Redistributions of source code must retain the above copyright notice, 16 | this list of conditions and the following disclaimer. 17 | 18 | * Redistributions in binary form must reproduce the above copyright 19 | notice, this list of conditions and the following disclaimer in the 20 | documentation and/or other materials provided with the distribution. 21 | 22 | * Neither the name of the University of Cambridge nor the names of its 23 | contributors may be used to endorse or promote products derived from 24 | this software without specific prior written permission. 25 | 26 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 27 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 28 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 29 | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 30 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 31 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 32 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 33 | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 34 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 35 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 36 | POSSIBILITY OF SUCH DAMAGE. 37 | ----------------------------------------------------------------------------- 38 | */ 39 | 40 | /* Generate code with 16 bit character support. */ 41 | #define COMPILE_PCRE16 42 | 43 | #include "pcre_config.c" 44 | 45 | /* End of pcre16_config.c */ 46 | -------------------------------------------------------------------------------- /src/pcre/pcre16_exec.c: -------------------------------------------------------------------------------- 1 | /************************************************* 2 | * Perl-Compatible Regular Expressions * 3 | *************************************************/ 4 | 5 | /* PCRE is a library of functions to support regular expressions whose syntax 6 | and semantics are as close as possible to those of the Perl 5 language. 7 | 8 | Written by Philip Hazel 9 | Copyright (c) 1997-2012 University of Cambridge 10 | 11 | ----------------------------------------------------------------------------- 12 | Redistribution and use in source and binary forms, with or without 13 | modification, are permitted provided that the following conditions are met: 14 | 15 | * Redistributions of source code must retain the above copyright notice, 16 | this list of conditions and the following disclaimer. 17 | 18 | * Redistributions in binary form must reproduce the above copyright 19 | notice, this list of conditions and the following disclaimer in the 20 | documentation and/or other materials provided with the distribution. 21 | 22 | * Neither the name of the University of Cambridge nor the names of its 23 | contributors may be used to endorse or promote products derived from 24 | this software without specific prior written permission. 25 | 26 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 27 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 28 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 29 | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 30 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 31 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 32 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 33 | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 34 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 35 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 36 | POSSIBILITY OF SUCH DAMAGE. 37 | ----------------------------------------------------------------------------- 38 | */ 39 | 40 | /* Generate code with 16 bit character support. */ 41 | #define COMPILE_PCRE16 42 | 43 | #include "pcre_exec.c" 44 | 45 | /* End of pcre16_exec.c */ 46 | -------------------------------------------------------------------------------- /src/pcre/pcre16_get.c: -------------------------------------------------------------------------------- 1 | /************************************************* 2 | * Perl-Compatible Regular Expressions * 3 | *************************************************/ 4 | 5 | /* PCRE is a library of functions to support regular expressions whose syntax 6 | and semantics are as close as possible to those of the Perl 5 language. 7 | 8 | Written by Philip Hazel 9 | Copyright (c) 1997-2012 University of Cambridge 10 | 11 | ----------------------------------------------------------------------------- 12 | Redistribution and use in source and binary forms, with or without 13 | modification, are permitted provided that the following conditions are met: 14 | 15 | * Redistributions of source code must retain the above copyright notice, 16 | this list of conditions and the following disclaimer. 17 | 18 | * Redistributions in binary form must reproduce the above copyright 19 | notice, this list of conditions and the following disclaimer in the 20 | documentation and/or other materials provided with the distribution. 21 | 22 | * Neither the name of the University of Cambridge nor the names of its 23 | contributors may be used to endorse or promote products derived from 24 | this software without specific prior written permission. 25 | 26 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 27 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 28 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 29 | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 30 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 31 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 32 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 33 | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 34 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 35 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 36 | POSSIBILITY OF SUCH DAMAGE. 37 | ----------------------------------------------------------------------------- 38 | */ 39 | 40 | /* Generate code with 16 bit character support. */ 41 | #define COMPILE_PCRE16 42 | 43 | #include "pcre_get.c" 44 | 45 | /* End of pcre16_get.c */ 46 | -------------------------------------------------------------------------------- /src/pcre/pcre16_globals.c: -------------------------------------------------------------------------------- 1 | /************************************************* 2 | * Perl-Compatible Regular Expressions * 3 | *************************************************/ 4 | 5 | /* PCRE is a library of functions to support regular expressions whose syntax 6 | and semantics are as close as possible to those of the Perl 5 language. 7 | 8 | Written by Philip Hazel 9 | Copyright (c) 1997-2012 University of Cambridge 10 | 11 | ----------------------------------------------------------------------------- 12 | Redistribution and use in source and binary forms, with or without 13 | modification, are permitted provided that the following conditions are met: 14 | 15 | * Redistributions of source code must retain the above copyright notice, 16 | this list of conditions and the following disclaimer. 17 | 18 | * Redistributions in binary form must reproduce the above copyright 19 | notice, this list of conditions and the following disclaimer in the 20 | documentation and/or other materials provided with the distribution. 21 | 22 | * Neither the name of the University of Cambridge nor the names of its 23 | contributors may be used to endorse or promote products derived from 24 | this software without specific prior written permission. 25 | 26 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 27 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 28 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 29 | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 30 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 31 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 32 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 33 | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 34 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 35 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 36 | POSSIBILITY OF SUCH DAMAGE. 37 | ----------------------------------------------------------------------------- 38 | */ 39 | 40 | /* Generate code with 16 bit character support. */ 41 | #define COMPILE_PCRE16 42 | 43 | #include "pcre_globals.c" 44 | 45 | /* End of pcre16_globals.c */ 46 | -------------------------------------------------------------------------------- /src/pcre/pcre16_newline.c: -------------------------------------------------------------------------------- 1 | /************************************************* 2 | * Perl-Compatible Regular Expressions * 3 | *************************************************/ 4 | 5 | /* PCRE is a library of functions to support regular expressions whose syntax 6 | and semantics are as close as possible to those of the Perl 5 language. 7 | 8 | Written by Philip Hazel 9 | Copyright (c) 1997-2012 University of Cambridge 10 | 11 | ----------------------------------------------------------------------------- 12 | Redistribution and use in source and binary forms, with or without 13 | modification, are permitted provided that the following conditions are met: 14 | 15 | * Redistributions of source code must retain the above copyright notice, 16 | this list of conditions and the following disclaimer. 17 | 18 | * Redistributions in binary form must reproduce the above copyright 19 | notice, this list of conditions and the following disclaimer in the 20 | documentation and/or other materials provided with the distribution. 21 | 22 | * Neither the name of the University of Cambridge nor the names of its 23 | contributors may be used to endorse or promote products derived from 24 | this software without specific prior written permission. 25 | 26 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 27 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 28 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 29 | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 30 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 31 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 32 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 33 | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 34 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 35 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 36 | POSSIBILITY OF SUCH DAMAGE. 37 | ----------------------------------------------------------------------------- 38 | */ 39 | 40 | /* Generate code with 16 bit character support. */ 41 | #define COMPILE_PCRE16 42 | 43 | #include "pcre_newline.c" 44 | 45 | /* End of pcre16_newline.c */ 46 | -------------------------------------------------------------------------------- /src/pcre/pcre16_study.c: -------------------------------------------------------------------------------- 1 | /************************************************* 2 | * Perl-Compatible Regular Expressions * 3 | *************************************************/ 4 | 5 | /* PCRE is a library of functions to support regular expressions whose syntax 6 | and semantics are as close as possible to those of the Perl 5 language. 7 | 8 | Written by Philip Hazel 9 | Copyright (c) 1997-2012 University of Cambridge 10 | 11 | ----------------------------------------------------------------------------- 12 | Redistribution and use in source and binary forms, with or without 13 | modification, are permitted provided that the following conditions are met: 14 | 15 | * Redistributions of source code must retain the above copyright notice, 16 | this list of conditions and the following disclaimer. 17 | 18 | * Redistributions in binary form must reproduce the above copyright 19 | notice, this list of conditions and the following disclaimer in the 20 | documentation and/or other materials provided with the distribution. 21 | 22 | * Neither the name of the University of Cambridge nor the names of its 23 | contributors may be used to endorse or promote products derived from 24 | this software without specific prior written permission. 25 | 26 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 27 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 28 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 29 | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 30 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 31 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 32 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 33 | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 34 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 35 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 36 | POSSIBILITY OF SUCH DAMAGE. 37 | ----------------------------------------------------------------------------- 38 | */ 39 | 40 | /* Generate code with 16 bit character support. */ 41 | #define COMPILE_PCRE16 42 | 43 | #include "pcre_study.c" 44 | 45 | /* End of pcre16_study.c */ 46 | -------------------------------------------------------------------------------- /src/pcre/pcre16_tables.c: -------------------------------------------------------------------------------- 1 | /************************************************* 2 | * Perl-Compatible Regular Expressions * 3 | *************************************************/ 4 | 5 | /* PCRE is a library of functions to support regular expressions whose syntax 6 | and semantics are as close as possible to those of the Perl 5 language. 7 | 8 | Written by Philip Hazel 9 | Copyright (c) 1997-2012 University of Cambridge 10 | 11 | ----------------------------------------------------------------------------- 12 | Redistribution and use in source and binary forms, with or without 13 | modification, are permitted provided that the following conditions are met: 14 | 15 | * Redistributions of source code must retain the above copyright notice, 16 | this list of conditions and the following disclaimer. 17 | 18 | * Redistributions in binary form must reproduce the above copyright 19 | notice, this list of conditions and the following disclaimer in the 20 | documentation and/or other materials provided with the distribution. 21 | 22 | * Neither the name of the University of Cambridge nor the names of its 23 | contributors may be used to endorse or promote products derived from 24 | this software without specific prior written permission. 25 | 26 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 27 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 28 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 29 | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 30 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 31 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 32 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 33 | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 34 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 35 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 36 | POSSIBILITY OF SUCH DAMAGE. 37 | ----------------------------------------------------------------------------- 38 | */ 39 | 40 | /* Generate code with 16 bit character support. */ 41 | #define COMPILE_PCRE16 42 | 43 | #include "pcre_tables.c" 44 | 45 | /* End of pcre16_tables.c */ 46 | -------------------------------------------------------------------------------- /src/pcre/pcre16_ucd.c: -------------------------------------------------------------------------------- 1 | /************************************************* 2 | * Perl-Compatible Regular Expressions * 3 | *************************************************/ 4 | 5 | /* PCRE is a library of functions to support regular expressions whose syntax 6 | and semantics are as close as possible to those of the Perl 5 language. 7 | 8 | Written by Philip Hazel 9 | Copyright (c) 1997-2012 University of Cambridge 10 | 11 | ----------------------------------------------------------------------------- 12 | Redistribution and use in source and binary forms, with or without 13 | modification, are permitted provided that the following conditions are met: 14 | 15 | * Redistributions of source code must retain the above copyright notice, 16 | this list of conditions and the following disclaimer. 17 | 18 | * Redistributions in binary form must reproduce the above copyright 19 | notice, this list of conditions and the following disclaimer in the 20 | documentation and/or other materials provided with the distribution. 21 | 22 | * Neither the name of the University of Cambridge nor the names of its 23 | contributors may be used to endorse or promote products derived from 24 | this software without specific prior written permission. 25 | 26 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 27 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 28 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 29 | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 30 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 31 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 32 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 33 | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 34 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 35 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 36 | POSSIBILITY OF SUCH DAMAGE. 37 | ----------------------------------------------------------------------------- 38 | */ 39 | 40 | /* Generate code with 16 bit character support. */ 41 | #define COMPILE_PCRE16 42 | 43 | #include "pcre_ucd.c" 44 | 45 | /* End of pcre16_ucd.c */ 46 | -------------------------------------------------------------------------------- /src/pcre/pcre16_version.c: -------------------------------------------------------------------------------- 1 | /************************************************* 2 | * Perl-Compatible Regular Expressions * 3 | *************************************************/ 4 | 5 | /* PCRE is a library of functions to support regular expressions whose syntax 6 | and semantics are as close as possible to those of the Perl 5 language. 7 | 8 | Written by Philip Hazel 9 | Copyright (c) 1997-2012 University of Cambridge 10 | 11 | ----------------------------------------------------------------------------- 12 | Redistribution and use in source and binary forms, with or without 13 | modification, are permitted provided that the following conditions are met: 14 | 15 | * Redistributions of source code must retain the above copyright notice, 16 | this list of conditions and the following disclaimer. 17 | 18 | * Redistributions in binary form must reproduce the above copyright 19 | notice, this list of conditions and the following disclaimer in the 20 | documentation and/or other materials provided with the distribution. 21 | 22 | * Neither the name of the University of Cambridge nor the names of its 23 | contributors may be used to endorse or promote products derived from 24 | this software without specific prior written permission. 25 | 26 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 27 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 28 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 29 | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 30 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 31 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 32 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 33 | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 34 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 35 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 36 | POSSIBILITY OF SUCH DAMAGE. 37 | ----------------------------------------------------------------------------- 38 | */ 39 | 40 | /* Generate code with 16 bit character support. */ 41 | #define COMPILE_PCRE16 42 | 43 | #include "pcre_version.c" 44 | 45 | /* End of pcre16_version.c */ 46 | -------------------------------------------------------------------------------- /src/pcre/pcre16_xclass.c: -------------------------------------------------------------------------------- 1 | /************************************************* 2 | * Perl-Compatible Regular Expressions * 3 | *************************************************/ 4 | 5 | /* PCRE is a library of functions to support regular expressions whose syntax 6 | and semantics are as close as possible to those of the Perl 5 language. 7 | 8 | Written by Philip Hazel 9 | Copyright (c) 1997-2012 University of Cambridge 10 | 11 | ----------------------------------------------------------------------------- 12 | Redistribution and use in source and binary forms, with or without 13 | modification, are permitted provided that the following conditions are met: 14 | 15 | * Redistributions of source code must retain the above copyright notice, 16 | this list of conditions and the following disclaimer. 17 | 18 | * Redistributions in binary form must reproduce the above copyright 19 | notice, this list of conditions and the following disclaimer in the 20 | documentation and/or other materials provided with the distribution. 21 | 22 | * Neither the name of the University of Cambridge nor the names of its 23 | contributors may be used to endorse or promote products derived from 24 | this software without specific prior written permission. 25 | 26 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 27 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 28 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 29 | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 30 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 31 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 32 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 33 | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 34 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 35 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 36 | POSSIBILITY OF SUCH DAMAGE. 37 | ----------------------------------------------------------------------------- 38 | */ 39 | 40 | /* Generate code with 16 bit character support. */ 41 | #define COMPILE_PCRE16 42 | 43 | #include "pcre_xclass.c" 44 | 45 | /* End of pcre16_xclass.c */ 46 | -------------------------------------------------------------------------------- /src/pcre/pcre32_compile.c: -------------------------------------------------------------------------------- 1 | /************************************************* 2 | * Perl-Compatible Regular Expressions * 3 | *************************************************/ 4 | 5 | /* PCRE is a library of functions to support regular expressions whose syntax 6 | and semantics are as close as possible to those of the Perl 5 language. 7 | 8 | Written by Philip Hazel 9 | Copyright (c) 1997-2012 University of Cambridge 10 | 11 | ----------------------------------------------------------------------------- 12 | Redistribution and use in source and binary forms, with or without 13 | modification, are permitted provided that the following conditions are met: 14 | 15 | * Redistributions of source code must retain the above copyright notice, 16 | this list of conditions and the following disclaimer. 17 | 18 | * Redistributions in binary form must reproduce the above copyright 19 | notice, this list of conditions and the following disclaimer in the 20 | documentation and/or other materials provided with the distribution. 21 | 22 | * Neither the name of the University of Cambridge nor the names of its 23 | contributors may be used to endorse or promote products derived from 24 | this software without specific prior written permission. 25 | 26 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 27 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 28 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 29 | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 30 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 31 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 32 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 33 | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 34 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 35 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 36 | POSSIBILITY OF SUCH DAMAGE. 37 | ----------------------------------------------------------------------------- 38 | */ 39 | 40 | /* Generate code with 32 bit character support. */ 41 | #define COMPILE_PCRE32 42 | 43 | #include "pcre_compile.c" 44 | 45 | /* End of pcre32_compile.c */ 46 | -------------------------------------------------------------------------------- /src/pcre/pcre32_exec.c: -------------------------------------------------------------------------------- 1 | /************************************************* 2 | * Perl-Compatible Regular Expressions * 3 | *************************************************/ 4 | 5 | /* PCRE is a library of functions to support regular expressions whose syntax 6 | and semantics are as close as possible to those of the Perl 5 language. 7 | 8 | Written by Philip Hazel 9 | Copyright (c) 1997-2012 University of Cambridge 10 | 11 | ----------------------------------------------------------------------------- 12 | Redistribution and use in source and binary forms, with or without 13 | modification, are permitted provided that the following conditions are met: 14 | 15 | * Redistributions of source code must retain the above copyright notice, 16 | this list of conditions and the following disclaimer. 17 | 18 | * Redistributions in binary form must reproduce the above copyright 19 | notice, this list of conditions and the following disclaimer in the 20 | documentation and/or other materials provided with the distribution. 21 | 22 | * Neither the name of the University of Cambridge nor the names of its 23 | contributors may be used to endorse or promote products derived from 24 | this software without specific prior written permission. 25 | 26 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 27 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 28 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 29 | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 30 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 31 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 32 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 33 | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 34 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 35 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 36 | POSSIBILITY OF SUCH DAMAGE. 37 | ----------------------------------------------------------------------------- 38 | */ 39 | 40 | /* Generate code with 32 bit character support. */ 41 | #define COMPILE_PCRE32 42 | 43 | #include "pcre_exec.c" 44 | 45 | /* End of pcre32_exec.c */ 46 | -------------------------------------------------------------------------------- /src/pcre/pcre32_get.c: -------------------------------------------------------------------------------- 1 | /************************************************* 2 | * Perl-Compatible Regular Expressions * 3 | *************************************************/ 4 | 5 | /* PCRE is a library of functions to support regular expressions whose syntax 6 | and semantics are as close as possible to those of the Perl 5 language. 7 | 8 | Written by Philip Hazel 9 | Copyright (c) 1997-2012 University of Cambridge 10 | 11 | ----------------------------------------------------------------------------- 12 | Redistribution and use in source and binary forms, with or without 13 | modification, are permitted provided that the following conditions are met: 14 | 15 | * Redistributions of source code must retain the above copyright notice, 16 | this list of conditions and the following disclaimer. 17 | 18 | * Redistributions in binary form must reproduce the above copyright 19 | notice, this list of conditions and the following disclaimer in the 20 | documentation and/or other materials provided with the distribution. 21 | 22 | * Neither the name of the University of Cambridge nor the names of its 23 | contributors may be used to endorse or promote products derived from 24 | this software without specific prior written permission. 25 | 26 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 27 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 28 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 29 | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 30 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 31 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 32 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 33 | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 34 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 35 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 36 | POSSIBILITY OF SUCH DAMAGE. 37 | ----------------------------------------------------------------------------- 38 | */ 39 | 40 | /* Generate code with 32 bit character support. */ 41 | #define COMPILE_PCRE32 42 | 43 | #include "pcre_get.c" 44 | 45 | /* End of pcre32_get.c */ 46 | -------------------------------------------------------------------------------- /src/pcre/pcre32_study.c: -------------------------------------------------------------------------------- 1 | /************************************************* 2 | * Perl-Compatible Regular Expressions * 3 | *************************************************/ 4 | 5 | /* PCRE is a library of functions to support regular expressions whose syntax 6 | and semantics are as close as possible to those of the Perl 5 language. 7 | 8 | Written by Philip Hazel 9 | Copyright (c) 1997-2012 University of Cambridge 10 | 11 | ----------------------------------------------------------------------------- 12 | Redistribution and use in source and binary forms, with or without 13 | modification, are permitted provided that the following conditions are met: 14 | 15 | * Redistributions of source code must retain the above copyright notice, 16 | this list of conditions and the following disclaimer. 17 | 18 | * Redistributions in binary form must reproduce the above copyright 19 | notice, this list of conditions and the following disclaimer in the 20 | documentation and/or other materials provided with the distribution. 21 | 22 | * Neither the name of the University of Cambridge nor the names of its 23 | contributors may be used to endorse or promote products derived from 24 | this software without specific prior written permission. 25 | 26 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 27 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 28 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 29 | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 30 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 31 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 32 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 33 | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 34 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 35 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 36 | POSSIBILITY OF SUCH DAMAGE. 37 | ----------------------------------------------------------------------------- 38 | */ 39 | 40 | /* Generate code with 32 bit character support. */ 41 | #define COMPILE_PCRE32 42 | 43 | #include "pcre_study.c" 44 | 45 | /* End of pcre32_study.c */ 46 | -------------------------------------------------------------------------------- /src/pcre/pcre32_ucd.c: -------------------------------------------------------------------------------- 1 | /************************************************* 2 | * Perl-Compatible Regular Expressions * 3 | *************************************************/ 4 | 5 | /* PCRE is a library of functions to support regular expressions whose syntax 6 | and semantics are as close as possible to those of the Perl 5 language. 7 | 8 | Written by Philip Hazel 9 | Copyright (c) 1997-2012 University of Cambridge 10 | 11 | ----------------------------------------------------------------------------- 12 | Redistribution and use in source and binary forms, with or without 13 | modification, are permitted provided that the following conditions are met: 14 | 15 | * Redistributions of source code must retain the above copyright notice, 16 | this list of conditions and the following disclaimer. 17 | 18 | * Redistributions in binary form must reproduce the above copyright 19 | notice, this list of conditions and the following disclaimer in the 20 | documentation and/or other materials provided with the distribution. 21 | 22 | * Neither the name of the University of Cambridge nor the names of its 23 | contributors may be used to endorse or promote products derived from 24 | this software without specific prior written permission. 25 | 26 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 27 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 28 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 29 | ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 30 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 31 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 32 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 33 | INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 34 | CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 35 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 36 | POSSIBILITY OF SUCH DAMAGE. 37 | ----------------------------------------------------------------------------- 38 | */ 39 | 40 | /* Generate code with 32 bit character support. */ 41 | #define COMPILE_PCRE32 42 | 43 | #include "pcre_ucd.c" 44 | 45 | /* End of pcre32_ucd.c */ 46 | -------------------------------------------------------------------------------- /src/pcre/pcre_stringpiece.cc: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2005, Google Inc. 2 | // All rights reserved. 3 | // 4 | // Redistribution and use in source and binary forms, with or without 5 | // modification, are permitted provided that the following conditions are 6 | // met: 7 | // 8 | // * Redistributions of source code must retain the above copyright 9 | // notice, this list of conditions and the following disclaimer. 10 | // * Redistributions in binary form must reproduce the above 11 | // copyright notice, this list of conditions and the following disclaimer 12 | // in the documentation and/or other materials provided with the 13 | // distribution. 14 | // * Neither the name of Google Inc. nor the names of its 15 | // contributors may be used to endorse or promote products derived from 16 | // this software without specific prior written permission. 17 | // 18 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19 | // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20 | // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 21 | // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 22 | // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 23 | // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 24 | // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25 | // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26 | // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27 | // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28 | // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 | // 30 | // Author: wilsonh@google.com (Wilson Hsieh) 31 | // 32 | 33 | #ifdef HAVE_CONFIG_H 34 | #include "config.h" 35 | #endif 36 | 37 | #include 38 | #include "pcrecpp_internal.h" 39 | #include "pcre_stringpiece.h" 40 | 41 | std::ostream& operator<<(std::ostream& o, const pcrecpp::StringPiece& piece) { 42 | return (o << piece.as_string()); 43 | } 44 | -------------------------------------------------------------------------------- /src/pcre/testdata/grepbinary: -------------------------------------------------------------------------------- 1 | The quick brown fx jumps over the lazy dog. 2 | -------------------------------------------------------------------------------- /src/pcre/testdata/grepfilelist: -------------------------------------------------------------------------------- 1 | testdata/grepinputv 2 | 3 | testdata/grepinputx 4 | -------------------------------------------------------------------------------- /src/pcre/testdata/grepinput3: -------------------------------------------------------------------------------- 1 | triple: t1_txt s1_tag s_txt p_tag p_txt o_tag o_txt 2 | 3 | triple: t2_txt s1_tag s_txt p_tag p_txt o_tag 4 | Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. 5 | 6 | triple: t3_txt s2_tag s_txt p_tag p_txt o_tag o_txt 7 | 8 | triple: t4_txt s1_tag s_txt p_tag p_txt o_tag o_txt 9 | 10 | triple: t5_txt s1_tag s_txt p_tag p_txt o_tag 11 | o_txt 12 | 13 | triple: t6_txt s2_tag s_txt p_tag p_txt o_tag o_txt 14 | 15 | triple: t7_txt s1_tag s_txt p_tag p_txt o_tag o_txt 16 | -------------------------------------------------------------------------------- /src/pcre/testdata/grepinput8: -------------------------------------------------------------------------------- 1 | X one 2 | X two X three X four X five 3 | X six 4 | X seven…X eight
X nine
X ten 5 | 6 | Before 111 7 | Before 222
Before 333…Match 8 | After 111 9 | After 222
After 333 10 | And so on and so on 11 | And so on and so on 12 | -------------------------------------------------------------------------------- /src/pcre/testdata/grepinputv: -------------------------------------------------------------------------------- 1 | The quick brown 2 | fox jumps 3 | over the lazy dog. 4 | This time it jumps and jumps and jumps. 5 | -------------------------------------------------------------------------------- /src/pcre/testdata/grepinputx: -------------------------------------------------------------------------------- 1 | This is a second file of input for the pcregrep tests. 2 | 3 | Here is the pattern again. 4 | 5 | Pattern 6 | That time it was on a line by itself. 7 | 8 | To pat or not to pat, that is the question. 9 | 10 | complete pair 11 | of lines 12 | 13 | That was a complete pair 14 | of lines all by themselves. 15 | 16 | complete pair 17 | of lines 18 | 19 | And there they were again, to check line numbers. 20 | 21 | one 22 | two 23 | three 24 | four 25 | five 26 | six 27 | seven 28 | eight 29 | nine 30 | ten 31 | eleven 32 | twelve 33 | thirteen 34 | fourteen 35 | fifteen 36 | sixteen 37 | seventeen 38 | eighteen 39 | nineteen 40 | twenty 41 | 42 | This line contains pattern not on a line by itself. 43 | This is the last line of this file. 44 | -------------------------------------------------------------------------------- /src/pcre/testdata/greplist: -------------------------------------------------------------------------------- 1 | This is a file of patterns for testing the -f option. Don't include any blank 2 | lines because they will match everything! This is no longer true, so have one. 3 | 4 | pattern 5 | line by itself 6 | 7 | End of the list of patterns. 8 | -------------------------------------------------------------------------------- /src/pcre/testdata/grepoutput8: -------------------------------------------------------------------------------- 1 | ---------------------------- Test U1 ------------------------------ 2 | 1:X one 3 | 2:X two 3:X three 4:X four 5:X five 4 | 6:X six 5 | 7:X seven…8:X eight
9:X nine
10:X ten 6 | RC=0 7 | ---------------------------- Test U2 ------------------------------ 8 | 12-Before 111 9 | 13-Before 222
14-Before 333…15:Match 10 | 16-After 111 11 | 17-After 222
18-After 333 12 | RC=0 13 | -------------------------------------------------------------------------------- /src/pcre/testdata/grepoutputN: -------------------------------------------------------------------------------- 1 | ---------------------------- Test N1 ------------------------------ 2 | 1:abc 2:def ---------------------------- Test N2 ------------------------------ 3 | 1:abc def 4 | 2:ghi 5 | jkl---------------------------- Test N3 ------------------------------ 6 | 2:def 3: 7 | ghi 8 | jkl---------------------------- Test N4 ------------------------------ 9 | 2:ghi 10 | jkl---------------------------- Test N5 ------------------------------ 11 | 1:abc 2:def 12 | 3:ghi 13 | 4:jkl---------------------------- Test N6 ------------------------------ 14 | 1:abc 2:def 15 | 3:ghi 16 | 4:jkl -------------------------------------------------------------------------------- /src/pcre/testdata/greppatN4: -------------------------------------------------------------------------------- 1 | xxx 2 | jkl -------------------------------------------------------------------------------- /src/pcre/testdata/saved16: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hypermail-project/hypermail/10c9cbe6e60e77e16e21b870e6c78eb1050f0438/src/pcre/testdata/saved16 -------------------------------------------------------------------------------- /src/pcre/testdata/saved16BE-1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hypermail-project/hypermail/10c9cbe6e60e77e16e21b870e6c78eb1050f0438/src/pcre/testdata/saved16BE-1 -------------------------------------------------------------------------------- /src/pcre/testdata/saved16BE-2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hypermail-project/hypermail/10c9cbe6e60e77e16e21b870e6c78eb1050f0438/src/pcre/testdata/saved16BE-2 -------------------------------------------------------------------------------- /src/pcre/testdata/saved16LE-1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hypermail-project/hypermail/10c9cbe6e60e77e16e21b870e6c78eb1050f0438/src/pcre/testdata/saved16LE-1 -------------------------------------------------------------------------------- /src/pcre/testdata/saved16LE-2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hypermail-project/hypermail/10c9cbe6e60e77e16e21b870e6c78eb1050f0438/src/pcre/testdata/saved16LE-2 -------------------------------------------------------------------------------- /src/pcre/testdata/saved32: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hypermail-project/hypermail/10c9cbe6e60e77e16e21b870e6c78eb1050f0438/src/pcre/testdata/saved32 -------------------------------------------------------------------------------- /src/pcre/testdata/saved32BE-1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hypermail-project/hypermail/10c9cbe6e60e77e16e21b870e6c78eb1050f0438/src/pcre/testdata/saved32BE-1 -------------------------------------------------------------------------------- /src/pcre/testdata/saved32BE-2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hypermail-project/hypermail/10c9cbe6e60e77e16e21b870e6c78eb1050f0438/src/pcre/testdata/saved32BE-2 -------------------------------------------------------------------------------- /src/pcre/testdata/saved32LE-1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hypermail-project/hypermail/10c9cbe6e60e77e16e21b870e6c78eb1050f0438/src/pcre/testdata/saved32LE-1 -------------------------------------------------------------------------------- /src/pcre/testdata/saved32LE-2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hypermail-project/hypermail/10c9cbe6e60e77e16e21b870e6c78eb1050f0438/src/pcre/testdata/saved32LE-2 -------------------------------------------------------------------------------- /src/pcre/testdata/saved8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hypermail-project/hypermail/10c9cbe6e60e77e16e21b870e6c78eb1050f0438/src/pcre/testdata/saved8 -------------------------------------------------------------------------------- /src/pcre/testdata/testinput1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hypermail-project/hypermail/10c9cbe6e60e77e16e21b870e6c78eb1050f0438/src/pcre/testdata/testinput1 -------------------------------------------------------------------------------- /src/pcre/testdata/testinput13: -------------------------------------------------------------------------------- 1 | /-- This test is run only when JIT support is not available. It checks that an 2 | attempt to use it has the expected behaviour. It also tests things that 3 | are different without JIT. --/ 4 | 5 | /abc/S+I 6 | 7 | /a*/SI 8 | 9 | /-- End of testinput13 --/ 10 | -------------------------------------------------------------------------------- /src/pcre/testdata/testinput15: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hypermail-project/hypermail/10c9cbe6e60e77e16e21b870e6c78eb1050f0438/src/pcre/testdata/testinput15 -------------------------------------------------------------------------------- /src/pcre/testdata/testinput16: -------------------------------------------------------------------------------- 1 | /-- This set of tests is run only with the 8-bit library when Unicode property 2 | support is available. It starts with tests of the POSIX interface, because 3 | that is supported only with the 8-bit library. --/ 4 | 5 | /\w/P 6 | +++\x{c2} 7 | 8 | /\w/WP 9 | +++\x{c2} 10 | 11 | /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/8iDZ 12 | 13 | /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/8DZ 14 | 15 | /AB\x{1fb0}/8DZ 16 | 17 | /AB\x{1fb0}/8DZi 18 | 19 | /\x{401}\x{420}\x{421}\x{422}\x{423}\x{424}\x{425}\x{426}\x{427}\x{428}\x{429}\x{42a}\x{42b}\x{42c}\x{42d}\x{42e}\x{42f}/8iSI 20 | \x{401}\x{420}\x{421}\x{422}\x{423}\x{424}\x{425}\x{426}\x{427}\x{428}\x{429}\x{42a}\x{42b}\x{42c}\x{42d}\x{42e}\x{42f} 21 | \x{451}\x{440}\x{441}\x{442}\x{443}\x{444}\x{445}\x{446}\x{447}\x{448}\x{449}\x{44a}\x{44b}\x{44c}\x{44d}\x{44e}\x{44f} 22 | 23 | /[ⱥ]/8iBZ 24 | 25 | /[^ⱥ]/8iBZ 26 | 27 | /\h/SI 28 | 29 | /\v/SI 30 | 31 | /\R/SI 32 | 33 | /[[:blank:]]/WBZ 34 | 35 | /\x{212a}+/i8SI 36 | KKkk\x{212a} 37 | 38 | /s+/i8SI 39 | SSss\x{17f} 40 | 41 | /[\W\p{Any}]/BZ 42 | abc 43 | 123 44 | 45 | /[\W\pL]/BZ 46 | abc 47 | ** Failers 48 | 123 49 | 50 | /[\D]/8 51 | \x{1d7cf} 52 | 53 | /[\D\P{Nd}]/8 54 | \x{1d7cf} 55 | 56 | /[^\D]/8 57 | a9b 58 | ** Failers 59 | \x{1d7cf} 60 | 61 | /[^\D\P{Nd}]/8 62 | a9b 63 | \x{1d7cf} 64 | ** Failers 65 | \x{10000} 66 | 67 | /-- End of testinput16 --/ 68 | -------------------------------------------------------------------------------- /src/pcre/testdata/testinput18: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hypermail-project/hypermail/10c9cbe6e60e77e16e21b870e6c78eb1050f0438/src/pcre/testdata/testinput18 -------------------------------------------------------------------------------- /src/pcre/testdata/testinput19: -------------------------------------------------------------------------------- 1 | /-- This set of tests is for Unicode property support, relevant only to the 2 | 16- and 32-bit library. --/ 3 | 4 | /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/8iDZ 5 | 6 | /A\x{391}\x{10427}\x{ff3a}\x{1fb0}/8DZ 7 | 8 | /AB\x{1fb0}/8DZ 9 | 10 | /AB\x{1fb0}/8DZi 11 | 12 | /\x{401}\x{420}\x{421}\x{422}\x{423}\x{424}\x{425}\x{426}\x{427}\x{428}\x{429}\x{42a}\x{42b}\x{42c}\x{42d}\x{42e}\x{42f}/8iSI 13 | \x{401}\x{420}\x{421}\x{422}\x{423}\x{424}\x{425}\x{426}\x{427}\x{428}\x{429}\x{42a}\x{42b}\x{42c}\x{42d}\x{42e}\x{42f} 14 | \x{451}\x{440}\x{441}\x{442}\x{443}\x{444}\x{445}\x{446}\x{447}\x{448}\x{449}\x{44a}\x{44b}\x{44c}\x{44d}\x{44e}\x{44f} 15 | 16 | /[ⱥ]/8iBZ 17 | 18 | /[^ⱥ]/8iBZ 19 | 20 | /[[:blank:]]/WBZ 21 | 22 | /\x{212a}+/i8SI 23 | KKkk\x{212a} 24 | 25 | /s+/i8SI 26 | SSss\x{17f} 27 | 28 | /[\D]/8 29 | \x{1d7cf} 30 | 31 | /[\D\P{Nd}]/8 32 | \x{1d7cf} 33 | 34 | /[^\D]/8 35 | a9b 36 | ** Failers 37 | \x{1d7cf} 38 | 39 | /[^\D\P{Nd}]/8 40 | a9b 41 | \x{1d7cf} 42 | ** Failers 43 | \x{10000} 44 | 45 | /-- End of testinput19 --/ 46 | -------------------------------------------------------------------------------- /src/pcre/testdata/testinput20: -------------------------------------------------------------------------------- 1 | /-- These DFA tests are for the handling of characters greater than 255 in 2 | 16- or 32-bit, non-UTF mode. --/ 3 | 4 | /^\x{ffff}+/i 5 | \x{ffff} 6 | 7 | /^\x{ffff}?/i 8 | \x{ffff} 9 | 10 | /^\x{ffff}*/i 11 | \x{ffff} 12 | 13 | /^\x{ffff}{3}/i 14 | \x{ffff}\x{ffff}\x{ffff} 15 | 16 | /^\x{ffff}{0,3}/i 17 | \x{ffff} 18 | 19 | /-- End of testinput20 --/ 20 | -------------------------------------------------------------------------------- /src/pcre/testdata/testinput21: -------------------------------------------------------------------------------- 1 | /-- Tests for reloading pre-compiled patterns. The first one gives an error 2 | right away, and can be any old pattern compiled in 8-bit mode ("abc" is 3 | typical). The others require the link size to be 2. */x 4 | 5 | (?:[AaLl]+)[^xX-]*?)(?P[\x{150}-\x{250}\x{300}]| 9 | [^\x{800}aAs-uS-U\x{d800}-\x{dfff}])++[^#\b\x{500}\x{1000}]{3,5}$ 10 | /x 11 | 12 | In 16-bit mode with options: S>testdata/saved16LE-1 13 | FS>testdata/saved16BE-1 14 | In 32-bit mode with options: S>testdata/saved32LE-1 15 | FS>testdata/saved32BE-1 16 | --%x 17 | 18 | [aZ\x{400}-\x{10ffff}]{4,} 5 | [\x{f123}\x{10039}\x{20000}-\x{21234}]?| 6 | [A-Cx-z\x{100000}-\x{1000a7}\x{101234}]) 7 | (?[^az])/x 8 | 9 | In 16-bit mode with options: S8>testdata/saved16LE-2 10 | FS8>testdata/saved16BE-2 11 | In 32-bit mode with options: S8>testdata/saved32LE-2 12 | FS8>testdata/saved32BE-2 13 | --%8x 14 | 15 | = 0 */ 9 | const char *start_match; 10 | const char *stop_match; 11 | } String_Match; 12 | 13 | int search_for_quote(char *search_line, char *exact_line, int max_msgnum, 14 | String_Match * match_info); 15 | struct body *tokenize_body(struct body *bp, char *token, char **ptr, 16 | int *bigram_index, int ignore); 17 | void analyze_headers(int amount_new); 18 | void set_alt_replylist(struct reply *r); 19 | 20 | #endif /* SEARCH_H_INCLUDED */ 21 | -------------------------------------------------------------------------------- /src/struct.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** struct.c functions 3 | */ 4 | 5 | unsigned hash(char *); 6 | void reinit_structs(void); 7 | void fill_email_dates(struct emailinfo *, char *, char *, char *, char *); 8 | 9 | struct emailinfo *addhash(int, char *, char *, char *, char *, char *, char *, 10 | char *, char *, char *, char *, struct body *); 11 | 12 | int insert_in_lists(struct emailinfo *, const bool *, int); 13 | 14 | struct emailinfo *hashreplylookup(int, char *, char *, int *); 15 | 16 | struct emailinfo *hashmsgidlookup(char *, int *); 17 | int hashreplynumlookup(int, char *, char *, int *); 18 | struct emailinfo *hashlookupbymsgid(char *); 19 | int insert_older_msgs(int); 20 | 21 | struct body *hashnumlookup(int, struct emailinfo **); 22 | struct emailinfo *neighborlookup(int, int); 23 | 24 | struct body *addbody(struct body *, struct body **, char *, int); 25 | struct body *append_body(struct body *, struct body **, struct body *); 26 | void free_body(struct body *); 27 | 28 | struct reply *addreply(struct reply *, int, struct emailinfo *, int, 29 | struct reply **); 30 | struct reply *addreply2(struct reply *, struct emailinfo *, struct emailinfo *, 31 | int, struct reply **); 32 | int rmlastlines(struct body *); 33 | 34 | struct emailsubdir *new_subdir(char *, struct emailsubdir *, char *, time_t); 35 | 36 | struct printed *markasprinted(struct printed *, int); 37 | int wasprinted(struct printed *, int); 38 | 39 | struct header *addheader(struct header *, struct emailinfo *, int, int); 40 | struct boundary *bound(struct boundary *, char *); 41 | int free_bound(struct boundary *); 42 | struct boundary *multipart(struct boundary *, char *); 43 | int free_multipart(struct boundary *); 44 | bool has_multipart(const struct boundary *, char *); 45 | struct charset_stack *charsets(struct charset_stack *, char *, char *); 46 | struct charset_stack *charsets_head(struct charset_stack *); 47 | int free_charsets(struct charset_stack *); 48 | 49 | void print_list(char *, struct hmlist *); 50 | int inlist(struct hmlist *, char *); 51 | int inlist_pos(struct hmlist *, char *); 52 | int inlist_regex_pos(struct hmlist *, char *); 53 | struct hmlist *add_2_list(struct hmlist *, char *); 54 | struct hmlist *add_list(struct hmlist *, char *); 55 | -------------------------------------------------------------------------------- /src/threadprint.h: -------------------------------------------------------------------------------- 1 | void print_all_threads(FILE *, int, int, struct emailinfo *); 2 | int isreplyto(int, int); 3 | -------------------------------------------------------------------------------- /src/trio/CHANGES: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hypermail-project/hypermail/10c9cbe6e60e77e16e21b870e6c78eb1050f0438/src/trio/CHANGES -------------------------------------------------------------------------------- /src/trio/FILES: -------------------------------------------------------------------------------- 1 | FILES 2 | README 3 | CHANGES 4 | Makefile.in 5 | strio.h 6 | trio.c 7 | trio.h 8 | triodef.h 9 | trionan.c 10 | trionan.h 11 | triop.h 12 | triostr.c 13 | triostr.h 14 | compare.c 15 | regression.c 16 | configure 17 | configure.in 18 | install-sh 19 | autogen.sh 20 | -------------------------------------------------------------------------------- /src/trio/README: -------------------------------------------------------------------------------- 1 | README -- trio 2 | 3 | Trio is a package with portable string functions. Including printf() clones 4 | and others. 5 | 6 | Copyright (C) 1998-2001 by Bjorn Reese and Daniel Stenberg. 7 | 8 | Permission to use, copy, modify, and distribute this software for any 9 | purpose with or without fee is hereby granted, provided that the above 10 | copyright notice and this permission notice appear in all copies. 11 | 12 | THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED 13 | WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF 14 | MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE AUTHORS AND 15 | CONTRIBUTORS ACCEPT NO RESPONSIBILITY IN ANY CONCEIVABLE MANNER. 16 | 17 | Trio is intended to be an integral part of another application, so we 18 | have not done anything to create a proper installation. 19 | 20 | Compile with 'make' (edit the Makefile if you want a release build) 21 | 22 | Test the package with 'make test' 23 | 24 | Install by copying trio.h, triop.h, and libtrio.a (and man/man?/* if 25 | you want documentation) to the appropriate directories. 26 | 27 | Catch some usage examples in example.c 28 | 29 | Send feedback and patches to the mailing list, subscription and other 30 | information is found here: 31 | 32 | http://lists.sourceforge.net/lists/listinfo/ctrio-talk 33 | 34 | Enjoy! 35 | 36 | Trio web page 37 | 38 | http://daniel.haxx.se/trio/ 39 | -------------------------------------------------------------------------------- /src/trio/README.hypermail: -------------------------------------------------------------------------------- 1 | This is the ctrio 1.16 [1] release, stripped of its documentation and with 2 | some patches to fix compilation problems when using -DTRIO_MINIMAL. 3 | 4 | The generation of the libtrio shared library is also disabled as we're 5 | doing a static link. 6 | 7 | See the hypermail-patches.diff file for the exact changes. 8 | 9 | -Jose Kahan 09/10/2018 10 | 11 | [1] https://sourceforge.net/projects/ctrio/ 12 | 13 | -------------------------------------------------------------------------------- /src/trio/autogen.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | autoconf 3 | rm -rf autom4te.cache 4 | -------------------------------------------------------------------------------- /src/trio/compare.c: -------------------------------------------------------------------------------- 1 | #include "trio.h" 2 | 3 | #define compare(format, value) printf("FORMAT: %s\n", format); printf("TRIO: "); trio_printf(format,value); printf("\nLIBC: "); \ 4 | printf(format,value); printf("\n\n"); 5 | 6 | int main() 7 | { 8 | compare("\"%e\"",2.342E+02); 9 | compare("\"%10.4e\"",-2.342E-02); 10 | compare("\"%11.4e\"",-2.342E-02); 11 | compare("\"%12.4e\"",-2.342E-02); 12 | compare("\"%13.4e\"",-2.342E-02); 13 | compare("\"%14.4e\"",-2.342E-02); 14 | compare("\"%15.4e\"",-2.342E-02); 15 | compare("\"%16.4e\"",-2.342E-02); 16 | compare("\"%16.4e\"",-2.342E-22); 17 | compare("\"%G\"",-2.342E-02); 18 | compare("\"%G\"",3.1415e-6); 19 | compare("%016e", 3141.5); 20 | compare("%16e", 3141.5); 21 | compare("%-16e", 3141.5); 22 | compare("%010.3e", 3141.5); 23 | 24 | compare("*%5f*", 3.3); 25 | compare("*%5f*", 3.0); 26 | compare("*%5f*", .999999E-4); 27 | compare("*%5f*", .99E-3); 28 | compare("*%5f*", 3333.0); 29 | 30 | compare("*%5g*", 3.3); 31 | compare("*%5g*", 3.0); 32 | compare("*%5g*", .999999E-4); 33 | compare("*%5g*", .99E-3); 34 | compare("*%5g*", 3333.0); 35 | compare("*%5g*", 0.01); 36 | 37 | compare("*%5.g*", 3.3); 38 | compare("*%5.g*", 3.0); 39 | compare("*%5.g*", .999999E-4); 40 | compare("*%5.g*", 1.0E-4); 41 | compare("*%5.g*", .99E-3); 42 | compare("*%5.g*", 3333.0); 43 | compare("*%5.g*", 0.01); 44 | 45 | compare("*%5.2g*", 3.3); 46 | compare("*%5.2g*", 3.0); 47 | compare("*%5.2g*", .999999E-4); 48 | compare("*%5.2g*", .99E-3); 49 | compare("*%5.2g*", 3333.0); 50 | compare("*%5.2g*", 0.01); 51 | 52 | return 0; 53 | } 54 | -------------------------------------------------------------------------------- /src/trio/configure.in: -------------------------------------------------------------------------------- 1 | dnl 2 | dnl Configuration for trio 3 | dnl 4 | 5 | AC_INIT 6 | AC_CONFIG_SRCDIR([triodef.h]) 7 | AC_PREREQ(2.55) dnl autoconf 2.55 was released in 2002 8 | 9 | AC_PROG_CC 10 | ifdef([AC_PROG_CC_STDC], [AC_PROG_CC_STDC]) 11 | AC_LANG([C]) 12 | 13 | AC_PROG_INSTALL 14 | AC_PROG_RANLIB 15 | 16 | dnl 17 | dnl Alpha floating-point compiler option. 18 | dnl 19 | 20 | AC_MSG_CHECKING(for IEEE compilation options) 21 | AC_CACHE_VAL(ac_cv_ieee_option, [ 22 | AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[ 23 | #if !(defined(__alpha) && (defined(__DECC) || defined(__DECCXX) || (defined(__osf__) && defined(__LANGUAGE_C__))) && (defined(VMS) || defined(__VMS))) 24 | # error "Option needed" 25 | typedef int option_needed[-1]; 26 | #endif 27 | ]])], 28 | ac_cv_ieee_option="/IEEE_MODE=UNDERFLOW_TO_ZERO/FLOAT=IEEE", 29 | AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[ 30 | #if !(defined(__alpha) && (defined(__DECC) || defined(__DECCXX) || (defined(__osf__) && defined(__LANGUAGE_C__) && !defined(__GNUC__))) && !(defined(VMS) || defined(__VMS)) && !defined(_CFE)) 31 | # error "Option needed" 32 | typedef int option_needed[-1]; 33 | #endif 34 | ]])], 35 | ac_cv_ieee_option="-ieee", 36 | AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[[ 37 | #if !(defined(__alpha) && (defined(__GNUC__) && (defined(__osf__) || defined(__linux__)))) 38 | # error "Option needed" 39 | typedef int option_needed[-1]; 40 | #endif 41 | ]])], 42 | ac_cv_ieee_option="-mieee", 43 | ac_cv_ieee_option="none" 44 | ) 45 | ) 46 | ) 47 | ]) 48 | AC_MSG_RESULT($ac_cv_ieee_option) 49 | if test $ac_cv_ieee_option != none; then 50 | CFLAGS="${CFLAGS} ${ac_cv_ieee_option}" 51 | fi 52 | 53 | dnl 54 | dnl Check for sigaction() 55 | dnl 56 | 57 | AC_MSG_CHECKING(for sigaction()) 58 | AC_CACHE_VAL(ac_cv_sigaction, [ 59 | AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ 60 | #include 61 | #if !defined(SA_SIGINFO) 62 | # error "SA_SIGINFO not defined" 63 | #endif 64 | ]],[[ 65 | struct sigaction s; 66 | ]])], 67 | ac_cv_sigaction="true", 68 | ac_cv_sigaction="false" 69 | ) 70 | ]) 71 | AC_MSG_RESULT($ac_cv_sigaction) 72 | if test $ac_cv_sigaction != false; then 73 | CFLAGS="${CFLAGS} -DHAVE_STRUCT_SIGACTION" 74 | fi 75 | 76 | AC_CONFIG_FILES([Makefile]) 77 | AC_OUTPUT 78 | -------------------------------------------------------------------------------- /src/txt2html.h: -------------------------------------------------------------------------------- 1 | 2 | void 3 | txt2html(FILE *, struct emailinfo *, const struct body *, bool, int); 4 | void init_txt2html(void); 5 | void end_txt2html(FILE *fp); 6 | -------------------------------------------------------------------------------- /src/uconvert.h: -------------------------------------------------------------------------------- 1 | #ifndef __UCONVERT_H 2 | #define __UCONVERT_H 3 | 4 | /* 5 | ** This file lists the convertions between a given charset space and the 6 | Unicode one. 7 | */ 8 | 9 | /* JK: Taken from the Amaya source code (Amaya/thotlib/unicode/uconvert.c) */ 10 | 11 | /* Windows Latin 1 Code Page */ 12 | int WIN1252CP [] = { 13 | 0x20AC, 0x0081, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021, 14 | 0x02C6, 0x2030, 0x0160, 0x2039, 0x0152, 0x008D, 0x017D, 0x008F, 15 | 0x0090, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, 16 | 0x02DC, 0x2122, 0x0161, 0x203A, 0x0153, 0x009D, 0x017E, 0x0178, 17 | 0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7, 18 | 0x00A8, 0x00A9, 0x00AA, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF, 19 | 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7, 20 | 0x00B8, 0x00B9, 0x00BA, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00BF, 21 | 0x00C0, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x00C7, 22 | 0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF, 23 | 0x00D0, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x00D7, 24 | 0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x00DD, 0x00DE, 0x00DF, 25 | 0x00E0, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x00E7, 26 | 0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF, 27 | 0x00F0, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x00F7, 28 | 0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x00FD, 0x00FE, 0x00FF 29 | }; 30 | #define WIN1252CP_length sizeof(WIN1252CP) / sizeof(int) 31 | 32 | #endif /* __UCONVERT_H */ 33 | -------------------------------------------------------------------------------- /src/uudecode.h: -------------------------------------------------------------------------------- 1 | /* 2 | ** uudecode.c function 3 | */ 4 | 5 | int uudecode(FILE *, char *, char *, int *, struct Push *); 6 | -------------------------------------------------------------------------------- /tests/README: -------------------------------------------------------------------------------- 1 | Testing Hypermail: 2 | ================== 3 | 4 | This directory is here for you to use in testing hypermail locally. 5 | It is useful for testing new hypermail distributions and features 6 | without impacting your production facilities. 7 | 8 | You will find the following files in this directory: 9 | 10 | test-footer.hyp - HTML footer template file 11 | test-index.hyp - Index pages template file 12 | test-msg.hyp - Message pages template file 13 | test.rc - Test configuration file 14 | testhm - Script to run test command lines 15 | diff_hypermail_archives.pl - Script to show diffs between two archives 16 | 17 | To test hypermail: 18 | 19 | - Copy a mailbox you have to a local file named "testmail" 20 | 21 | - Edit the test-footer.hyp, test-index.hyp and test-msg.hyp 22 | template configuration files as appropritate for you needs. 23 | 24 | - Edit the test.rc and assure it is configured as you wish. 25 | 26 | - Verify that testhm is running the proper command line for 27 | the testing you are doing. 28 | 29 | - Type "testhm" 30 | 31 | This will generate an archive under a newly created "testdir/" 32 | directory. Check it out with your favorite browser. 33 | 34 | When you are done testing, 35 | 36 | - remove the testdir directory, 37 | 38 | - remove the testmail file. 39 | 40 | 41 | -------------------------------------------------------------------------------- /tests/stdintest.pl: -------------------------------------------------------------------------------- 1 | #!/usr/local/bin/perl 2 | 3 | require POSIX; 4 | use POSIX; 5 | 6 | $sec = time(); 7 | 8 | print `rm -f testdir/*`; 9 | $hypermail="../src/hypermail -i -1 -u -d testdir -l foo "; 10 | 11 | for(1 .. 15) { 12 | 13 | @now=localtime($sec); 14 | $nowfrom = strftime("%a %b %d %H:%M:%S %Y", @now); 15 | $nowdate = strftime("%a, %d %b %Y %H:%M:%S +0100 (%Z)", @now); 16 | 17 | open(HMAIL, "|$hypermail") || 18 | die "can't run it"; 19 | 20 | print HMAIL "From anon0\@anon.net $nowfrom\n", 21 | "Date: $nowdate\n", 22 | "Message-ID: \n", 23 | "Subject: What about a message number $_\n", 24 | "From: $_ Loser \n", 25 | "To: $_ Anonymous \n", 26 | "\n", 27 | "DUMMY MESSAGE BODY $_\n"; 28 | 29 | close(HMAIL); 30 | 31 | $sec += 1; 32 | } 33 | 34 | -------------------------------------------------------------------------------- /tests/test-footer.hyp: -------------------------------------------------------------------------------- 1 |

2 | [ 3 | Usenet Hypertext FAQ Archive | 4 | Search Mail Archive | 5 | Authors | 6 | Usenet 7 | ]
[ 8 | 1993 | 9 | 1994 | 10 | 1995 | 11 | 1996 | 12 | 1997 13 | ]
14 |

15 |

---------

16 |
17 | 18 | This archive was generated by %u on %g 19 |

%m

20 | 21 |

© Copyright The Internet FAQ Consortium, 1997 22 |
All rights reserved

23 |
24 |
25 |
26 | 27 | 28 | -------------------------------------------------------------------------------- /tests/test-index.hyp: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | %l %s 5 | %A 6 | %S 7 | 8 | 9 | 10 |

%l
%s

11 |

---------

12 | -------------------------------------------------------------------------------- /tests/test-msg.hyp: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | %l: %s 5 | %A 6 | %S 7 | 8 | 9 | 10 |

%s

11 |

---------

12 | --------------------------------------------------------------------------------