├── .editorconfig ├── .fossil-settings ├── binary-glob ├── clean-glob ├── crlf-glob ├── encoding-glob └── ignore-glob ├── .project ├── .settings ├── org.eclipse.core.resources.prefs └── org.eclipse.core.runtime.prefs ├── BUILD.txt ├── COPYRIGHT-BSD2.txt ├── Dockerfile ├── Makefile.classic ├── Makefile.in ├── Makefile.osx-jaguar ├── README.md ├── VERSION ├── auto.def ├── autosetup ├── LICENSE ├── README.autosetup ├── autosetup ├── autosetup-config.guess ├── autosetup-config.sub ├── autosetup-find-tclsh ├── autosetup-test-tclsh ├── cc-db.tcl ├── cc-lib.tcl ├── cc-shared.tcl ├── cc.tcl ├── default.auto ├── jimsh0.c ├── local.tcl ├── pkg-config.tcl ├── system.tcl ├── tmake.auto └── tmake.tcl ├── compat ├── tcl-8.6 │ └── generic │ │ ├── tcl.h │ │ ├── tclDecls.h │ │ └── tclPlatDecls.h └── zlib │ ├── CMakeLists.txt │ ├── ChangeLog │ ├── FAQ │ ├── INDEX │ ├── LICENSE │ ├── Makefile │ ├── Makefile.in │ ├── README │ ├── adler32.c │ ├── amiga │ ├── Makefile.pup │ └── Makefile.sas │ ├── compress.c │ ├── configure │ ├── contrib │ ├── README.contrib │ ├── blast │ │ ├── Makefile │ │ ├── README │ │ ├── blast.c │ │ ├── blast.h │ │ ├── test.pk │ │ └── test.txt │ ├── delphi │ │ ├── ZLib.pas │ │ ├── ZLibConst.pas │ │ ├── readme.txt │ │ └── zlibd32.mak │ ├── dotzlib │ │ ├── DotZLib.build │ │ ├── DotZLib.chm │ │ ├── DotZLib.sln │ │ ├── DotZLib │ │ │ ├── AssemblyInfo.cs │ │ │ ├── ChecksumImpl.cs │ │ │ ├── CircularBuffer.cs │ │ │ ├── CodecBase.cs │ │ │ ├── Deflater.cs │ │ │ ├── DotZLib.cs │ │ │ ├── DotZLib.csproj │ │ │ ├── GZipStream.cs │ │ │ ├── Inflater.cs │ │ │ └── UnitTests.cs │ │ ├── LICENSE_1_0.txt │ │ └── readme.txt │ ├── gcc_gvmat64 │ │ └── gvmat64.S │ ├── infback9 │ │ ├── README │ │ ├── infback9.c │ │ ├── infback9.h │ │ ├── inffix9.h │ │ ├── inflate9.h │ │ ├── inftree9.c │ │ └── inftree9.h │ ├── iostream │ │ ├── test.cpp │ │ ├── zfstream.cpp │ │ └── zfstream.h │ ├── iostream2 │ │ ├── zstream.h │ │ └── zstream_test.cpp │ ├── iostream3 │ │ ├── README │ │ ├── TODO │ │ ├── test.cc │ │ ├── zfstream.cc │ │ └── zfstream.h │ ├── minizip │ │ ├── Makefile │ │ ├── Makefile.am │ │ ├── MiniZip64_Changes.txt │ │ ├── MiniZip64_info.txt │ │ ├── configure.ac │ │ ├── crypt.h │ │ ├── ioapi.c │ │ ├── ioapi.h │ │ ├── iowin32.c │ │ ├── iowin32.h │ │ ├── make_vms.com │ │ ├── miniunz.c │ │ ├── miniunzip.1 │ │ ├── minizip.1 │ │ ├── minizip.c │ │ ├── minizip.pc.in │ │ ├── mztools.c │ │ ├── mztools.h │ │ ├── unzip.c │ │ ├── unzip.h │ │ ├── zip.c │ │ └── zip.h │ ├── pascal │ │ ├── example.pas │ │ ├── readme.txt │ │ ├── zlibd32.mak │ │ └── zlibpas.pas │ ├── puff │ │ ├── Makefile │ │ ├── README │ │ ├── puff.c │ │ ├── puff.h │ │ ├── pufftest.c │ │ └── zeros.raw │ ├── testzlib │ │ ├── testzlib.c │ │ └── testzlib.txt │ ├── untgz │ │ ├── Makefile │ │ ├── Makefile.msc │ │ └── untgz.c │ └── vstudio │ │ ├── readme.txt │ │ ├── vc10 │ │ ├── miniunz.vcxproj │ │ ├── miniunz.vcxproj.filters │ │ ├── minizip.vcxproj │ │ ├── minizip.vcxproj.filters │ │ ├── testzlib.vcxproj │ │ ├── testzlib.vcxproj.filters │ │ ├── testzlibdll.vcxproj │ │ ├── testzlibdll.vcxproj.filters │ │ ├── zlib.rc │ │ ├── zlibstat.vcxproj │ │ ├── zlibstat.vcxproj.filters │ │ ├── zlibvc.def │ │ ├── zlibvc.sln │ │ ├── zlibvc.vcxproj │ │ └── zlibvc.vcxproj.filters │ │ ├── vc11 │ │ ├── miniunz.vcxproj │ │ ├── minizip.vcxproj │ │ ├── testzlib.vcxproj │ │ ├── testzlibdll.vcxproj │ │ ├── zlib.rc │ │ ├── zlibstat.vcxproj │ │ ├── zlibvc.def │ │ ├── zlibvc.sln │ │ └── zlibvc.vcxproj │ │ ├── vc12 │ │ ├── miniunz.vcxproj │ │ ├── minizip.vcxproj │ │ ├── testzlib.vcxproj │ │ ├── testzlibdll.vcxproj │ │ ├── zlib.rc │ │ ├── zlibstat.vcxproj │ │ ├── zlibvc.def │ │ ├── zlibvc.sln │ │ └── zlibvc.vcxproj │ │ ├── vc14 │ │ ├── miniunz.vcxproj │ │ ├── minizip.vcxproj │ │ ├── testzlib.vcxproj │ │ ├── testzlibdll.vcxproj │ │ ├── zlib.rc │ │ ├── zlibstat.vcxproj │ │ ├── zlibvc.def │ │ ├── zlibvc.sln │ │ └── zlibvc.vcxproj │ │ └── vc9 │ │ ├── miniunz.vcproj │ │ ├── minizip.vcproj │ │ ├── testzlib.vcproj │ │ ├── testzlibdll.vcproj │ │ ├── zlib.rc │ │ ├── zlibstat.vcproj │ │ ├── zlibvc.def │ │ ├── zlibvc.sln │ │ └── zlibvc.vcproj │ ├── crc32.c │ ├── crc32.h │ ├── deflate.c │ ├── deflate.h │ ├── examples │ ├── README.examples │ ├── enough.c │ ├── fitblk.c │ ├── gun.c │ ├── gzappend.c │ ├── gzjoin.c │ ├── gzlog.c │ ├── gzlog.h │ ├── gznorm.c │ ├── zlib_how.html │ ├── zpipe.c │ ├── zran.c │ └── zran.h │ ├── gzclose.c │ ├── gzguts.h │ ├── gzlib.c │ ├── gzread.c │ ├── gzwrite.c │ ├── infback.c │ ├── inffast.c │ ├── inffast.h │ ├── inffixed.h │ ├── inflate.c │ ├── inflate.h │ ├── inftrees.c │ ├── inftrees.h │ ├── make_vms.com │ ├── msdos │ ├── Makefile.bor │ ├── Makefile.dj2 │ ├── Makefile.emx │ ├── Makefile.msc │ └── Makefile.tc │ ├── nintendods │ ├── Makefile │ └── README │ ├── old │ ├── Makefile.emx │ ├── Makefile.riscos │ ├── README │ ├── descrip.mms │ ├── os2 │ │ ├── Makefile.os2 │ │ └── zlib.def │ └── visual-basic.txt │ ├── os400 │ ├── README400 │ ├── bndsrc │ ├── make.sh │ └── zlib.inc │ ├── qnx │ └── package.qpg │ ├── test │ ├── example.c │ ├── infcover.c │ └── minigzip.c │ ├── treebuild.xml │ ├── trees.c │ ├── trees.h │ ├── uncompr.c │ ├── watcom │ ├── watcom_f.mak │ └── watcom_l.mak │ ├── win32 │ ├── DLL_FAQ.txt │ ├── Makefile.bor │ ├── Makefile.gcc │ ├── Makefile.msc │ ├── README-WIN32.txt │ ├── VisualC.txt │ ├── zlib.def │ └── zlib1.rc │ ├── zconf.h │ ├── zconf.h.cmakein │ ├── zconf.h.in │ ├── zlib.3 │ ├── zlib.3.pdf │ ├── zlib.h │ ├── zlib.map │ ├── zlib.pc.cmakein │ ├── zlib.pc.in │ ├── zutil.c │ └── zutil.h ├── configure ├── debian └── makedeb.sh ├── extsrc ├── cson_amalgamation.c ├── cson_amalgamation.h ├── linenoise-win32.c ├── linenoise.c ├── linenoise.h ├── pikchr-worker.js ├── pikchr.c ├── pikchr.js ├── pikchr.wasm ├── shell.c ├── sqlite3.c └── sqlite3.h ├── fossil.1 ├── manifest ├── manifest.uuid ├── setup ├── fossil.iss └── fossil.nsi ├── skins ├── README.md ├── ardoise │ ├── README.md │ ├── css.txt │ ├── details.txt │ ├── footer.txt │ ├── header.txt │ └── images │ │ ├── active.svg │ │ ├── addindent.svg │ │ ├── addindent_h.svg │ │ ├── blist.svg │ │ ├── blist_h.svg │ │ ├── bold.svg │ │ ├── bold_h.svg │ │ ├── calign.svg │ │ ├── calign_h.svg │ │ ├── clrfmt.svg │ │ ├── clrfmt_h.svg │ │ ├── delindent.svg │ │ ├── delindent_h.svg │ │ ├── dir.svg │ │ ├── file.svg │ │ ├── italic.svg │ │ ├── italic_h.svg │ │ ├── lalign.svg │ │ ├── lalign_h.svg │ │ ├── link.svg │ │ ├── link_h.svg │ │ ├── nlist.svg │ │ ├── nlist_h.svg │ │ ├── quote.svg │ │ ├── quote_h.svg │ │ ├── ralign.svg │ │ ├── ralign_h.svg │ │ ├── redo.svg │ │ ├── redo_h.svg │ │ ├── underline.svg │ │ ├── underline_h.svg │ │ ├── undo.svg │ │ └── undo_h.svg ├── black_and_white │ ├── css.txt │ ├── details.txt │ ├── footer.txt │ └── header.txt ├── blitz │ ├── README.md │ ├── arrow_project.png │ ├── css.txt │ ├── details.txt │ ├── dir.png │ ├── file.png │ ├── footer.txt │ ├── fossil_100.png │ ├── fossil_80_reversed_darkcyan.png │ ├── fossil_80_reversed_darkcyan_text.png │ ├── header.txt │ ├── rss_20.png │ └── ticket.txt ├── darkmode │ ├── css.txt │ ├── details.txt │ ├── footer.txt │ └── header.txt ├── default │ ├── README.md │ ├── css.txt │ ├── details.txt │ ├── footer.txt │ └── header.txt ├── eagle │ ├── README.md │ ├── css.txt │ ├── details.txt │ ├── footer.txt │ └── header.txt ├── etienne │ ├── README.md │ ├── css.txt │ ├── details.txt │ ├── footer.txt │ └── header.txt ├── khaki │ ├── css.txt │ ├── details.txt │ ├── footer.txt │ └── header.txt ├── original │ ├── css.txt │ ├── details.txt │ ├── footer.txt │ └── header.txt ├── plain_gray │ ├── css.txt │ ├── details.txt │ ├── footer.txt │ └── header.txt └── xekri │ ├── README.md │ ├── css.txt │ ├── details.txt │ ├── footer.txt │ └── header.txt ├── src ├── Makefile ├── accordion.js ├── add.c ├── ajax.c ├── alerts.c ├── alerts │ ├── bflat2.wav │ ├── bflat3.wav │ ├── bloop.wav │ ├── mkwav.c │ └── plunk.wav ├── allrepo.c ├── attach.c ├── backlink.c ├── backoffice.c ├── bag.c ├── bisect.c ├── blob.c ├── branch.c ├── browse.c ├── builtin.c ├── bundle.c ├── cache.c ├── capabilities.c ├── captcha.c ├── cgi.c ├── chat.c ├── checkin.c ├── checkout.c ├── ci_edit.js ├── clearsign.c ├── clone.c ├── color.c ├── comformat.c ├── config.h ├── configure.c ├── content.c ├── cookies.c ├── copybtn.js ├── cygsup.h ├── db.c ├── default.css ├── delta.c ├── deltacmd.c ├── deltafunc.c ├── descendants.c ├── diff.c ├── diff.js ├── diff.tcl ├── diffcmd.c ├── dispatch.c ├── doc.c ├── encode.c ├── etag.c ├── event.c ├── export.c ├── extcgi.c ├── file.c ├── fileedit.c ├── finfo.c ├── foci.c ├── forum.c ├── forum.js ├── fossil.bootstrap.js ├── fossil.confirmer.js ├── fossil.copybutton.js ├── fossil.diff.js ├── fossil.dom.js ├── fossil.fetch.js ├── fossil.numbered-lines.js ├── fossil.page.brlist.js ├── fossil.page.chat.js ├── fossil.page.fileedit.js ├── fossil.page.forumpost.js ├── fossil.page.pikchrshow.js ├── fossil.page.pikchrshowasm.js ├── fossil.page.whistory.js ├── fossil.page.wikiedit.js ├── fossil.pikchr.js ├── fossil.popupwidget.js ├── fossil.storage.js ├── fossil.tabs.js ├── fossil.wikiedit-wysiwyg.js ├── fshell.c ├── fusefs.c ├── fuzz.c ├── glob.c ├── graph.c ├── graph.js ├── gzip.c ├── hbmenu.js ├── hname.c ├── hook.c ├── href.js ├── http.c ├── http_socket.c ├── http_ssl.c ├── http_transport.c ├── import.c ├── info.c ├── interwiki.c ├── json.c ├── json_artifact.c ├── json_branch.c ├── json_config.c ├── json_detail.h ├── json_diff.c ├── json_dir.c ├── json_finfo.c ├── json_login.c ├── json_query.c ├── json_report.c ├── json_status.c ├── json_tag.c ├── json_timeline.c ├── json_user.c ├── json_wiki.c ├── leaf.c ├── loadctrl.c ├── login.c ├── login.js ├── lookslike.c ├── main.c ├── main.mk ├── manifest.c ├── markdown.c ├── markdown.md ├── markdown_html.c ├── match.c ├── md5.c ├── menu.js ├── merge.c ├── merge.tcl ├── merge3.c ├── moderate.c ├── name.c ├── patch.c ├── path.c ├── piechart.c ├── pikchrshow.c ├── pivot.c ├── popen.c ├── pqueue.c ├── printf.c ├── publish.c ├── purge.c ├── rebuild.c ├── regexp.c ├── repolist.c ├── report.c ├── rss.c ├── schema.c ├── scroll.js ├── search.c ├── security_audit.c ├── setup.c ├── setupuser.c ├── sha1.c ├── sha1hard.c ├── sha3.c ├── shun.c ├── sitemap.c ├── skin.js ├── skins.c ├── smtp.c ├── sorttable.js ├── sounds │ ├── 0.wav │ ├── 1.wav │ ├── 2.wav │ ├── 3.wav │ ├── 4.wav │ ├── 5.wav │ ├── 6.wav │ ├── 7.wav │ ├── 8.wav │ ├── 9.wav │ ├── README.md │ ├── a.wav │ ├── b.wav │ ├── c.wav │ ├── d.wav │ ├── e.wav │ └── f.wav ├── sqlcmd.c ├── stash.c ├── stat.c ├── statrep.c ├── style.admin_log.css ├── style.c ├── style.chat.css ├── style.fileedit.css ├── style.pikchrshow.css ├── style.uvlist.css ├── style.wikiedit.css ├── sync.c ├── tag.c ├── tar.c ├── terminal.c ├── th.c ├── th.h ├── th_lang.c ├── th_main.c ├── th_tcl.c ├── timeline.c ├── tkt.c ├── tktsetup.c ├── tree.js ├── undo.c ├── unicode.c ├── unversioned.c ├── update.c ├── url.c ├── user.c ├── useredit.js ├── utf8.c ├── util.c ├── verify.c ├── vfile.c ├── wiki.c ├── wiki.wiki ├── wikiformat.c ├── winfile.c ├── winhttp.c ├── xfer.c ├── xfersetup.c └── zip.c ├── test ├── Greek-Lipsum-1.txt ├── Greek-Lipsum-2.txt ├── amend.test ├── clean.test ├── cmdline.test ├── commit-warning.test ├── contains-selector.test ├── csp1.html ├── delta1.test ├── diff-test-1.wiki ├── diff.test ├── fake-editor.tcl ├── file1.test ├── fileStat.th1 ├── fileage-test-1.wiki ├── glob.test ├── graph-test-1.wiki ├── graph-test-2.md ├── json.test ├── many-www.tcl ├── markdown-test1.md ├── markdown-test2.md ├── markdown-test3.md ├── merge1.test ├── merge2.test ├── merge3.test ├── merge4.test ├── merge5.test ├── merge5_repo.sql ├── merge6.test ├── merge_exe.test ├── merge_renames.test ├── merge_renames_2.test ├── merge_warn.test ├── mv-rm.test ├── release-checklist.wiki ├── reserved-names.test ├── revert.test ├── rewrite-test-output.tcl ├── set-manifest.test ├── settings-repo.test ├── settings.test ├── stash.test ├── subdir with spaces │ └── filename with spaces.txt ├── subdir-b │ └── readme.txt ├── subdir │ ├── README.html │ └── one │ │ ├── readme.wiki │ │ └── two │ │ └── three │ │ └── four │ │ └── five │ │ └── six │ │ └── readme.txt ├── symlinks.test ├── test-page++.wiki ├── tester.tcl ├── th1-docs-input.txt ├── th1-docs.test ├── th1-hooks-input.txt ├── th1-hooks.test ├── th1-repo.test ├── th1-taint.test ├── th1-tcl.test ├── th1-tcl1.txt ├── th1-tcl2.txt ├── th1-tcl3.txt ├── th1-tcl4.txt ├── th1-tcl5.txt ├── th1-tcl6.txt ├── th1-tcl7.txt ├── th1-tcl8.txt ├── th1-tcl9.txt ├── th1.test ├── unversioned.test ├── update-test-1.sh ├── update-test-2.sh ├── update.test ├── utf.test ├── utf16be.txt ├── utf16le.txt ├── utf8-comment.txt ├── valgrind-www.tcl └── wiki.test ├── tools ├── co-rsync.tcl ├── codecheck1.c ├── cvs2fossil │ ├── changeset │ ├── cvs2fossil │ ├── doc │ │ ├── LICENSE │ │ └── README │ ├── filerevtree │ ├── getmemoryseries.tcl │ ├── lib │ │ ├── c2f_blobstore.tcl │ │ ├── c2f_cyclebreaker.tcl │ │ ├── c2f_file.tcl │ │ ├── c2f_fossil.tcl │ │ ├── c2f_frev.tcl │ │ ├── c2f_fsym.tcl │ │ ├── c2f_ftrunk.tcl │ │ ├── c2f_gtcore.tcl │ │ ├── c2f_integrity.tcl │ │ ├── c2f_option.tcl │ │ ├── c2f_pass.tcl │ │ ├── c2f_patopsort.tcl │ │ ├── c2f_pbreakacycle.tcl │ │ ├── c2f_pbreakrcycle.tcl │ │ ├── c2f_pbreakscycle.tcl │ │ ├── c2f_pcollar.tcl │ │ ├── c2f_pcollrev.tcl │ │ ├── c2f_pcollsym.tcl │ │ ├── c2f_pcsetdeps.tcl │ │ ├── c2f_pfiltersym.tcl │ │ ├── c2f_pimportcsets.tcl │ │ ├── c2f_pimportfiles.tcl │ │ ├── c2f_pimportfinal.tcl │ │ ├── c2f_pinitcsets.tcl │ │ ├── c2f_prev.tcl │ │ ├── c2f_prevlink.tcl │ │ ├── c2f_project.tcl │ │ ├── c2f_prtopsort.tcl │ │ ├── c2f_psym.tcl │ │ ├── c2f_ptrunk.tcl │ │ ├── c2f_repository.tcl │ │ ├── c2f_ristate.tcl │ │ ├── c2f_state.tcl │ │ ├── c2f_wsstate.tcl │ │ ├── cvs2fossil.tcl │ │ ├── dot.tcl │ │ ├── id.tcl │ │ ├── log.tcl │ │ ├── mem.tcl │ │ ├── misc.tcl │ │ ├── pkgIndex.tcl │ │ ├── rcsparser.tcl │ │ └── trouble.tcl │ ├── lodtree │ ├── showg │ └── symboltree ├── decode-email.c ├── email-monitor.tcl ├── email-sender.tcl ├── emcc.sh.in ├── encode_math.sh ├── fake-smtpd.tcl ├── find-fossil-cgis.tcl ├── fossil-autocomplete.bash ├── fossil-autocomplete.zsh ├── fossil-diff-log ├── fossil-stress.tcl ├── fossilwiki ├── fslsrv ├── makeheaders.c ├── makeheaders.html ├── makemake.tcl ├── man_page_command_list.tcl ├── mkbuiltin.c ├── mkindex.c ├── mkversion.c ├── randomize-js-names.tcl ├── skintxt2config.c ├── sqlcompattest.c └── translate.c ├── win ├── Makefile.dmc ├── Makefile.mingw ├── Makefile.mingw.mistachkin ├── Makefile.msc ├── build32.bat ├── build64.bat ├── buildmsvc.bat ├── fossil.exe.manifest ├── fossil.ico ├── fossil.rc └── include │ ├── dirent.h │ └── unistd.h └── www ├── aboutcgi.wiki ├── aboutdownload.wiki ├── adding_code.wiki ├── alerts.md ├── antibot.wiki ├── apple-touch-icon.png ├── background.jpg ├── backoffice.md ├── backup.md ├── blame.wiki ├── blockchain.md ├── branching.wiki ├── bugtheory.wiki ├── build-icons ├── linux.gif ├── linux64.gif ├── mac.gif ├── openbsd.gif ├── src.gif └── win32.gif ├── build.wiki ├── cap-theorem.md ├── caps ├── admin-v-setup.md ├── impl.md ├── index.md ├── login-groups.md └── ref.html ├── cgi.wiki ├── changes.wiki ├── chat.md ├── checkin.wiki ├── checkin_names.wiki ├── childprojects.wiki ├── chroot.md ├── ckout-workflows.md ├── co-vs-up.md ├── collisions.ipynb ├── colordiff.md ├── concepts.wiki ├── contact.md ├── containers.md ├── contribute.wiki ├── copyright-release.html ├── copyright-release.pdf ├── css-tricks.md ├── css ├── diff.md └── index.md ├── custom_ticket.wiki ├── customgraph.md ├── customskin.md ├── defcsp.md ├── delta-manifests.md ├── delta_encoder_algorithm.wiki ├── delta_format.wiki ├── embeddeddoc.wiki ├── encode1.gif ├── encode2.gif ├── encode3.gif ├── encode4.gif ├── encode5.gif ├── encode6.gif ├── encode7.gif ├── encode8.gif ├── encode9.gif ├── encryptedrepos.wiki ├── env-opts.md ├── event.wiki ├── faq.tcl ├── faq.wiki ├── fileedit-page.md ├── fileformat.wiki ├── fiveminutes.wiki ├── forum.wiki ├── foss-cklist.wiki ├── fossil-from-msvc.wiki ├── fossil-is-not-relational.md ├── fossil-v-git.wiki ├── fossil.eps ├── fossil.gif ├── fossil2.eps ├── fossil2.gif ├── fossil3.gif ├── fossil_logo_small.gif ├── fossil_logo_small2.gif ├── fossil_logo_small3.gif ├── fossil_prompt.sh ├── fossil_prompt.wiki ├── gitusers.md ├── globs.md ├── glossary.md ├── grep.md ├── gsoc-ideas.md ├── hacker-howto.wiki ├── hashes.md ├── hashpolicy.wiki ├── hints.wiki ├── history.md ├── hooks.md ├── image-format-vs-repo-size.ipynb ├── image-format-vs-repo-size.md ├── image-format-vs-repo-size.svg ├── index.wiki ├── inout.wiki ├── interwiki.md ├── javascript.md ├── json-api ├── _template.md ├── api-artifact.md ├── api-auth.md ├── api-branch.md ├── api-checkout.md ├── api-config.md ├── api-diff.md ├── api-dir.md ├── api-finfo.md ├── api-misc.md ├── api-query.md ├── api-settings.md ├── api-stat.md ├── api-tag.md ├── api-ticket.md ├── api-timeline.md ├── api-user.md ├── api-version.md ├── api-wiki.md ├── conventions.md ├── hacking.md ├── index.md ├── intro.md └── tips.md ├── loadmgmt.md ├── makefile.wiki ├── mdtest └── test1.md ├── mirrorlimitations.md ├── mirrortogithub.md ├── mkindex.tcl ├── newrepo.wiki ├── password.wiki ├── patchcmd.md ├── permutedindex.html ├── pikchr.md ├── pop.wiki ├── private.wiki ├── qandc.wiki ├── quickstart.wiki ├── quotes.wiki ├── rebaseharm.md ├── relatedwork.md ├── reviews.wiki ├── scgi.wiki ├── selfcheck.wiki ├── selfhost.wiki ├── server ├── any │ ├── althttpd.md │ ├── cgi.md │ ├── http-over-ssh.md │ ├── index.md │ ├── inetd.md │ ├── none.md │ ├── scgi.md │ ├── stunnel.md │ └── xinetd.md ├── debian │ ├── index.md │ ├── nginx.md │ └── service.md ├── index.html ├── macos │ ├── index.md │ └── service.md ├── openbsd │ ├── fastcgi.md │ ├── index.md │ └── service.wiki ├── whyuseaserver.wiki └── windows │ ├── cgi-bin-perm.png │ ├── cgi-exec-perm.png │ ├── cgi-install-iis.png │ ├── cgi-script-map.png │ ├── cgi.md │ ├── iis.md │ ├── index.md │ ├── none.md │ ├── service.md │ └── stunnel.md ├── serverext.wiki ├── settings.wiki ├── shunning.wiki ├── signing.md ├── ssl-server.md ├── ssl.wiki ├── stats.wiki ├── style.wiki ├── sync.wiki ├── tech_overview.wiki ├── th1-hooks.md ├── th1.md ├── theory1.wiki ├── tickets.wiki ├── title-test.md ├── title-test.wiki ├── tls-nginx.md ├── uitest.html ├── unvers.wiki ├── userlinks.wiki ├── webpage-ex.md ├── webui.wiki ├── whyallinone.md ├── whyusefossil.wiki ├── wikitheory.wiki ├── wsl_caveats.wiki └── xkcd-git.gif /.editorconfig: -------------------------------------------------------------------------------- 1 | # EditorConfig (https://editorconfig.com) Configuration for Fossil 2 | # 3 | # Following https://fossil-scm.org/fossil/doc/trunk/www/style.wiki 4 | # 5 | 6 | # Defaults for all files 7 | [*] 8 | end_of_line = lf 9 | insert_final_newline = true 10 | indent_style = space 11 | indent_size = 2 12 | 13 | [{Makefile,Makefile.*,*.mk}] 14 | indent_style = tab 15 | -------------------------------------------------------------------------------- /.fossil-settings/binary-glob: -------------------------------------------------------------------------------- 1 | *.gif 2 | *.ico 3 | *.jpg 4 | *.odp 5 | *.dia 6 | *.pdf 7 | *.png 8 | *.wav 9 | compat/zlib/contrib/blast/test.pk 10 | compat/zlib/contrib/dotzlib/DotZLib.chm 11 | compat/zlib/contrib/puff/zeros.raw 12 | compat/zlib/zlib.3.pdf 13 | extsrc/pikchr.wasm 14 | -------------------------------------------------------------------------------- /.fossil-settings/clean-glob: -------------------------------------------------------------------------------- 1 | *.a 2 | *.lib 3 | *.manifest 4 | *.o 5 | *.obj 6 | *.pdb 7 | *.res 8 | Makefile 9 | autosetup/jimsh0 10 | autosetup/jimsh0.exe 11 | bld/* 12 | msvcbld/* 13 | wbld/* 14 | win/*.c 15 | win/*.h 16 | win/*.exe 17 | win/headers 18 | win/linkopts 19 | autoconfig.h 20 | config.log 21 | -------------------------------------------------------------------------------- /.fossil-settings/crlf-glob: -------------------------------------------------------------------------------- 1 | compat/zlib/* 2 | setup/fossil.iss 3 | test/th1-docs-input.txt 4 | test/th1-hooks-input.txt 5 | win/build32.bat 6 | win/build64.bat 7 | win/buildmsvc.bat 8 | -------------------------------------------------------------------------------- /.fossil-settings/encoding-glob: -------------------------------------------------------------------------------- 1 | compat/zlib/contrib/dotzlib/DotZLib/*.cs 2 | test/utf16be.txt 3 | test/utf16le.txt 4 | win/fossil.rc -------------------------------------------------------------------------------- /.fossil-settings/ignore-glob: -------------------------------------------------------------------------------- 1 | compat/openssl* 2 | compat/tcl* 3 | compat/zlib/contrib/ada/* 4 | compat/zlib/doc/* 5 | fossil 6 | fossil.exe 7 | win/fossil.exe 8 | *shell-see.* 9 | *sqlite3-see.* 10 | bld 11 | -------------------------------------------------------------------------------- /.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | fossil 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /.settings/org.eclipse.core.resources.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | encoding/=UTF-8 3 | -------------------------------------------------------------------------------- /.settings/org.eclipse.core.runtime.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | line.separator=\n 3 | -------------------------------------------------------------------------------- /COPYRIGHT-BSD2.txt: -------------------------------------------------------------------------------- 1 | Copyright 2007 D. Richard Hipp. All rights reserved. 2 | 3 | Redistribution and use in source and binary forms, with or 4 | without modification, are permitted provided that the 5 | following conditions are met: 6 | 7 | 1. Redistributions of source code must retain the above 8 | copyright notice, this list of conditions and the 9 | following disclaimer. 10 | 11 | 2. Redistributions in binary form must reproduce the above 12 | copyright notice, this list of conditions and the 13 | following disclaimer in the documentation and/or other 14 | materials provided with the distribution. 15 | 16 | THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS 17 | OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 18 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 19 | ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE 20 | LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 21 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 22 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR 23 | BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 24 | WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE 25 | OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 26 | EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | 28 | The views and conclusions contained in the software and documentation 29 | are those of the authors and contributors and should not be interpreted 30 | as representing official policies, either expressed or implied, of anybody 31 | else. 32 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # About Fossil 2 | 3 | Fossil is a distributed version control system that has been widely 4 | used since 2007. Fossil was originally designed to support the 5 | [SQLite](https://sqlite.org) project but has been adopted by many other 6 | projects as well. 7 | 8 | Fossil is self-hosting at . 9 | 10 | If you are reading this on GitHub, then you are looking at a Git mirror 11 | of the self-hosting Fossil repository. The purpose of that mirror is to 12 | test and exercise Fossil's ability to export a Git mirror. Nobody much 13 | uses the GitHub mirror, except to verify that the mirror logic works. If 14 | you want to know more about Fossil, visit the official self-hosting site 15 | linked above. 16 | -------------------------------------------------------------------------------- /VERSION: -------------------------------------------------------------------------------- 1 | 2.27 2 | -------------------------------------------------------------------------------- /autosetup/LICENSE: -------------------------------------------------------------------------------- 1 | Unless explicitly stated, all files which form part of autosetup 2 | are released under the following license: 3 | 4 | --------------------------------------------------------------------- 5 | autosetup - A build environment "autoconfigurator" 6 | 7 | Copyright (c) 2010-2011, WorkWare Systems 8 | 9 | Redistribution and use in source and binary forms, with or without 10 | modification, are permitted provided that the following conditions 11 | are met: 12 | 13 | 1. Redistributions of source code must retain the above copyright 14 | notice, this list of conditions and the following disclaimer. 15 | 2. Redistributions in binary form must reproduce the above 16 | copyright notice, this list of conditions and the following 17 | disclaimer in the documentation and/or other materials 18 | provided with the distribution. 19 | 20 | THIS SOFTWARE IS PROVIDED BY THE WORKWARE SYSTEMS ``AS IS'' AND ANY 21 | EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 22 | THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A 23 | PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL WORKWARE 24 | SYSTEMS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 25 | INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 26 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 27 | OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 28 | HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 29 | STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 30 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 31 | ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 32 | 33 | The views and conclusions contained in the software and documentation 34 | are those of the authors and should not be interpreted as representing 35 | official policies, either expressed or implied, of WorkWare Systems. 36 | -------------------------------------------------------------------------------- /autosetup/README.autosetup: -------------------------------------------------------------------------------- 1 | README.autosetup created by autosetup v0.7.2 2 | 3 | This is the autosetup directory for a local install of autosetup. 4 | It contains autosetup, support files and loadable modules. 5 | 6 | *.tcl files in this directory are optional modules which 7 | can be loaded with the 'use' directive. 8 | 9 | *.auto files in this directory are auto-loaded. 10 | 11 | For more information, see https://msteveb.github.io/autosetup/ 12 | -------------------------------------------------------------------------------- /autosetup/autosetup-find-tclsh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # Looks for a suitable tclsh or jimsh in the PATH 3 | # If not found, builds a bootstrap jimsh in current dir from source 4 | # Prefer $autosetup_tclsh if is set in the environment (unless ./jimsh0 works) 5 | # If an argument is given, use that as the test instead of autosetup-test-tclsh 6 | d="`dirname "$0"`" 7 | for tclsh in ./jimsh0 $autosetup_tclsh jimsh tclsh tclsh8.5 tclsh8.6 tclsh8.7; do 8 | { $tclsh "$d/${1-autosetup-test-tclsh}"; } 2>/dev/null && exit 0 9 | done 10 | echo 1>&2 "No installed jimsh or tclsh, building local bootstrap jimsh0" 11 | for cc in ${CC_FOR_BUILD:-cc} gcc; do 12 | { $cc -o jimsh0 "$d/jimsh0.c"; } >/dev/null 2>&1 || continue 13 | ./jimsh0 "$d/${1-autosetup-test-tclsh}" && exit 0 14 | done 15 | echo 1>&2 "No working C compiler found. Tried ${CC_FOR_BUILD:-cc} and gcc." 16 | echo false 17 | -------------------------------------------------------------------------------- /autosetup/autosetup-test-tclsh: -------------------------------------------------------------------------------- 1 | # A small Tcl script to verify that the chosen 2 | # interpreter works. Sometimes we might e.g. pick up 3 | # an interpreter for a different arch. 4 | # Outputs the full path to the interpreter 5 | 6 | if {[catch {info version} version] == 0} { 7 | # This is Jim Tcl 8 | if {$version >= 0.72} { 9 | # Ensure that regexp works 10 | regexp (a.*?) a 11 | puts [info nameofexecutable] 12 | exit 0 13 | } 14 | } elseif {[catch {info tclversion} version] == 0} { 15 | if {$version >= 8.5 && ![string match 8.5a* [info patchlevel]]} { 16 | puts [info nameofexecutable] 17 | exit 0 18 | } 19 | } 20 | exit 1 21 | -------------------------------------------------------------------------------- /autosetup/cc-db.tcl: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2011 WorkWare Systems http://www.workware.net.au/ 2 | # All rights reserved 3 | 4 | # @synopsis: 5 | # 6 | # The 'cc-db' module provides a knowledge-base of system idiosyncrasies. 7 | # In general, this module can always be included. 8 | 9 | use cc 10 | 11 | options {} 12 | 13 | # openbsd needs sys/types.h to detect some system headers 14 | cc-include-needs sys/socket.h sys/types.h 15 | cc-include-needs netinet/in.h sys/types.h 16 | -------------------------------------------------------------------------------- /autosetup/default.auto: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2012 WorkWare Systems http://www.workware.net.au/ 2 | # All rights reserved 3 | 4 | # Auto-load module for 'make' build system integration 5 | 6 | use init 7 | 8 | autosetup_add_init_type make {Simple "make" build system} { 9 | autosetup_check_create auto.def \ 10 | {# Initial auto.def created by 'autosetup --init=make' 11 | 12 | use cc 13 | 14 | # Add any user options here 15 | options { 16 | } 17 | 18 | make-config-header config.h 19 | make-template Makefile.in 20 | } 21 | 22 | if {![file exists Makefile.in]} { 23 | puts "Note: I don't see Makefile.in. You will probably need to create one." 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /autosetup/local.tcl: -------------------------------------------------------------------------------- 1 | # For this project, disable the pager for --help and --ref 2 | # The user can still enable by using --nopager=0 or --disable-nopager 3 | dict set autosetup(optdefault) nopager 1 4 | 5 | # Searches for a usable Tcl (prefer 8.6, 8.5, 8.4) in the given paths 6 | # Returns a dictionary of the contents of the tclConfig.sh file, or 7 | # empty if not found 8 | proc parse-tclconfig-sh {args} { 9 | foreach p $args { 10 | # Allow pointing directly to the path containing tclConfig.sh 11 | if {[file exists $p/tclConfig.sh]} { 12 | return [parse-tclconfig-sh-file $p/tclConfig.sh] 13 | } 14 | # Some systems allow for multiple versions 15 | foreach libpath {lib/tcl8.6 lib/tcl8.5 lib/tcl8.4 lib/tcl tcl lib} { 16 | if {[file exists $p/$libpath/tclConfig.sh]} { 17 | return [parse-tclconfig-sh-file $p/$libpath/tclConfig.sh] 18 | } 19 | } 20 | } 21 | } 22 | 23 | proc parse-tclconfig-sh-file {filename} { 24 | foreach line [split [readfile $filename] \n] { 25 | if {[regexp {^(TCL_[^=]*)=(.*)$} $line -> name value]} { 26 | set value [regsub -all {\$\{.*\}} $value ""] 27 | set tclconfig($name) [string trim $value '] 28 | } 29 | } 30 | return [array get tclconfig] 31 | } 32 | 33 | # 34 | # Given a library link flag, e.g. -lfoo, returns 1 if that library can 35 | # actually be linked to, else returns 0. 36 | proc lib-actually-exists {linkFlag} { 37 | cctest -link 1 -code "void libActuallyExists(void){}" -libs $linkFlag 38 | } 39 | 40 | # 41 | # Given a library flag, e.g. -lfoo, a list of libs, e.g. {-lfoo -lbar 42 | # -lbaz}, and a target variable name, this function appends all 43 | # entries of $libList which do not match $flag to $tgtVar, then 44 | # appends $flag to the end of $tgtVar. Returns the number of matches 45 | # found. 46 | proc move-lib-to-end {flag libList tgtVar} { 47 | upvar $tgtVar tgt 48 | set tgt {} 49 | set found 0 50 | foreach e $libList { 51 | if {$flag eq $e} { 52 | incr found 53 | } else { 54 | lappend tgt $e 55 | } 56 | } 57 | if {$found} { 58 | lappend tgt $flag 59 | } 60 | return $found 61 | } 62 | -------------------------------------------------------------------------------- /autosetup/tmake.tcl: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2011 WorkWare Systems http://www.workware.net.au/ 2 | # All rights reserved 3 | 4 | # @synopsis: 5 | # 6 | # The 'tmake' module makes it easy to support the tmake build system. 7 | # 8 | # The following variables are set: 9 | # 10 | ## CONFIGURED - to indicate that the project is configured 11 | 12 | use system 13 | 14 | options {} 15 | 16 | define CONFIGURED 17 | 18 | # @make-tmake-settings outfile patterns ... 19 | # 20 | # Examines all defined variables which match the given patterns (defaults to '*') 21 | # and writes a tmake-compatible .conf file defining those variables. 22 | # For example, if 'ABC' is '"3 monkeys"' and 'ABC' matches a pattern, then the file will include: 23 | # 24 | ## define ABC {3 monkeys} 25 | # 26 | # If the file would be unchanged, it is not written. 27 | # 28 | # Typical usage is: 29 | # 30 | ## make-tmake-settings [get-env BUILDDIR objdir]/settings.conf {[A-Z]*} 31 | proc make-tmake-settings {file args} { 32 | file mkdir [file dirname $file] 33 | set lines {} 34 | 35 | if {[llength $args] == 0} { 36 | set args * 37 | } 38 | 39 | foreach n [lsort [dict keys [all-defines]]] { 40 | foreach p $args { 41 | if {[string match $p $n]} { 42 | set value [get-define $n] 43 | lappend lines "define $n [list $value]" 44 | break 45 | } 46 | } 47 | } 48 | set buf [join $lines \n] 49 | write-if-changed $file $buf { 50 | msg-result "Created $file" 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /compat/zlib/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright notice: 2 | 3 | (C) 1995-2022 Jean-loup Gailly and Mark Adler 4 | 5 | This software is provided 'as-is', without any express or implied 6 | warranty. In no event will the authors be held liable for any damages 7 | arising from the use of this software. 8 | 9 | Permission is granted to anyone to use this software for any purpose, 10 | including commercial applications, and to alter it and redistribute it 11 | freely, subject to the following restrictions: 12 | 13 | 1. The origin of this software must not be misrepresented; you must not 14 | claim that you wrote the original software. If you use this software 15 | in a product, an acknowledgment in the product documentation would be 16 | appreciated but is not required. 17 | 2. Altered source versions must be plainly marked as such, and must not be 18 | misrepresented as being the original software. 19 | 3. This notice may not be removed or altered from any source distribution. 20 | 21 | Jean-loup Gailly Mark Adler 22 | jloup@gzip.org madler@alumni.caltech.edu 23 | -------------------------------------------------------------------------------- /compat/zlib/Makefile: -------------------------------------------------------------------------------- 1 | all: 2 | -@echo "Please use ./configure first. Thank you." 3 | 4 | distclean: 5 | make -f Makefile.in distclean 6 | -------------------------------------------------------------------------------- /compat/zlib/contrib/blast/Makefile: -------------------------------------------------------------------------------- 1 | blast: blast.c blast.h 2 | cc -DTEST -o blast blast.c 3 | 4 | test: blast 5 | blast < test.pk | cmp - test.txt 6 | 7 | clean: 8 | rm -f blast blast.o 9 | -------------------------------------------------------------------------------- /compat/zlib/contrib/blast/README: -------------------------------------------------------------------------------- 1 | Read blast.h for purpose and usage. 2 | 3 | Mark Adler 4 | madler@alumni.caltech.edu 5 | -------------------------------------------------------------------------------- /compat/zlib/contrib/blast/test.pk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drhsqlite/fossil-mirror/55bbd5a5163ed2e28670d95395958d6c1e2a4fc4/compat/zlib/contrib/blast/test.pk -------------------------------------------------------------------------------- /compat/zlib/contrib/blast/test.txt: -------------------------------------------------------------------------------- 1 | AIAIAIAIAIAIA -------------------------------------------------------------------------------- /compat/zlib/contrib/delphi/ZLibConst.pas: -------------------------------------------------------------------------------- 1 | unit ZLibConst; 2 | 3 | interface 4 | 5 | resourcestring 6 | sTargetBufferTooSmall = 'ZLib error: target buffer may be too small'; 7 | sInvalidStreamOp = 'Invalid stream operation'; 8 | 9 | implementation 10 | 11 | end. 12 | -------------------------------------------------------------------------------- /compat/zlib/contrib/dotzlib/DotZLib.build: -------------------------------------------------------------------------------- 1 |  2 | 3 | A .Net wrapper library around ZLib1.dll 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /compat/zlib/contrib/dotzlib/DotZLib.chm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drhsqlite/fossil-mirror/55bbd5a5163ed2e28670d95395958d6c1e2a4fc4/compat/zlib/contrib/dotzlib/DotZLib.chm -------------------------------------------------------------------------------- /compat/zlib/contrib/dotzlib/DotZLib.sln: -------------------------------------------------------------------------------- 1 | Microsoft Visual Studio Solution File, Format Version 8.00 2 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DotZLib", "DotZLib\DotZLib.csproj", "{BB1EE0B1-1808-46CB-B786-949D91117FC5}" 3 | ProjectSection(ProjectDependencies) = postProject 4 | EndProjectSection 5 | EndProject 6 | Global 7 | GlobalSection(SolutionConfiguration) = preSolution 8 | Debug = Debug 9 | Release = Release 10 | EndGlobalSection 11 | GlobalSection(ProjectConfiguration) = postSolution 12 | {BB1EE0B1-1808-46CB-B786-949D91117FC5}.Debug.ActiveCfg = Debug|.NET 13 | {BB1EE0B1-1808-46CB-B786-949D91117FC5}.Debug.Build.0 = Debug|.NET 14 | {BB1EE0B1-1808-46CB-B786-949D91117FC5}.Release.ActiveCfg = Release|.NET 15 | {BB1EE0B1-1808-46CB-B786-949D91117FC5}.Release.Build.0 = Release|.NET 16 | EndGlobalSection 17 | GlobalSection(ExtensibilityGlobals) = postSolution 18 | EndGlobalSection 19 | GlobalSection(ExtensibilityAddIns) = postSolution 20 | EndGlobalSection 21 | EndGlobal 22 | -------------------------------------------------------------------------------- /compat/zlib/contrib/dotzlib/DotZLib/ChecksumImpl.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drhsqlite/fossil-mirror/55bbd5a5163ed2e28670d95395958d6c1e2a4fc4/compat/zlib/contrib/dotzlib/DotZLib/ChecksumImpl.cs -------------------------------------------------------------------------------- /compat/zlib/contrib/dotzlib/DotZLib/CircularBuffer.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drhsqlite/fossil-mirror/55bbd5a5163ed2e28670d95395958d6c1e2a4fc4/compat/zlib/contrib/dotzlib/DotZLib/CircularBuffer.cs -------------------------------------------------------------------------------- /compat/zlib/contrib/dotzlib/DotZLib/CodecBase.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drhsqlite/fossil-mirror/55bbd5a5163ed2e28670d95395958d6c1e2a4fc4/compat/zlib/contrib/dotzlib/DotZLib/CodecBase.cs -------------------------------------------------------------------------------- /compat/zlib/contrib/dotzlib/DotZLib/Deflater.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drhsqlite/fossil-mirror/55bbd5a5163ed2e28670d95395958d6c1e2a4fc4/compat/zlib/contrib/dotzlib/DotZLib/Deflater.cs -------------------------------------------------------------------------------- /compat/zlib/contrib/dotzlib/DotZLib/DotZLib.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drhsqlite/fossil-mirror/55bbd5a5163ed2e28670d95395958d6c1e2a4fc4/compat/zlib/contrib/dotzlib/DotZLib/DotZLib.cs -------------------------------------------------------------------------------- /compat/zlib/contrib/dotzlib/DotZLib/GZipStream.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drhsqlite/fossil-mirror/55bbd5a5163ed2e28670d95395958d6c1e2a4fc4/compat/zlib/contrib/dotzlib/DotZLib/GZipStream.cs -------------------------------------------------------------------------------- /compat/zlib/contrib/dotzlib/DotZLib/Inflater.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drhsqlite/fossil-mirror/55bbd5a5163ed2e28670d95395958d6c1e2a4fc4/compat/zlib/contrib/dotzlib/DotZLib/Inflater.cs -------------------------------------------------------------------------------- /compat/zlib/contrib/dotzlib/LICENSE_1_0.txt: -------------------------------------------------------------------------------- 1 | Boost Software License - Version 1.0 - August 17th, 2003 2 | 3 | Permission is hereby granted, free of charge, to any person or organization 4 | obtaining a copy of the software and accompanying documentation covered by 5 | this license (the "Software") to use, reproduce, display, distribute, 6 | execute, and transmit the Software, and to prepare derivative works of the 7 | Software, and to permit third-parties to whom the Software is furnished to 8 | do so, all subject to the following: 9 | 10 | The copyright notices in the Software and this entire statement, including 11 | the above license grant, this restriction and the following disclaimer, 12 | must be included in all copies of the Software, in whole or in part, and 13 | all derivative works of the Software, unless such copies or derivative 14 | works are solely in the form of machine-executable object code generated by 15 | a source language processor. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT 20 | SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE 21 | FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, 22 | ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 23 | DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /compat/zlib/contrib/infback9/README: -------------------------------------------------------------------------------- 1 | See infback9.h for what this is and how to use it. 2 | -------------------------------------------------------------------------------- /compat/zlib/contrib/infback9/infback9.h: -------------------------------------------------------------------------------- 1 | /* infback9.h -- header for using inflateBack9 functions 2 | * Copyright (C) 2003 Mark Adler 3 | * For conditions of distribution and use, see copyright notice in zlib.h 4 | */ 5 | 6 | /* 7 | * This header file and associated patches provide a decoder for PKWare's 8 | * undocumented deflate64 compression method (method 9). Use with infback9.c, 9 | * inftree9.h, inftree9.c, and inffix9.h. These patches are not supported. 10 | * This should be compiled with zlib, since it uses zutil.h and zutil.o. 11 | * This code has not yet been tested on 16-bit architectures. See the 12 | * comments in zlib.h for inflateBack() usage. These functions are used 13 | * identically, except that there is no windowBits parameter, and a 64K 14 | * window must be provided. Also if int's are 16 bits, then a zero for 15 | * the third parameter of the "out" function actually means 65536UL. 16 | * zlib.h must be included before this header file. 17 | */ 18 | 19 | #ifdef __cplusplus 20 | extern "C" { 21 | #endif 22 | 23 | ZEXTERN int ZEXPORT inflateBack9(z_stream FAR *strm, 24 | in_func in, void FAR *in_desc, 25 | out_func out, void FAR *out_desc); 26 | ZEXTERN int ZEXPORT inflateBack9End(z_stream FAR *strm); 27 | ZEXTERN int ZEXPORT inflateBack9Init_(z_stream FAR *strm, 28 | unsigned char FAR *window, 29 | const char *version, 30 | int stream_size); 31 | #define inflateBack9Init(strm, window) \ 32 | inflateBack9Init_((strm), (window), \ 33 | ZLIB_VERSION, sizeof(z_stream)) 34 | 35 | #ifdef __cplusplus 36 | } 37 | #endif 38 | -------------------------------------------------------------------------------- /compat/zlib/contrib/iostream/test.cpp: -------------------------------------------------------------------------------- 1 | 2 | #include "zfstream.h" 3 | 4 | int main() { 5 | 6 | // Construct a stream object with this filebuffer. Anything sent 7 | // to this stream will go to standard out. 8 | gzofstream os( 1, ios::out ); 9 | 10 | // This text is getting compressed and sent to stdout. 11 | // To prove this, run 'test | zcat'. 12 | os << "Hello, Mommy" << endl; 13 | 14 | os << setcompressionlevel( Z_NO_COMPRESSION ); 15 | os << "hello, hello, hi, ho!" << endl; 16 | 17 | setcompressionlevel( os, Z_DEFAULT_COMPRESSION ) 18 | << "I'm compressing again" << endl; 19 | 20 | os.close(); 21 | 22 | return 0; 23 | 24 | } 25 | -------------------------------------------------------------------------------- /compat/zlib/contrib/iostream2/zstream_test.cpp: -------------------------------------------------------------------------------- 1 | #include "zstream.h" 2 | #include 3 | #include 4 | #include 5 | 6 | void main() { 7 | char h[256] = "Hello"; 8 | char* g = "Goodbye"; 9 | ozstream out("temp.gz"); 10 | out < "This works well" < h < g; 11 | out.close(); 12 | 13 | izstream in("temp.gz"); // read it back 14 | char *x = read_string(in), *y = new char[256], z[256]; 15 | in > y > z; 16 | in.close(); 17 | cout << x << endl << y << endl << z << endl; 18 | 19 | out.open("temp.gz"); // try ascii output; zcat temp.gz to see the results 20 | out << setw(50) << setfill('#') << setprecision(20) << x << endl << y << endl << z << endl; 21 | out << z << endl << y << endl << x << endl; 22 | out << 1.1234567890123456789 << endl; 23 | 24 | delete[] x; delete[] y; 25 | } 26 | -------------------------------------------------------------------------------- /compat/zlib/contrib/iostream3/README: -------------------------------------------------------------------------------- 1 | These classes provide a C++ stream interface to the zlib library. It allows you 2 | to do things like: 3 | 4 | gzofstream outf("blah.gz"); 5 | outf << "These go into the gzip file " << 123 << endl; 6 | 7 | It does this by deriving a specialized stream buffer for gzipped files, which is 8 | the way Stroustrup would have done it. :-> 9 | 10 | The gzifstream and gzofstream classes were originally written by Kevin Ruland 11 | and made available in the zlib contrib/iostream directory. The older version still 12 | compiles under gcc 2.xx, but not under gcc 3.xx, which sparked the development of 13 | this version. 14 | 15 | The new classes are as standard-compliant as possible, closely following the 16 | approach of the standard library's fstream classes. It compiles under gcc versions 17 | 3.2 and 3.3, but not under gcc 2.xx. This is mainly due to changes in the standard 18 | library naming scheme. The new version of gzifstream/gzofstream/gzfilebuf differs 19 | from the previous one in the following respects: 20 | - added showmanyc 21 | - added setbuf, with support for unbuffered output via setbuf(0,0) 22 | - a few bug fixes of stream behavior 23 | - gzipped output file opened with default compression level instead of maximum level 24 | - setcompressionlevel()/strategy() members replaced by single setcompression() 25 | 26 | The code is provided "as is", with the permission to use, copy, modify, distribute 27 | and sell it for any purpose without fee. 28 | 29 | Ludwig Schwardt 30 | 31 | 32 | DSP Lab 33 | Electrical & Electronic Engineering Department 34 | University of Stellenbosch 35 | South Africa 36 | -------------------------------------------------------------------------------- /compat/zlib/contrib/iostream3/TODO: -------------------------------------------------------------------------------- 1 | Possible upgrades to gzfilebuf: 2 | 3 | - The ability to do putback (e.g. putbackfail) 4 | 5 | - The ability to seek (zlib supports this, but could be slow/tricky) 6 | 7 | - Simultaneous read/write access (does it make sense?) 8 | 9 | - Support for ios_base::ate open mode 10 | 11 | - Locale support? 12 | 13 | - Check public interface to see which calls give problems 14 | (due to dependence on library internals) 15 | 16 | - Override operator<<(ostream&, gzfilebuf*) to allow direct copying 17 | of stream buffer to stream ( i.e. os << is.rdbuf(); ) 18 | -------------------------------------------------------------------------------- /compat/zlib/contrib/iostream3/test.cc: -------------------------------------------------------------------------------- 1 | /* 2 | * Test program for gzifstream and gzofstream 3 | * 4 | * by Ludwig Schwardt 5 | * original version by Kevin Ruland 6 | */ 7 | 8 | #include "zfstream.h" 9 | #include // for cout 10 | 11 | int main() { 12 | 13 | gzofstream outf; 14 | gzifstream inf; 15 | char buf[80]; 16 | 17 | outf.open("test1.txt.gz"); 18 | outf << "The quick brown fox sidestepped the lazy canine\n" 19 | << 1.3 << "\nPlan " << 9 << std::endl; 20 | outf.close(); 21 | std::cout << "Wrote the following message to 'test1.txt.gz' (check with zcat or zless):\n" 22 | << "The quick brown fox sidestepped the lazy canine\n" 23 | << 1.3 << "\nPlan " << 9 << std::endl; 24 | 25 | std::cout << "\nReading 'test1.txt.gz' (buffered) produces:\n"; 26 | inf.open("test1.txt.gz"); 27 | while (inf.getline(buf,80,'\n')) { 28 | std::cout << buf << "\t(" << inf.rdbuf()->in_avail() << " chars left in buffer)\n"; 29 | } 30 | inf.close(); 31 | 32 | outf.rdbuf()->pubsetbuf(0,0); 33 | outf.open("test2.txt.gz"); 34 | outf << setcompression(Z_NO_COMPRESSION) 35 | << "The quick brown fox sidestepped the lazy canine\n" 36 | << 1.3 << "\nPlan " << 9 << std::endl; 37 | outf.close(); 38 | std::cout << "\nWrote the same message to 'test2.txt.gz' in uncompressed form"; 39 | 40 | std::cout << "\nReading 'test2.txt.gz' (unbuffered) produces:\n"; 41 | inf.rdbuf()->pubsetbuf(0,0); 42 | inf.open("test2.txt.gz"); 43 | while (inf.getline(buf,80,'\n')) { 44 | std::cout << buf << "\t(" << inf.rdbuf()->in_avail() << " chars left in buffer)\n"; 45 | } 46 | inf.close(); 47 | 48 | return 0; 49 | 50 | } 51 | -------------------------------------------------------------------------------- /compat/zlib/contrib/minizip/Makefile: -------------------------------------------------------------------------------- 1 | CC?=cc 2 | CFLAGS := $(CFLAGS) -O -I../.. 3 | 4 | UNZ_OBJS = miniunz.o unzip.o ioapi.o ../../libz.a 5 | ZIP_OBJS = minizip.o zip.o ioapi.o ../../libz.a 6 | 7 | .c.o: 8 | $(CC) -c $(CFLAGS) $*.c 9 | 10 | all: miniunz minizip 11 | 12 | miniunz: $(UNZ_OBJS) 13 | $(CC) $(CFLAGS) -o $@ $(UNZ_OBJS) 14 | 15 | minizip: $(ZIP_OBJS) 16 | $(CC) $(CFLAGS) -o $@ $(ZIP_OBJS) 17 | 18 | test: miniunz minizip 19 | @rm -f test.* 20 | @echo hello hello hello > test.txt 21 | ./minizip test test.txt 22 | ./miniunz -l test.zip 23 | @mv test.txt test.old 24 | ./miniunz test.zip 25 | @cmp test.txt test.old 26 | @rm -f test.* 27 | 28 | clean: 29 | /bin/rm -f *.o *~ minizip miniunz test.* 30 | -------------------------------------------------------------------------------- /compat/zlib/contrib/minizip/Makefile.am: -------------------------------------------------------------------------------- 1 | lib_LTLIBRARIES = libminizip.la 2 | 3 | if COND_DEMOS 4 | bin_PROGRAMS = miniunzip minizip 5 | endif 6 | 7 | zlib_top_srcdir = $(top_srcdir)/../.. 8 | zlib_top_builddir = $(top_builddir)/../.. 9 | 10 | AM_CPPFLAGS = -I$(zlib_top_srcdir) 11 | AM_LDFLAGS = -L$(zlib_top_builddir) 12 | 13 | if WIN32 14 | iowin32_src = iowin32.c 15 | iowin32_h = iowin32.h 16 | endif 17 | 18 | libminizip_la_SOURCES = \ 19 | ioapi.c \ 20 | mztools.c \ 21 | unzip.c \ 22 | zip.c \ 23 | ${iowin32_src} 24 | 25 | libminizip_la_LDFLAGS = $(AM_LDFLAGS) -version-info 1:0:0 -lz 26 | 27 | minizip_includedir = $(includedir)/minizip 28 | minizip_include_HEADERS = \ 29 | crypt.h \ 30 | ioapi.h \ 31 | mztools.h \ 32 | unzip.h \ 33 | zip.h \ 34 | ${iowin32_h} 35 | 36 | pkgconfigdir = $(libdir)/pkgconfig 37 | pkgconfig_DATA = minizip.pc 38 | 39 | EXTRA_PROGRAMS = miniunzip minizip 40 | 41 | miniunzip_SOURCES = miniunz.c 42 | miniunzip_LDADD = libminizip.la 43 | 44 | minizip_SOURCES = minizip.c 45 | minizip_LDADD = libminizip.la -lz 46 | -------------------------------------------------------------------------------- /compat/zlib/contrib/minizip/MiniZip64_Changes.txt: -------------------------------------------------------------------------------- 1 | 2 | MiniZip 1.1 was derived from MiniZip at version 1.01f 3 | 4 | Change in 1.0 (Okt 2009) 5 | - **TODO - Add history** 6 | 7 | -------------------------------------------------------------------------------- /compat/zlib/contrib/minizip/configure.ac: -------------------------------------------------------------------------------- 1 | # -*- Autoconf -*- 2 | # Process this file with autoconf to produce a configure script. 3 | 4 | AC_INIT([minizip], [1.3.1], [bugzilla.redhat.com]) 5 | AC_CONFIG_SRCDIR([minizip.c]) 6 | AM_INIT_AUTOMAKE([foreign]) 7 | LT_INIT 8 | 9 | AC_MSG_CHECKING([whether to build example programs]) 10 | AC_ARG_ENABLE([demos], AC_HELP_STRING([--enable-demos], [build example programs])) 11 | AM_CONDITIONAL([COND_DEMOS], [test "$enable_demos" = yes]) 12 | if test "$enable_demos" = yes 13 | then 14 | AC_MSG_RESULT([yes]) 15 | else 16 | AC_MSG_RESULT([no]) 17 | fi 18 | 19 | case "${host}" in 20 | *-mingw* | mingw*) 21 | WIN32="yes" 22 | ;; 23 | *) 24 | ;; 25 | esac 26 | AM_CONDITIONAL([WIN32], [test "${WIN32}" = "yes"]) 27 | 28 | 29 | AC_SUBST([HAVE_UNISTD_H], [0]) 30 | AC_CHECK_HEADER([unistd.h], [HAVE_UNISTD_H=1], []) 31 | AC_CONFIG_FILES([Makefile minizip.pc]) 32 | AC_OUTPUT 33 | -------------------------------------------------------------------------------- /compat/zlib/contrib/minizip/iowin32.h: -------------------------------------------------------------------------------- 1 | /* iowin32.h -- IO base function header for compress/uncompress .zip 2 | Version 1.1, February 14h, 2010 3 | part of the MiniZip project - ( http://www.winimage.com/zLibDll/minizip.html ) 4 | 5 | Copyright (C) 1998-2010 Gilles Vollant (minizip) ( http://www.winimage.com/zLibDll/minizip.html ) 6 | 7 | Modifications for Zip64 support 8 | Copyright (C) 2009-2010 Mathias Svensson ( http://result42.com ) 9 | 10 | For more info read MiniZip_info.txt 11 | 12 | */ 13 | 14 | #include 15 | 16 | 17 | #ifdef __cplusplus 18 | extern "C" { 19 | #endif 20 | 21 | void fill_win32_filefunc(zlib_filefunc_def* pzlib_filefunc_def); 22 | void fill_win32_filefunc64(zlib_filefunc64_def* pzlib_filefunc_def); 23 | void fill_win32_filefunc64A(zlib_filefunc64_def* pzlib_filefunc_def); 24 | void fill_win32_filefunc64W(zlib_filefunc64_def* pzlib_filefunc_def); 25 | 26 | #ifdef __cplusplus 27 | } 28 | #endif 29 | -------------------------------------------------------------------------------- /compat/zlib/contrib/minizip/make_vms.com: -------------------------------------------------------------------------------- 1 | $ if f$search("ioapi.h_orig") .eqs. "" then copy ioapi.h ioapi.h_orig 2 | $ open/write zdef vmsdefs.h 3 | $ copy sys$input: zdef 4 | $ deck 5 | #define unix 6 | #define fill_zlib_filefunc64_32_def_from_filefunc32 fillzffunc64from 7 | #define Write_Zip64EndOfCentralDirectoryLocator Write_Zip64EoDLocator 8 | #define Write_Zip64EndOfCentralDirectoryRecord Write_Zip64EoDRecord 9 | #define Write_EndOfCentralDirectoryRecord Write_EoDRecord 10 | $ eod 11 | $ close zdef 12 | $ copy vmsdefs.h,ioapi.h_orig ioapi.h 13 | $ cc/include=[--]/prefix=all ioapi.c 14 | $ cc/include=[--]/prefix=all miniunz.c 15 | $ cc/include=[--]/prefix=all unzip.c 16 | $ cc/include=[--]/prefix=all minizip.c 17 | $ cc/include=[--]/prefix=all zip.c 18 | $ link miniunz,unzip,ioapi,[--]libz.olb/lib 19 | $ link minizip,zip,ioapi,[--]libz.olb/lib 20 | $ mcr []minizip test minizip_info.txt 21 | $ mcr []miniunz -l test.zip 22 | $ rename minizip_info.txt; minizip_info.txt_old 23 | $ mcr []miniunz test.zip 24 | $ delete test.zip;* 25 | $exit 26 | -------------------------------------------------------------------------------- /compat/zlib/contrib/minizip/minizip.1: -------------------------------------------------------------------------------- 1 | .\" Hey, EMACS: -*- nroff -*- 2 | .TH minizip 1 "May 2, 2001" 3 | .\" Please adjust this date whenever revising the manpage. 4 | .\" 5 | .\" Some roff macros, for reference: 6 | .\" .nh disable hyphenation 7 | .\" .hy enable hyphenation 8 | .\" .ad l left justify 9 | .\" .ad b justify to both left and right margins 10 | .\" .nf disable filling 11 | .\" .fi enable filling 12 | .\" .br insert line break 13 | .\" .sp insert n+1 empty lines 14 | .\" for manpage-specific macros, see man(7) 15 | .SH NAME 16 | minizip - create ZIP archives 17 | .SH SYNOPSIS 18 | .B minizip 19 | .RI [ -o ] 20 | zipfile [ " files" ... ] 21 | .SH DESCRIPTION 22 | .B minizip 23 | is a simple tool which allows the creation of compressed file archives 24 | in the ZIP format used by the MS-DOS utility PKZIP. It was written as 25 | a demonstration of the 26 | .IR zlib (3) 27 | library and therefore lack many of the features of the 28 | .IR zip (1) 29 | program. 30 | .SH OPTIONS 31 | The first argument supplied is the name of the ZIP archive to create or 32 | .RI -o 33 | in which case it is ignored and the second argument treated as the 34 | name of the ZIP file. If the ZIP file already exists it will be 35 | overwritten. 36 | .PP 37 | Subsequent arguments specify a list of files to place in the ZIP 38 | archive. If none are specified then an empty archive will be created. 39 | .SH SEE ALSO 40 | .BR miniunzip (1), 41 | .BR zlib (3), 42 | .BR zip (1). 43 | .SH AUTHOR 44 | This program was written by Gilles Vollant. This manual page was 45 | written by Mark Brown . 46 | 47 | -------------------------------------------------------------------------------- /compat/zlib/contrib/minizip/minizip.pc.in: -------------------------------------------------------------------------------- 1 | prefix=@prefix@ 2 | exec_prefix=@exec_prefix@ 3 | libdir=@libdir@ 4 | includedir=@includedir@/minizip 5 | 6 | Name: minizip 7 | Description: Minizip zip file manipulation library 8 | Requires: 9 | Version: @PACKAGE_VERSION@ 10 | Libs: -L${libdir} -lminizip 11 | Libs.private: -lz 12 | Cflags: -I${includedir} 13 | -------------------------------------------------------------------------------- /compat/zlib/contrib/minizip/mztools.h: -------------------------------------------------------------------------------- 1 | /* 2 | Additional tools for Minizip 3 | Code: Xavier Roche '2004 4 | License: Same as ZLIB (www.gzip.org) 5 | */ 6 | 7 | #ifndef _zip_tools_H 8 | #define _zip_tools_H 9 | 10 | #ifdef __cplusplus 11 | extern "C" { 12 | #endif 13 | 14 | #ifndef _ZLIB_H 15 | #include "zlib.h" 16 | #endif 17 | 18 | #include "unzip.h" 19 | 20 | /* Repair a ZIP file (missing central directory) 21 | file: file to recover 22 | fileOut: output file after recovery 23 | fileOutTmp: temporary file name used for recovery 24 | */ 25 | extern int ZEXPORT unzRepair(const char* file, 26 | const char* fileOut, 27 | const char* fileOutTmp, 28 | uLong* nRecovered, 29 | uLong* bytesRecovered); 30 | 31 | 32 | #ifdef __cplusplus 33 | } 34 | #endif 35 | 36 | 37 | #endif 38 | -------------------------------------------------------------------------------- /compat/zlib/contrib/puff/Makefile: -------------------------------------------------------------------------------- 1 | CFLAGS=-O 2 | 3 | puff: puff.o pufftest.o 4 | 5 | puff.o: puff.h 6 | 7 | pufftest.o: puff.h 8 | 9 | test: puff 10 | puff zeros.raw 11 | 12 | puft: puff.c puff.h pufftest.o 13 | cc -fprofile-arcs -ftest-coverage -o puft puff.c pufftest.o 14 | 15 | # puff full coverage test (should say 100%) 16 | cov: puft 17 | @rm -f *.gcov *.gcda 18 | @puft -w zeros.raw 2>&1 | cat > /dev/null 19 | @echo '04' | xxd -r -p | puft 2> /dev/null || test $$? -eq 2 20 | @echo '00' | xxd -r -p | puft 2> /dev/null || test $$? -eq 2 21 | @echo '00 00 00 00 00' | xxd -r -p | puft 2> /dev/null || test $$? -eq 254 22 | @echo '00 01 00 fe ff' | xxd -r -p | puft 2> /dev/null || test $$? -eq 2 23 | @echo '01 01 00 fe ff 0a' | xxd -r -p | puft -f 2>&1 | cat > /dev/null 24 | @echo '02 7e ff ff' | xxd -r -p | puft 2> /dev/null || test $$? -eq 246 25 | @echo '02' | xxd -r -p | puft 2> /dev/null || test $$? -eq 2 26 | @echo '04 80 49 92 24 49 92 24 0f b4 ff ff c3 04' | xxd -r -p | puft 2> /dev/null || test $$? -eq 2 27 | @echo '04 80 49 92 24 49 92 24 71 ff ff 93 11 00' | xxd -r -p | puft 2> /dev/null || test $$? -eq 249 28 | @echo '04 c0 81 08 00 00 00 00 20 7f eb 0b 00 00' | xxd -r -p | puft 2> /dev/null || test $$? -eq 246 29 | @echo '0b 00 00' | xxd -r -p | puft -f 2>&1 | cat > /dev/null 30 | @echo '1a 07' | xxd -r -p | puft 2> /dev/null || test $$? -eq 246 31 | @echo '0c c0 81 00 00 00 00 00 90 ff 6b 04' | xxd -r -p | puft 2> /dev/null || test $$? -eq 245 32 | @puft -f zeros.raw 2>&1 | cat > /dev/null 33 | @echo 'fc 00 00' | xxd -r -p | puft 2> /dev/null || test $$? -eq 253 34 | @echo '04 00 fe ff' | xxd -r -p | puft 2> /dev/null || test $$? -eq 252 35 | @echo '04 00 24 49' | xxd -r -p | puft 2> /dev/null || test $$? -eq 251 36 | @echo '04 80 49 92 24 49 92 24 0f b4 ff ff c3 84' | xxd -r -p | puft 2> /dev/null || test $$? -eq 248 37 | @echo '04 00 24 e9 ff ff' | xxd -r -p | puft 2> /dev/null || test $$? -eq 250 38 | @echo '04 00 24 e9 ff 6d' | xxd -r -p | puft 2> /dev/null || test $$? -eq 247 39 | @gcov -n puff.c 40 | 41 | clean: 42 | rm -f puff puft *.o *.gc* 43 | -------------------------------------------------------------------------------- /compat/zlib/contrib/puff/puff.h: -------------------------------------------------------------------------------- 1 | /* puff.h 2 | Copyright (C) 2002-2013 Mark Adler, all rights reserved 3 | version 2.3, 21 Jan 2013 4 | 5 | This software is provided 'as-is', without any express or implied 6 | warranty. In no event will the author be held liable for any damages 7 | arising from the use of this software. 8 | 9 | Permission is granted to anyone to use this software for any purpose, 10 | including commercial applications, and to alter it and redistribute it 11 | freely, subject to the following restrictions: 12 | 13 | 1. The origin of this software must not be misrepresented; you must not 14 | claim that you wrote the original software. If you use this software 15 | in a product, an acknowledgment in the product documentation would be 16 | appreciated but is not required. 17 | 2. Altered source versions must be plainly marked as such, and must not be 18 | misrepresented as being the original software. 19 | 3. This notice may not be removed or altered from any source distribution. 20 | 21 | Mark Adler madler@alumni.caltech.edu 22 | */ 23 | 24 | 25 | /* 26 | * See puff.c for purpose and usage. 27 | */ 28 | #ifndef NIL 29 | # define NIL ((unsigned char *)0) /* for no output option */ 30 | #endif 31 | 32 | int puff(unsigned char *dest, /* pointer to destination pointer */ 33 | unsigned long *destlen, /* amount of output space */ 34 | const unsigned char *source, /* pointer to source data pointer */ 35 | unsigned long *sourcelen); /* amount of input available */ 36 | -------------------------------------------------------------------------------- /compat/zlib/contrib/puff/zeros.raw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drhsqlite/fossil-mirror/55bbd5a5163ed2e28670d95395958d6c1e2a4fc4/compat/zlib/contrib/puff/zeros.raw -------------------------------------------------------------------------------- /compat/zlib/contrib/testzlib/testzlib.txt: -------------------------------------------------------------------------------- 1 | To build testzLib with Visual Studio 2005: 2 | 3 | copy to a directory file from : 4 | - root of zLib tree 5 | - contrib/testzlib 6 | - contrib/masmx86 7 | - contrib/masmx64 8 | - contrib/vstudio/vc7 9 | 10 | and open testzlib8.sln -------------------------------------------------------------------------------- /compat/zlib/contrib/untgz/Makefile: -------------------------------------------------------------------------------- 1 | CC=cc 2 | CFLAGS=-g 3 | 4 | untgz: untgz.o ../../libz.a 5 | $(CC) $(CFLAGS) -o untgz untgz.o -L../.. -lz 6 | 7 | untgz.o: untgz.c ../../zlib.h 8 | $(CC) $(CFLAGS) -c -I../.. untgz.c 9 | 10 | ../../libz.a: 11 | cd ../..; ./configure; make 12 | 13 | clean: 14 | rm -f untgz untgz.o *~ 15 | -------------------------------------------------------------------------------- /compat/zlib/contrib/untgz/Makefile.msc: -------------------------------------------------------------------------------- 1 | CC=cl 2 | CFLAGS=-MD 3 | 4 | untgz.exe: untgz.obj ..\..\zlib.lib 5 | $(CC) $(CFLAGS) untgz.obj ..\..\zlib.lib 6 | 7 | untgz.obj: untgz.c ..\..\zlib.h 8 | $(CC) $(CFLAGS) -c -I..\.. untgz.c 9 | 10 | ..\..\zlib.lib: 11 | cd ..\.. 12 | $(MAKE) -f win32\makefile.msc 13 | cd contrib\untgz 14 | 15 | clean: 16 | -del untgz.obj 17 | -del untgz.exe 18 | -------------------------------------------------------------------------------- /compat/zlib/contrib/vstudio/vc10/miniunz.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {048af943-022b-4db6-beeb-a54c34774ee2} 6 | cpp;c;cxx;def;odl;idl;hpj;bat 7 | 8 | 9 | {c1d600d2-888f-4aea-b73e-8b0dd9befa0c} 10 | h;hpp;hxx;hm;inl;inc 11 | 12 | 13 | {0844199a-966b-4f19-81db-1e0125e141b9} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe 15 | 16 | 17 | 18 | 19 | Source Files 20 | 21 | 22 | -------------------------------------------------------------------------------- /compat/zlib/contrib/vstudio/vc10/minizip.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {c0419b40-bf50-40da-b153-ff74215b79de} 6 | cpp;c;cxx;def;odl;idl;hpj;bat 7 | 8 | 9 | {bb87b070-735b-478e-92ce-7383abb2f36c} 10 | h;hpp;hxx;hm;inl;inc 11 | 12 | 13 | {f46ab6a6-548f-43cb-ae96-681abb5bd5db} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe 15 | 16 | 17 | 18 | 19 | Source Files 20 | 21 | 22 | -------------------------------------------------------------------------------- /compat/zlib/contrib/vstudio/vc10/testzlibdll.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {fa61a89f-93fc-4c89-b29e-36224b7592f4} 6 | cpp;c;cxx;def;odl;idl;hpj;bat 7 | 8 | 9 | {d4b85da0-2ba2-4934-b57f-e2584e3848ee} 10 | h;hpp;hxx;hm;inl;inc 11 | 12 | 13 | {e573e075-00bd-4a7d-bd67-a8cc9bfc5aca} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe 15 | 16 | 17 | 18 | 19 | Source Files 20 | 21 | 22 | -------------------------------------------------------------------------------- /compat/zlib/contrib/vstudio/vc10/zlib.rc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #define IDR_VERSION1 1 4 | IDR_VERSION1 VERSIONINFO MOVEABLE IMPURE LOADONCALL DISCARDABLE 5 | FILEVERSION 1, 3, 1, 0 6 | PRODUCTVERSION 1, 3, 1, 0 7 | FILEFLAGSMASK VS_FFI_FILEFLAGSMASK 8 | FILEFLAGS 0 9 | FILEOS VOS_DOS_WINDOWS32 10 | FILETYPE VFT_DLL 11 | FILESUBTYPE 0 // not used 12 | BEGIN 13 | BLOCK "StringFileInfo" 14 | BEGIN 15 | BLOCK "040904E4" 16 | //language ID = U.S. English, char set = Windows, Multilingual 17 | 18 | BEGIN 19 | VALUE "FileDescription", "zlib data compression and ZIP file I/O library\0" 20 | VALUE "FileVersion", "1.3.1\0" 21 | VALUE "InternalName", "zlib\0" 22 | VALUE "OriginalFilename", "zlibwapi.dll\0" 23 | VALUE "ProductName", "ZLib.DLL\0" 24 | VALUE "Comments","DLL support by Alessandro Iacopetti & Gilles Vollant\0" 25 | VALUE "LegalCopyright", "(C) 1995-2024 Jean-loup Gailly & Mark Adler\0" 26 | END 27 | END 28 | BLOCK "VarFileInfo" 29 | BEGIN 30 | VALUE "Translation", 0x0409, 1252 31 | END 32 | END 33 | -------------------------------------------------------------------------------- /compat/zlib/contrib/vstudio/vc11/zlib.rc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #define IDR_VERSION1 1 4 | IDR_VERSION1 VERSIONINFO MOVEABLE IMPURE LOADONCALL DISCARDABLE 5 | FILEVERSION 1, 3, 1, 0 6 | PRODUCTVERSION 1, 3, 1, 0 7 | FILEFLAGSMASK VS_FFI_FILEFLAGSMASK 8 | FILEFLAGS 0 9 | FILEOS VOS_DOS_WINDOWS32 10 | FILETYPE VFT_DLL 11 | FILESUBTYPE 0 // not used 12 | BEGIN 13 | BLOCK "StringFileInfo" 14 | BEGIN 15 | BLOCK "040904E4" 16 | //language ID = U.S. English, char set = Windows, Multilingual 17 | 18 | BEGIN 19 | VALUE "FileDescription", "zlib data compression and ZIP file I/O library\0" 20 | VALUE "FileVersion", "1.3.1\0" 21 | VALUE "InternalName", "zlib\0" 22 | VALUE "OriginalFilename", "zlibwapi.dll\0" 23 | VALUE "ProductName", "ZLib.DLL\0" 24 | VALUE "Comments","DLL support by Alessandro Iacopetti & Gilles Vollant\0" 25 | VALUE "LegalCopyright", "(C) 1995-2024 Jean-loup Gailly & Mark Adler\0" 26 | END 27 | END 28 | BLOCK "VarFileInfo" 29 | BEGIN 30 | VALUE "Translation", 0x0409, 1252 31 | END 32 | END 33 | -------------------------------------------------------------------------------- /compat/zlib/contrib/vstudio/vc12/zlib.rc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #define IDR_VERSION1 1 4 | IDR_VERSION1 VERSIONINFO MOVEABLE IMPURE LOADONCALL DISCARDABLE 5 | FILEVERSION 1, 3, 1, 0 6 | PRODUCTVERSION 1, 3, 1, 0 7 | FILEFLAGSMASK VS_FFI_FILEFLAGSMASK 8 | FILEFLAGS 0 9 | FILEOS VOS_DOS_WINDOWS32 10 | FILETYPE VFT_DLL 11 | FILESUBTYPE 0 // not used 12 | BEGIN 13 | BLOCK "StringFileInfo" 14 | BEGIN 15 | BLOCK "040904E4" 16 | //language ID = U.S. English, char set = Windows, Multilingual 17 | 18 | BEGIN 19 | VALUE "FileDescription", "zlib data compression and ZIP file I/O library\0" 20 | VALUE "FileVersion", "1.3.1\0" 21 | VALUE "InternalName", "zlib\0" 22 | VALUE "OriginalFilename", "zlibwapi.dll\0" 23 | VALUE "ProductName", "ZLib.DLL\0" 24 | VALUE "Comments","DLL support by Alessandro Iacopetti & Gilles Vollant\0" 25 | VALUE "LegalCopyright", "(C) 1995-2024 Jean-loup Gailly & Mark Adler\0" 26 | END 27 | END 28 | BLOCK "VarFileInfo" 29 | BEGIN 30 | VALUE "Translation", 0x0409, 1252 31 | END 32 | END 33 | -------------------------------------------------------------------------------- /compat/zlib/contrib/vstudio/vc14/zlib.rc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #define IDR_VERSION1 1 4 | IDR_VERSION1 VERSIONINFO MOVEABLE IMPURE LOADONCALL DISCARDABLE 5 | FILEVERSION 1, 3, 1, 0 6 | PRODUCTVERSION 1, 3, 1, 0 7 | FILEFLAGSMASK VS_FFI_FILEFLAGSMASK 8 | FILEFLAGS 0 9 | FILEOS VOS_DOS_WINDOWS32 10 | FILETYPE VFT_DLL 11 | FILESUBTYPE 0 // not used 12 | BEGIN 13 | BLOCK "StringFileInfo" 14 | BEGIN 15 | BLOCK "040904E4" 16 | //language ID = U.S. English, char set = Windows, Multilingual 17 | 18 | BEGIN 19 | VALUE "FileDescription", "zlib data compression and ZIP file I/O library\0" 20 | VALUE "FileVersion", "1.3.1\0" 21 | VALUE "InternalName", "zlib\0" 22 | VALUE "OriginalFilename", "zlibwapi.dll\0" 23 | VALUE "ProductName", "ZLib.DLL\0" 24 | VALUE "Comments","DLL support by Alessandro Iacopetti & Gilles Vollant\0" 25 | VALUE "LegalCopyright", "(C) 1995-2024 Jean-loup Gailly & Mark Adler\0" 26 | END 27 | END 28 | BLOCK "VarFileInfo" 29 | BEGIN 30 | VALUE "Translation", 0x0409, 1252 31 | END 32 | END 33 | -------------------------------------------------------------------------------- /compat/zlib/contrib/vstudio/vc9/zlib.rc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #define IDR_VERSION1 1 4 | IDR_VERSION1 VERSIONINFO MOVEABLE IMPURE LOADONCALL DISCARDABLE 5 | FILEVERSION 1, 3, 1, 0 6 | PRODUCTVERSION 1, 3, 1, 0 7 | FILEFLAGSMASK VS_FFI_FILEFLAGSMASK 8 | FILEFLAGS 0 9 | FILEOS VOS_DOS_WINDOWS32 10 | FILETYPE VFT_DLL 11 | FILESUBTYPE 0 // not used 12 | BEGIN 13 | BLOCK "StringFileInfo" 14 | BEGIN 15 | BLOCK "040904E4" 16 | //language ID = U.S. English, char set = Windows, Multilingual 17 | 18 | BEGIN 19 | VALUE "FileDescription", "zlib data compression and ZIP file I/O library\0" 20 | VALUE "FileVersion", "1.3.1\0" 21 | VALUE "InternalName", "zlib\0" 22 | VALUE "OriginalFilename", "zlibwapi.dll\0" 23 | VALUE "ProductName", "ZLib.DLL\0" 24 | VALUE "Comments","DLL support by Alessandro Iacopetti & Gilles Vollant\0" 25 | VALUE "LegalCopyright", "(C) 1995-2024 Jean-loup Gailly & Mark Adler\0" 26 | END 27 | END 28 | BLOCK "VarFileInfo" 29 | BEGIN 30 | VALUE "Translation", 0x0409, 1252 31 | END 32 | END 33 | -------------------------------------------------------------------------------- /compat/zlib/gzclose.c: -------------------------------------------------------------------------------- 1 | /* gzclose.c -- zlib gzclose() function 2 | * Copyright (C) 2004, 2010 Mark Adler 3 | * For conditions of distribution and use, see copyright notice in zlib.h 4 | */ 5 | 6 | #include "gzguts.h" 7 | 8 | /* gzclose() is in a separate file so that it is linked in only if it is used. 9 | That way the other gzclose functions can be used instead to avoid linking in 10 | unneeded compression or decompression routines. */ 11 | int ZEXPORT gzclose(gzFile file) { 12 | #ifndef NO_GZCOMPRESS 13 | gz_statep state; 14 | 15 | if (file == NULL) 16 | return Z_STREAM_ERROR; 17 | state = (gz_statep)file; 18 | 19 | return state->mode == GZ_READ ? gzclose_r(file) : gzclose_w(file); 20 | #else 21 | return gzclose_r(file); 22 | #endif 23 | } 24 | -------------------------------------------------------------------------------- /compat/zlib/inffast.h: -------------------------------------------------------------------------------- 1 | /* inffast.h -- header to use inffast.c 2 | * Copyright (C) 1995-2003, 2010 Mark Adler 3 | * For conditions of distribution and use, see copyright notice in zlib.h 4 | */ 5 | 6 | /* WARNING: this file should *not* be used by applications. It is 7 | part of the implementation of the compression library and is 8 | subject to change. Applications should only use zlib.h. 9 | */ 10 | 11 | void ZLIB_INTERNAL inflate_fast(z_streamp strm, unsigned start); 12 | -------------------------------------------------------------------------------- /compat/zlib/msdos/Makefile.emx: -------------------------------------------------------------------------------- 1 | # Makefile for zlib. Modified for emx 0.9c by Chr. Spieler, 6/17/98. 2 | # Copyright (C) 1995-1998 Jean-loup Gailly. 3 | # For conditions of distribution and use, see copyright notice in zlib.h 4 | 5 | # To compile, or to compile and test, type: 6 | # 7 | # make -fmakefile.emx; make test -fmakefile.emx 8 | # 9 | 10 | CC=gcc 11 | 12 | #CFLAGS=-MMD -O 13 | #CFLAGS=-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7 14 | #CFLAGS=-MMD -g -DZLIB_DEBUG 15 | CFLAGS=-MMD -O3 $(BUTT) -Wall -Wwrite-strings -Wpointer-arith -Wconversion \ 16 | -Wstrict-prototypes -Wmissing-prototypes 17 | 18 | # If cp.exe is available, replace "copy /Y" with "cp -fp" . 19 | CP=copy /Y 20 | # If gnu install.exe is available, replace $(CP) with ginstall. 21 | INSTALL=$(CP) 22 | # The default value of RM is "rm -f." If "rm.exe" is found, comment out: 23 | RM=del 24 | LDLIBS=-L. -lzlib 25 | LD=$(CC) -s -o 26 | LDSHARED=$(CC) 27 | 28 | INCL=zlib.h zconf.h 29 | LIBS=zlib.a 30 | 31 | AR=ar rcs 32 | 33 | prefix=/usr/local 34 | exec_prefix = $(prefix) 35 | 36 | OBJS = adler32.o compress.o crc32.o gzclose.o gzlib.o gzread.o gzwrite.o \ 37 | uncompr.o deflate.o trees.o zutil.o inflate.o infback.o inftrees.o inffast.o 38 | 39 | TEST_OBJS = example.o minigzip.o 40 | 41 | all: example.exe minigzip.exe 42 | 43 | test: all 44 | ./example 45 | echo hello world | .\minigzip | .\minigzip -d 46 | 47 | %.o : %.c 48 | $(CC) $(CFLAGS) -c $< -o $@ 49 | 50 | zlib.a: $(OBJS) 51 | $(AR) $@ $(OBJS) 52 | 53 | %.exe : %.o $(LIBS) 54 | $(LD) $@ $< $(LDLIBS) 55 | 56 | 57 | .PHONY : clean 58 | 59 | clean: 60 | $(RM) *.d 61 | $(RM) *.o 62 | $(RM) *.exe 63 | $(RM) zlib.a 64 | $(RM) foo.gz 65 | 66 | DEPS := $(wildcard *.d) 67 | ifneq ($(DEPS),) 68 | include $(DEPS) 69 | endif 70 | -------------------------------------------------------------------------------- /compat/zlib/nintendods/README: -------------------------------------------------------------------------------- 1 | This Makefile requires devkitARM (http://www.devkitpro.org/category/devkitarm/) and works inside "contrib/nds". It is based on a devkitARM template. 2 | 3 | Eduardo Costa 4 | January 3, 2009 5 | 6 | -------------------------------------------------------------------------------- /compat/zlib/old/Makefile.emx: -------------------------------------------------------------------------------- 1 | # Makefile for zlib. Modified for emx/rsxnt by Chr. Spieler, 6/16/98. 2 | # Copyright (C) 1995-1998 Jean-loup Gailly. 3 | # For conditions of distribution and use, see copyright notice in zlib.h 4 | 5 | # To compile, or to compile and test, type: 6 | # 7 | # make -fmakefile.emx; make test -fmakefile.emx 8 | # 9 | 10 | CC=gcc -Zwin32 11 | 12 | #CFLAGS=-MMD -O 13 | #CFLAGS=-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7 14 | #CFLAGS=-MMD -g -DZLIB_DEBUG 15 | CFLAGS=-MMD -O3 $(BUTT) -Wall -Wwrite-strings -Wpointer-arith -Wconversion \ 16 | -Wstrict-prototypes -Wmissing-prototypes 17 | 18 | # If cp.exe is available, replace "copy /Y" with "cp -fp" . 19 | CP=copy /Y 20 | # If gnu install.exe is available, replace $(CP) with ginstall. 21 | INSTALL=$(CP) 22 | # The default value of RM is "rm -f." If "rm.exe" is found, comment out: 23 | RM=del 24 | LDLIBS=-L. -lzlib 25 | LD=$(CC) -s -o 26 | LDSHARED=$(CC) 27 | 28 | INCL=zlib.h zconf.h 29 | LIBS=zlib.a 30 | 31 | AR=ar rcs 32 | 33 | prefix=/usr/local 34 | exec_prefix = $(prefix) 35 | 36 | OBJS = adler32.o compress.o crc32.o deflate.o gzclose.o gzlib.o gzread.o \ 37 | gzwrite.o infback.o inffast.o inflate.o inftrees.o trees.o uncompr.o zutil.o 38 | 39 | TEST_OBJS = example.o minigzip.o 40 | 41 | all: example.exe minigzip.exe 42 | 43 | test: all 44 | ./example 45 | echo hello world | .\minigzip | .\minigzip -d 46 | 47 | %.o : %.c 48 | $(CC) $(CFLAGS) -c $< -o $@ 49 | 50 | zlib.a: $(OBJS) 51 | $(AR) $@ $(OBJS) 52 | 53 | %.exe : %.o $(LIBS) 54 | $(LD) $@ $< $(LDLIBS) 55 | 56 | 57 | .PHONY : clean 58 | 59 | clean: 60 | $(RM) *.d 61 | $(RM) *.o 62 | $(RM) *.exe 63 | $(RM) zlib.a 64 | $(RM) foo.gz 65 | 66 | DEPS := $(wildcard *.d) 67 | ifneq ($(DEPS),) 68 | include $(DEPS) 69 | endif 70 | -------------------------------------------------------------------------------- /compat/zlib/old/README: -------------------------------------------------------------------------------- 1 | This directory contains files that have not been updated for zlib 1.2.x 2 | 3 | (Volunteers are encouraged to help clean this up. Thanks.) 4 | -------------------------------------------------------------------------------- /compat/zlib/old/descrip.mms: -------------------------------------------------------------------------------- 1 | # descrip.mms: MMS description file for building zlib on VMS 2 | # written by Martin P.J. Zinser 3 | 4 | cc_defs = 5 | c_deb = 6 | 7 | .ifdef __DECC__ 8 | pref = /prefix=all 9 | .endif 10 | 11 | OBJS = adler32.obj, compress.obj, crc32.obj, gzio.obj, uncompr.obj,\ 12 | deflate.obj, trees.obj, zutil.obj, inflate.obj, infblock.obj,\ 13 | inftrees.obj, infcodes.obj, infutil.obj, inffast.obj 14 | 15 | CFLAGS= $(C_DEB) $(CC_DEFS) $(PREF) 16 | 17 | all : example.exe minigzip.exe 18 | @ write sys$output " Example applications available" 19 | libz.olb : libz.olb($(OBJS)) 20 | @ write sys$output " libz available" 21 | 22 | example.exe : example.obj libz.olb 23 | link example,libz.olb/lib 24 | 25 | minigzip.exe : minigzip.obj libz.olb 26 | link minigzip,libz.olb/lib,x11vms:xvmsutils.olb/lib 27 | 28 | clean : 29 | delete *.obj;*,libz.olb;* 30 | 31 | 32 | # Other dependencies. 33 | adler32.obj : zutil.h zlib.h zconf.h 34 | compress.obj : zlib.h zconf.h 35 | crc32.obj : zutil.h zlib.h zconf.h 36 | deflate.obj : deflate.h zutil.h zlib.h zconf.h 37 | example.obj : zlib.h zconf.h 38 | gzio.obj : zutil.h zlib.h zconf.h 39 | infblock.obj : zutil.h zlib.h zconf.h infblock.h inftrees.h infcodes.h infutil.h 40 | infcodes.obj : zutil.h zlib.h zconf.h inftrees.h infutil.h infcodes.h inffast.h 41 | inffast.obj : zutil.h zlib.h zconf.h inftrees.h infutil.h inffast.h 42 | inflate.obj : zutil.h zlib.h zconf.h infblock.h 43 | inftrees.obj : zutil.h zlib.h zconf.h inftrees.h 44 | infutil.obj : zutil.h zlib.h zconf.h inftrees.h infutil.h 45 | minigzip.obj : zlib.h zconf.h 46 | trees.obj : deflate.h zutil.h zlib.h zconf.h 47 | uncompr.obj : zlib.h zconf.h 48 | zutil.obj : zutil.h zlib.h zconf.h 49 | -------------------------------------------------------------------------------- /compat/zlib/old/os2/zlib.def: -------------------------------------------------------------------------------- 1 | ; 2 | ; Slightly modified version of ../nt/zlib.dnt :-) 3 | ; 4 | 5 | LIBRARY Z 6 | DESCRIPTION "Zlib compression library for OS/2" 7 | CODE PRELOAD MOVEABLE DISCARDABLE 8 | DATA PRELOAD MOVEABLE MULTIPLE 9 | 10 | EXPORTS 11 | adler32 12 | compress 13 | crc32 14 | deflate 15 | deflateCopy 16 | deflateEnd 17 | deflateInit2_ 18 | deflateInit_ 19 | deflateParams 20 | deflateReset 21 | deflateSetDictionary 22 | gzclose 23 | gzdopen 24 | gzerror 25 | gzflush 26 | gzopen 27 | gzread 28 | gzwrite 29 | inflate 30 | inflateEnd 31 | inflateInit2_ 32 | inflateInit_ 33 | inflateReset 34 | inflateSetDictionary 35 | inflateSync 36 | uncompress 37 | zlibVersion 38 | gzprintf 39 | gzputc 40 | gzgetc 41 | gzseek 42 | gzrewind 43 | gztell 44 | gzeof 45 | gzsetparams 46 | zError 47 | inflateSyncPoint 48 | get_crc_table 49 | compress2 50 | gzputs 51 | gzgets 52 | -------------------------------------------------------------------------------- /compat/zlib/os400/README400: -------------------------------------------------------------------------------- 1 | ZLIB version 1.3.1 for OS/400 installation instructions 2 | 3 | 1) Download and unpack the zlib tarball to some IFS directory. 4 | (i.e.: /path/to/the/zlib/ifs/source/directory) 5 | 6 | If the installed IFS command supports gzip format, this is straightforward, 7 | else you have to unpack first to some directory on a system supporting it, 8 | then move the whole directory to the IFS via the network (via SMB or FTP). 9 | 10 | 2) Edit the configuration parameters in the compilation script. 11 | 12 | EDTF STMF('/path/to/the/zlib/ifs/source/directory/os400/make.sh') 13 | 14 | Tune the parameters according to your needs if not matching the defaults. 15 | Save the file and exit after edition. 16 | 17 | 3) Enter qshell, then work in the zlib OS/400 specific directory. 18 | 19 | QSH 20 | cd /path/to/the/zlib/ifs/source/directory/os400 21 | 22 | 4) Compile and install 23 | 24 | sh make.sh 25 | 26 | The script will: 27 | - create the libraries, objects and IFS directories for the zlib environment, 28 | - compile all modules, 29 | - create a service program, 30 | - create a static and a dynamic binding directory, 31 | - install header files for C/C++ and for ILE/RPG, both for compilation in 32 | DB2 and IFS environments. 33 | 34 | That's all. 35 | 36 | 37 | Notes: For OS/400 ILE RPG programmers, a /copy member defining the ZLIB 38 | API prototypes for ILE RPG can be found in ZLIB/H(ZLIB.INC). 39 | In the ILE environment, the same definitions are available from 40 | file zlib.inc located in the same IFS include directory as the 41 | C/C++ header files. 42 | Please read comments in this member for more information. 43 | 44 | Remember that most foreign textual data are ASCII coded: this 45 | implementation does not handle conversion from/to ASCII, so 46 | text data code conversions must be done explicitly. 47 | 48 | Mainly for the reason above, always open zipped files in binary mode. 49 | -------------------------------------------------------------------------------- /compat/zlib/watcom/watcom_f.mak: -------------------------------------------------------------------------------- 1 | # Makefile for zlib 2 | # OpenWatcom flat model 3 | # Last updated: 28-Dec-2005 4 | 5 | # To use, do "wmake -f watcom_f.mak" 6 | 7 | C_SOURCE = adler32.c compress.c crc32.c deflate.c & 8 | gzclose.c gzlib.c gzread.c gzwrite.c & 9 | infback.c inffast.c inflate.c inftrees.c & 10 | trees.c uncompr.c zutil.c 11 | 12 | OBJS = adler32.obj compress.obj crc32.obj deflate.obj & 13 | gzclose.obj gzlib.obj gzread.obj gzwrite.obj & 14 | infback.obj inffast.obj inflate.obj inftrees.obj & 15 | trees.obj uncompr.obj zutil.obj 16 | 17 | CC = wcc386 18 | LINKER = wcl386 19 | CFLAGS = -zq -mf -3r -fp3 -s -bt=dos -oilrtfm -fr=nul -wx 20 | ZLIB_LIB = zlib_f.lib 21 | 22 | .C.OBJ: 23 | $(CC) $(CFLAGS) $[@ 24 | 25 | all: $(ZLIB_LIB) example.exe minigzip.exe 26 | 27 | $(ZLIB_LIB): $(OBJS) 28 | wlib -b -c $(ZLIB_LIB) -+adler32.obj -+compress.obj -+crc32.obj 29 | wlib -b -c $(ZLIB_LIB) -+gzclose.obj -+gzlib.obj -+gzread.obj -+gzwrite.obj 30 | wlib -b -c $(ZLIB_LIB) -+deflate.obj -+infback.obj 31 | wlib -b -c $(ZLIB_LIB) -+inffast.obj -+inflate.obj -+inftrees.obj 32 | wlib -b -c $(ZLIB_LIB) -+trees.obj -+uncompr.obj -+zutil.obj 33 | 34 | example.exe: $(ZLIB_LIB) example.obj 35 | $(LINKER) -ldos32a -fe=example.exe example.obj $(ZLIB_LIB) 36 | 37 | minigzip.exe: $(ZLIB_LIB) minigzip.obj 38 | $(LINKER) -ldos32a -fe=minigzip.exe minigzip.obj $(ZLIB_LIB) 39 | 40 | clean: .SYMBOLIC 41 | del *.obj 42 | del $(ZLIB_LIB) 43 | @echo Cleaning done 44 | -------------------------------------------------------------------------------- /compat/zlib/watcom/watcom_l.mak: -------------------------------------------------------------------------------- 1 | # Makefile for zlib 2 | # OpenWatcom large model 3 | # Last updated: 28-Dec-2005 4 | 5 | # To use, do "wmake -f watcom_l.mak" 6 | 7 | C_SOURCE = adler32.c compress.c crc32.c deflate.c & 8 | gzclose.c gzlib.c gzread.c gzwrite.c & 9 | infback.c inffast.c inflate.c inftrees.c & 10 | trees.c uncompr.c zutil.c 11 | 12 | OBJS = adler32.obj compress.obj crc32.obj deflate.obj & 13 | gzclose.obj gzlib.obj gzread.obj gzwrite.obj & 14 | infback.obj inffast.obj inflate.obj inftrees.obj & 15 | trees.obj uncompr.obj zutil.obj 16 | 17 | CC = wcc 18 | LINKER = wcl 19 | CFLAGS = -zq -ml -s -bt=dos -oilrtfm -fr=nul -wx 20 | ZLIB_LIB = zlib_l.lib 21 | 22 | .C.OBJ: 23 | $(CC) $(CFLAGS) $[@ 24 | 25 | all: $(ZLIB_LIB) example.exe minigzip.exe 26 | 27 | $(ZLIB_LIB): $(OBJS) 28 | wlib -b -c $(ZLIB_LIB) -+adler32.obj -+compress.obj -+crc32.obj 29 | wlib -b -c $(ZLIB_LIB) -+gzclose.obj -+gzlib.obj -+gzread.obj -+gzwrite.obj 30 | wlib -b -c $(ZLIB_LIB) -+deflate.obj -+infback.obj 31 | wlib -b -c $(ZLIB_LIB) -+inffast.obj -+inflate.obj -+inftrees.obj 32 | wlib -b -c $(ZLIB_LIB) -+trees.obj -+uncompr.obj -+zutil.obj 33 | 34 | example.exe: $(ZLIB_LIB) example.obj 35 | $(LINKER) -fe=example.exe example.obj $(ZLIB_LIB) 36 | 37 | minigzip.exe: $(ZLIB_LIB) minigzip.obj 38 | $(LINKER) -fe=minigzip.exe minigzip.obj $(ZLIB_LIB) 39 | 40 | clean: .SYMBOLIC 41 | del *.obj 42 | del $(ZLIB_LIB) 43 | @echo Cleaning done 44 | -------------------------------------------------------------------------------- /compat/zlib/win32/VisualC.txt: -------------------------------------------------------------------------------- 1 | 2 | To build zlib using the Microsoft Visual C++ environment, 3 | use the appropriate project from the contrib/vstudio/ directory. 4 | -------------------------------------------------------------------------------- /compat/zlib/win32/zlib1.rc: -------------------------------------------------------------------------------- 1 | #include 2 | #include "../zlib.h" 3 | 4 | #ifdef GCC_WINDRES 5 | VS_VERSION_INFO VERSIONINFO 6 | #else 7 | VS_VERSION_INFO VERSIONINFO MOVEABLE IMPURE LOADONCALL DISCARDABLE 8 | #endif 9 | FILEVERSION ZLIB_VER_MAJOR,ZLIB_VER_MINOR,ZLIB_VER_REVISION,0 10 | PRODUCTVERSION ZLIB_VER_MAJOR,ZLIB_VER_MINOR,ZLIB_VER_REVISION,0 11 | FILEFLAGSMASK VS_FFI_FILEFLAGSMASK 12 | #ifdef _DEBUG 13 | FILEFLAGS 1 14 | #else 15 | FILEFLAGS 0 16 | #endif 17 | FILEOS VOS__WINDOWS32 18 | FILETYPE VFT_DLL 19 | FILESUBTYPE 0 // not used 20 | BEGIN 21 | BLOCK "StringFileInfo" 22 | BEGIN 23 | BLOCK "040904E4" 24 | //language ID = U.S. English, char set = Windows, Multilingual 25 | BEGIN 26 | VALUE "FileDescription", "zlib data compression library\0" 27 | VALUE "FileVersion", ZLIB_VERSION "\0" 28 | VALUE "InternalName", "zlib1.dll\0" 29 | VALUE "LegalCopyright", "(C) 1995-2022 Jean-loup Gailly & Mark Adler\0" 30 | VALUE "OriginalFilename", "zlib1.dll\0" 31 | VALUE "ProductName", "zlib\0" 32 | VALUE "ProductVersion", ZLIB_VERSION "\0" 33 | VALUE "Comments", "For more information visit http://www.zlib.net/\0" 34 | END 35 | END 36 | BLOCK "VarFileInfo" 37 | BEGIN 38 | VALUE "Translation", 0x0409, 1252 39 | END 40 | END 41 | -------------------------------------------------------------------------------- /compat/zlib/zlib.3.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drhsqlite/fossil-mirror/55bbd5a5163ed2e28670d95395958d6c1e2a4fc4/compat/zlib/zlib.3.pdf -------------------------------------------------------------------------------- /compat/zlib/zlib.map: -------------------------------------------------------------------------------- 1 | ZLIB_1.2.0 { 2 | global: 3 | compressBound; 4 | deflateBound; 5 | inflateBack; 6 | inflateBackEnd; 7 | inflateBackInit_; 8 | inflateCopy; 9 | local: 10 | deflate_copyright; 11 | inflate_copyright; 12 | inflate_fast; 13 | inflate_table; 14 | zcalloc; 15 | zcfree; 16 | z_errmsg; 17 | gz_error; 18 | gz_intmax; 19 | _*; 20 | }; 21 | 22 | ZLIB_1.2.0.2 { 23 | gzclearerr; 24 | gzungetc; 25 | zlibCompileFlags; 26 | } ZLIB_1.2.0; 27 | 28 | ZLIB_1.2.0.8 { 29 | deflatePrime; 30 | } ZLIB_1.2.0.2; 31 | 32 | ZLIB_1.2.2 { 33 | adler32_combine; 34 | crc32_combine; 35 | deflateSetHeader; 36 | inflateGetHeader; 37 | } ZLIB_1.2.0.8; 38 | 39 | ZLIB_1.2.2.3 { 40 | deflateTune; 41 | gzdirect; 42 | } ZLIB_1.2.2; 43 | 44 | ZLIB_1.2.2.4 { 45 | inflatePrime; 46 | } ZLIB_1.2.2.3; 47 | 48 | ZLIB_1.2.3.3 { 49 | adler32_combine64; 50 | crc32_combine64; 51 | gzopen64; 52 | gzseek64; 53 | gztell64; 54 | inflateUndermine; 55 | } ZLIB_1.2.2.4; 56 | 57 | ZLIB_1.2.3.4 { 58 | inflateReset2; 59 | inflateMark; 60 | } ZLIB_1.2.3.3; 61 | 62 | ZLIB_1.2.3.5 { 63 | gzbuffer; 64 | gzoffset; 65 | gzoffset64; 66 | gzclose_r; 67 | gzclose_w; 68 | } ZLIB_1.2.3.4; 69 | 70 | ZLIB_1.2.5.1 { 71 | deflatePending; 72 | } ZLIB_1.2.3.5; 73 | 74 | ZLIB_1.2.5.2 { 75 | deflateResetKeep; 76 | gzgetc_; 77 | inflateResetKeep; 78 | } ZLIB_1.2.5.1; 79 | 80 | ZLIB_1.2.7.1 { 81 | inflateGetDictionary; 82 | gzvprintf; 83 | } ZLIB_1.2.5.2; 84 | 85 | ZLIB_1.2.9 { 86 | inflateCodesUsed; 87 | inflateValidate; 88 | uncompress2; 89 | gzfread; 90 | gzfwrite; 91 | deflateGetDictionary; 92 | adler32_z; 93 | crc32_z; 94 | } ZLIB_1.2.7.1; 95 | 96 | ZLIB_1.2.12 { 97 | crc32_combine_gen; 98 | crc32_combine_gen64; 99 | crc32_combine_op; 100 | } ZLIB_1.2.9; 101 | -------------------------------------------------------------------------------- /compat/zlib/zlib.pc.cmakein: -------------------------------------------------------------------------------- 1 | prefix=@CMAKE_INSTALL_PREFIX@ 2 | exec_prefix=@CMAKE_INSTALL_PREFIX@ 3 | libdir=@INSTALL_LIB_DIR@ 4 | sharedlibdir=@INSTALL_LIB_DIR@ 5 | includedir=@INSTALL_INC_DIR@ 6 | 7 | Name: zlib 8 | Description: zlib compression library 9 | Version: @VERSION@ 10 | 11 | Requires: 12 | Libs: -L${libdir} -L${sharedlibdir} -lz 13 | Cflags: -I${includedir} 14 | -------------------------------------------------------------------------------- /compat/zlib/zlib.pc.in: -------------------------------------------------------------------------------- 1 | prefix=@prefix@ 2 | exec_prefix=@exec_prefix@ 3 | libdir=@libdir@ 4 | sharedlibdir=@sharedlibdir@ 5 | includedir=@includedir@ 6 | 7 | Name: zlib 8 | Description: zlib compression library 9 | Version: @VERSION@ 10 | 11 | Requires: 12 | Libs: -L${libdir} -L${sharedlibdir} -lz 13 | Cflags: -I${includedir} 14 | -------------------------------------------------------------------------------- /configure: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | dir="`dirname "$0"`/autosetup" 3 | #@@INITCHECK@@# 4 | WRAPPER="$0"; export WRAPPER; exec "`"$dir/autosetup-find-tclsh"`" "$dir/autosetup" "$@" 5 | -------------------------------------------------------------------------------- /extsrc/pikchr.wasm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drhsqlite/fossil-mirror/55bbd5a5163ed2e28670d95395958d6c1e2a4fc4/extsrc/pikchr.wasm -------------------------------------------------------------------------------- /manifest.uuid: -------------------------------------------------------------------------------- 1 | c953e01c9e0155b081ae2d38b851aa1e527da37c30ee7b54e39fb3f1ffd4ca9d 2 | -------------------------------------------------------------------------------- /setup/fossil.iss: -------------------------------------------------------------------------------- 1 | ; 2 | ; Copyright (c) 2014 D. Richard Hipp 3 | ; 4 | ; This program is free software; you can redistribute it and/or 5 | ; modify it under the terms of the Simplified BSD License (also 6 | ; known as the "2-Clause License" or "FreeBSD License".) 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. 11 | ; 12 | ; Author contact information: 13 | ; drh@hwaci.com 14 | ; http://www.hwaci.com/drh/ 15 | ; 16 | 17 | [Setup] 18 | ArchitecturesAllowed=x86 x64 19 | AlwaysShowComponentsList=false 20 | AppCopyright=Copyright (c) D. Richard Hipp. All rights reserved. 21 | AppID={{f1c25a1f-3954-4e1a-ac36-4314c52f057c} 22 | AppName=Fossil 23 | AppPublisher=Fossil Development Team 24 | AppPublisherURL=https://fossil-scm.org/ 25 | AppSupportURL=https://fossil-scm.org/ 26 | AppUpdatesURL=https://fossil-scm.org/ 27 | AppVerName=Fossil v{#AppVersion} 28 | AppVersion={#AppVersion} 29 | AppComments=Simple, high-reliability, distributed software configuration management system. 30 | AppReadmeFile=https://fossil-scm.org/home/doc/tip/www/quickstart.wiki 31 | DefaultDirName={pf}\Fossil 32 | DefaultGroupName=Fossil 33 | OutputBaseFilename=fossil-win32-{#AppVersion} 34 | OutputManifestFile=fossil-win32-{#AppVersion}-manifest.txt 35 | SetupLogging=true 36 | UninstallFilesDir={app}\uninstall 37 | VersionInfoVersion={#AppVersion} 38 | 39 | [Components] 40 | Name: Application; Description: Core application.; Types: custom compact full; Flags: fixed 41 | 42 | [Dirs] 43 | Name: {app}\bin 44 | 45 | [Files] 46 | Components: Application; Source: ..\fossil.exe; DestDir: {app}\bin; Flags: restartreplace uninsrestartdelete 47 | 48 | [Registry] 49 | Components: Application; Root: HKLM32; SubKey: Software\Fossil; ValueType: string; ValueName: Install_Dir; ValueData: {app}; Flags: uninsdeletekeyifempty uninsdeletevalue 50 | -------------------------------------------------------------------------------- /setup/fossil.nsi: -------------------------------------------------------------------------------- 1 | ; example2.nsi 2 | ; 3 | ; This script is based on example1.nsi, but adds uninstall support 4 | ; and (optionally) start menu shortcuts. 5 | ; 6 | ; It will install notepad.exe into a directory that the user selects, 7 | ; 8 | 9 | ; The name of the installer 10 | Name "Fossil" 11 | 12 | ; The file to write 13 | OutFile "fossil-setup.exe" 14 | 15 | ; The default installation directory 16 | InstallDir $PROGRAMFILES\Fossil 17 | ; Registry key to check for directory (so if you install again, it will 18 | ; overwrite the old one automatically) 19 | InstallDirRegKey HKLM SOFTWARE\Fossil "Install_Dir" 20 | 21 | ; The text to prompt the user to enter a directory 22 | ComponentText "This will install fossil on your computer." 23 | ; The text to prompt the user to enter a directory 24 | DirText "Choose a directory to install in to:" 25 | 26 | ; The stuff to install 27 | Section "Fossil (required)" 28 | ; Set output path to the installation directory. 29 | SetOutPath $INSTDIR 30 | ; Put file there 31 | File "..\fossil.exe" 32 | ; Write the installation path into the registry 33 | WriteRegStr HKLM SOFTWARE\Fossil "Install_Dir" "$INSTDIR" 34 | ; Write the uninstall keys for Windows 35 | WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Fossil" "DisplayName" "Fossil (remove only)" 36 | WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Fossil" "UninstallString" '"$INSTDIR\uninstall.exe"' 37 | WriteUninstaller "uninstall.exe" 38 | SectionEnd 39 | 40 | 41 | ; uninstall stuff 42 | 43 | UninstallText "This will uninstall fossil. Hit next to continue." 44 | 45 | ; special uninstall section. 46 | Section "Uninstall" 47 | ; remove registry keys 48 | DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Fossil" 49 | DeleteRegKey HKLM SOFTWARE\Fossil 50 | ; remove files 51 | Delete $INSTDIR\fossil.exe 52 | ; MUST REMOVE UNINSTALLER, too 53 | Delete $INSTDIR\uninstall.exe 54 | ; remove shortcuts, if any. 55 | RMDir "$SMPROGRAMS\Fossil" 56 | RMDir "$INSTDIR" 57 | SectionEnd 58 | 59 | ; eof 60 | -------------------------------------------------------------------------------- /skins/ardoise/README.md: -------------------------------------------------------------------------------- 1 | ## Ardoise theme 2 | 3 | A black and grey skin ("Ardoise" is the french word for slate). 4 | 5 | The skin includes custom icons for the file browser and the WYSIWYG editor, which are embedded directly in the css as base64 blobs. For convenience, they are also provided as standalone files in the images subdirectory. 6 | 7 | This skin was contributed by Antoine Chavasse. 8 | 9 | This theme is loosely based upon, and still contains some elements from the Blitz theme by James Moger. 10 | 11 | This theme embeds & uses a modified copy of [Normalize 3.0.2](https://necolas.github.io/normalize.css/) which is distributed under an [MIT license](https://github.com/necolas/normalize.css/blob/master/LICENSE.md). 12 | 13 | This theme embeds & uses a modified copy of [Skeleton](http://getskeleton.com) which is distributed under an [MIT license](https://github.com/dhg/Skeleton/blob/master/LICENSE.md). 14 | 15 | The sass version of Skeleton used in this project was made by [Seth Coelen](https://github.com/whatsnewsaes). 16 | -------------------------------------------------------------------------------- /skins/ardoise/details.txt: -------------------------------------------------------------------------------- 1 | timeline-arrowheads: 0 2 | timeline-circle-nodes: 1 3 | timeline-color-graph-lines: 1 4 | white-foreground: 1 5 | pikchr-background: 0x1d2021 6 | -------------------------------------------------------------------------------- /skins/ardoise/footer.txt: -------------------------------------------------------------------------------- 1 | 2 | if {[string first artifact $current_page] == 0 || [string first hexdump $current_page] == 0} { 3 | html "" 4 | } 5 | 6 | 7 | 8 | 16 | -------------------------------------------------------------------------------- /skins/ardoise/header.txt: -------------------------------------------------------------------------------- 1 |
2 |
3 | 12 |
13 |

$ 14 | 15 | if {[anycap jor]} { 16 | html "" 17 | } 18 | 19 |  $</small></h1> 20 | </div> 21 | 22 | <!-- Main Menu --> 23 | <nav class="mainmenu" title="Main Menu"> 24 | <ul> 25 | <th1> 26 | html "<li><a id='hbbtn' href='$home/sitemap' aria-label='Site Map'>☰</a></li>\n" 27 | builtin_request_js hbmenu.js 28 | set once 1 29 | foreach {name url expr class} $mainmenu { 30 | if {![capexpr $expr]} continue 31 | if {$once && [string match $url\[/?#\]* /$current_page/]} { 32 | set class "$class active" 33 | set once 0 34 | } 35 | html "<li class='$class'>" 36 | if {[string match /* $url]} {set url $home$url} 37 | html "<a href='$url'>$name</a></li>\n" 38 | } 39 | </th1> 40 | </ul> 41 | </nav> 42 | <nav id="hbdrop" class='hbdrop' title="sitemap"></nav> 43 | </div> <!-- end div container --> 44 | </header> 45 | <div class="middle max-full-width"> 46 | <div class="container"> 47 | <th1> 48 | if {[string first artifact $current_page] == 0 || [string first hexdump $current_page] == 0} { 49 | html "<div class=\"artifact_content\">" 50 | } 51 | </th1> 52 | -------------------------------------------------------------------------------- /skins/ardoise/images/active.svg: -------------------------------------------------------------------------------- 1 | <svg xmlns="http://www.w3.org/2000/svg" width="17" height="9" viewBox="0 0 4.498 2.381"><path d="M4.233 2.381H.265l.998-1.058.986-1.058.998 1.062z" fill="#ff8000"/></svg> -------------------------------------------------------------------------------- /skins/ardoise/images/addindent.svg: -------------------------------------------------------------------------------- 1 | <svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 5.821 5.821"><path d="M1.058 1.323h3.704M2.381 2.381h2.382M2.381 3.44h2.382M1.058 4.498h3.704" fill="none" stroke="#aaa" stroke-width=".529"/><path d="M2.117 2.91L.794 2.117v1.587z" fill="#66a8c7"/></svg> -------------------------------------------------------------------------------- /skins/ardoise/images/addindent_h.svg: -------------------------------------------------------------------------------- 1 | <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 5.821 5.821" height="22" width="22"><rect width="5.821" height="5.821" y="-.001" rx=".265" ry=".265" fill="#555"/><path d="M1.058 1.322h3.704M2.381 2.38h2.382M2.381 3.439h2.382M1.058 4.497h3.704" fill="none" stroke="#ddd" stroke-width=".529"/><path d="M2.117 2.91L.794 2.116v1.587z" fill="#ff8000"/></svg> -------------------------------------------------------------------------------- /skins/ardoise/images/blist.svg: -------------------------------------------------------------------------------- 1 | <svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 5.821 5.821"><path d="M2.117 1.322h2.91M2.117 2.91h2.91m-2.91 1.587h2.91" fill="none" stroke="#aaa" stroke-width=".529"/><circle r=".265" cy="1.322" cx="1.323" fill="#66a8c7"/><circle r=".265" cy="2.91" cx="1.323" fill="#66a8c7"/><circle r=".265" cy="4.497" cx="1.323" fill="#66a8c7"/></svg> -------------------------------------------------------------------------------- /skins/ardoise/images/blist_h.svg: -------------------------------------------------------------------------------- 1 | <svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 5.821 5.821"><rect ry=".265" rx=".265" y="-.001" height="5.821" width="5.821" fill="#555"/><path d="M2.117 1.322h2.91M2.117 2.91h2.91m-2.91 1.587h2.91" fill="none" stroke="#ddd" stroke-width=".529"/><circle r=".265" cy="1.322" cx="1.323" fill="#ff8000"/><circle r=".265" cy="2.91" cx="1.323" fill="#ff8000"/><circle r=".265" cy="4.497" cx="1.323" fill="#ff8000"/></svg> -------------------------------------------------------------------------------- /skins/ardoise/images/bold.svg: -------------------------------------------------------------------------------- 1 | <svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 5.821 5.821"><path d="M1.866 1.349h.98q.67 0 .971.191.304.19.304.606 0 .282-.134.463-.131.18-.35.217v.022q.299.066.43.25.133.182.133.486 0 .43-.312.672-.31.241-.844.241H1.866zm.668 1.247h.387q.272 0 .392-.084.123-.084.123-.278 0-.181-.134-.259-.13-.08-.417-.08h-.351zm0 .53v.82h.435q.275 0 .407-.106.131-.105.131-.323 0-.392-.56-.392z" fill="#aaa"/></svg> -------------------------------------------------------------------------------- /skins/ardoise/images/bold_h.svg: -------------------------------------------------------------------------------- 1 | <svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 5.821 5.821"><rect ry=".265" rx=".265" y="-.001" height="5.821" width="5.821" fill="#555"/><path d="M1.866 1.349h.98q.67 0 .971.191.304.19.304.606 0 .282-.134.463-.131.18-.35.217v.022q.299.066.43.25.133.182.133.486 0 .43-.312.672-.31.241-.844.241H1.866zm.668 1.247h.387q.272 0 .392-.084.123-.084.123-.278 0-.181-.134-.259-.13-.08-.417-.08h-.351zm0 .53v.82h.435q.275 0 .407-.106.131-.105.131-.323 0-.392-.56-.392z" fill="#ddd"/></svg> -------------------------------------------------------------------------------- /skins/ardoise/images/calign.svg: -------------------------------------------------------------------------------- 1 | <svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 5.821 5.821"><path d="M1.058 1.323h3.704m-2.91 1.058H3.97M1.058 3.44h3.704m-2.91 1.058H3.97" fill="none" stroke="#aaa" stroke-width=".529"/></svg> -------------------------------------------------------------------------------- /skins/ardoise/images/calign_h.svg: -------------------------------------------------------------------------------- 1 | <svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 5.821 5.821"><rect ry=".265" rx=".265" y="-.001" height="5.821" width="5.821" fill="#555"/><path d="M1.058 1.322h3.704M1.852 2.38H3.97M1.058 3.439h3.704m-2.91 1.058H3.97" fill="none" stroke="#ddd" stroke-width=".529"/></svg> -------------------------------------------------------------------------------- /skins/ardoise/images/clrfmt.svg: -------------------------------------------------------------------------------- 1 | <svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 5.821 5.821"><path d="M1.72 2.346l-.172.317q-.034.064-.051.112-.016.049-.016.086 0 .066.048.097.049.03.15.03h.07l-.039.187H.794l.038-.188h.074q.048 0 .084-.01.038-.012.072-.043.035-.031.071-.085.038-.053.086-.136L2.416.657H2.9l.296 2.077q.009.055.022.102.016.046.04.08.024.033.06.052.038.02.093.02h.064l-.038.187H2.272l.038-.188h.08q.114 0 .181-.034.068-.036.068-.114 0-.029-.002-.057l-.005-.055-.054-.38zm.77-.807q-.008-.078-.017-.145L2.46 1.26l-.01-.124-.005-.124q-.026.064-.052.12l-.055.11-.065.118-.081.145-.35.625h.713zm2.238 3.753l-.128-.42h-.642l-.128.42h-.403l.622-1.77h.457l.625 1.77zm-.217-.733l-.2-.646q-.022-.074-.031-.118-.04.155-.228.764z" fill="#66a8c7"/><path d="M1.323 3.704c0 1.059 1.323.764 1.323.764" fill="none" stroke="#aaa" stroke-width=".529" stroke-linecap="square"/><path d="M2.381 3.704v1.588l1.059-.794z" fill="#aaa"/></svg> -------------------------------------------------------------------------------- /skins/ardoise/images/clrfmt_h.svg: -------------------------------------------------------------------------------- 1 | <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 5.821 5.821" height="22" width="22"><rect fill="#555" width="5.821" height="5.821" y="-.001" rx=".265" ry=".265"/><path fill="#ff8000" d="M1.72 2.346l-.172.317q-.034.063-.051.112-.016.048-.016.086 0 .065.048.096.049.03.15.03h.07l-.039.187H.794l.038-.188h.074q.048 0 .084-.01.038-.012.072-.043.035-.031.071-.084.038-.054.086-.136L2.416.656H2.9l.296 2.077q.009.055.022.102.016.046.04.08t.06.053q.038.019.093.019h.064l-.038.187H2.272l.038-.187h.08q.114 0 .181-.035.068-.036.068-.114 0-.029-.002-.056l-.005-.055-.054-.381zm.77-.808q-.008-.078-.017-.145l-.014-.133-.01-.124-.005-.124q-.026.064-.052.12l-.055.11-.065.118-.081.145-.35.625h.713zM4.728 5.29L4.6 4.871h-.642l-.128.42h-.403l.622-1.77h.457l.625 1.77zm-.217-.732l-.2-.645q-.022-.075-.031-.119-.04.155-.228.764z"/><path stroke-linecap="square" stroke-width=".529" stroke="#ddd" fill="none" d="M1.323 3.703c0 1.059 1.323.764 1.323.764"/><path fill="#ddd" d="M2.381 3.703v1.588l1.059-.794z"/></svg> -------------------------------------------------------------------------------- /skins/ardoise/images/delindent.svg: -------------------------------------------------------------------------------- 1 | <svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 5.821 5.821"><path d="M1.058 1.323h3.704M2.381 2.381h2.382M2.381 3.44h2.382M1.058 4.498h3.704" fill="none" stroke="#aaa" stroke-width=".529"/><path d="M.53 2.91l1.322-.793v1.587z" fill="#66a8c7"/></svg> -------------------------------------------------------------------------------- /skins/ardoise/images/delindent_h.svg: -------------------------------------------------------------------------------- 1 | <svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 5.821 5.821"><rect ry=".265" rx=".265" y="-.001" height="5.821" width="5.821" fill="#555"/><path d="M1.058 1.322h3.704M2.381 2.38h2.382M2.381 3.439h2.382M1.058 4.497h3.704" fill="none" stroke="#ddd" stroke-width=".529"/><path d="M.53 2.91l1.322-.794v1.587z" fill="#ff8000"/></svg> -------------------------------------------------------------------------------- /skins/ardoise/images/dir.svg: -------------------------------------------------------------------------------- 1 | <svg xmlns="http://www.w3.org/2000/svg" width="20" height="16" viewBox="0 0 5.292 4.233"><path d="M.794.53v3.174h3.704V1.323H2.91V.529z" fill="#1d2021" stroke="#ff8000" stroke-width=".529" stroke-linecap="round" stroke-linejoin="round"/></svg> -------------------------------------------------------------------------------- /skins/ardoise/images/file.svg: -------------------------------------------------------------------------------- 1 | <svg xmlns="http://www.w3.org/2000/svg" width="20" height="16" viewBox="0 0 5.292 4.233"><path d="M1.323.265v3.704h2.646V1.323L2.91.265z" fill="#1d2021" stroke="#ddd" stroke-width=".529" stroke-linejoin="round"/><path d="M2.646.265h.264v1.323h1.06" fill="#1d2021" stroke="#ddd" stroke-width=".529" stroke-linejoin="round"/></svg> -------------------------------------------------------------------------------- /skins/ardoise/images/italic.svg: -------------------------------------------------------------------------------- 1 | <svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 5.821 5.821"><path d="M3.245 4.497H1.852l.077-.379.403-.177.433-2.037-.327-.176.08-.38H3.91l-.08.38-.41.176-.432 2.037.336.177z" fill="#aaa"/></svg> -------------------------------------------------------------------------------- /skins/ardoise/images/italic_h.svg: -------------------------------------------------------------------------------- 1 | <svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 5.821 5.821"><rect ry=".265" rx=".265" y="-.001" height="5.821" width="5.821" fill="#555"/><path d="M3.245 4.497H1.852l.077-.379.403-.177.433-2.037-.327-.176.08-.38H3.91l-.08.38-.41.176-.432 2.037.336.177z" fill="#ddd"/></svg> -------------------------------------------------------------------------------- /skins/ardoise/images/lalign.svg: -------------------------------------------------------------------------------- 1 | <svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 5.821 5.821"><path d="M1.058 1.323h3.704M1.058 2.381h2.91M1.058 3.44h3.704M1.058 4.498h2.91" fill="none" stroke="#aaa" stroke-width=".529"/></svg> -------------------------------------------------------------------------------- /skins/ardoise/images/lalign_h.svg: -------------------------------------------------------------------------------- 1 | <svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 5.821 5.821"><rect ry=".265" rx=".265" y="-.001" height="5.821" width="5.821" fill="#555"/><path d="M1.058 1.322h3.704M1.058 2.38h2.91m-2.91 1.059h3.704M1.058 4.497h2.91" fill="none" stroke="#ddd" stroke-width=".529"/></svg> -------------------------------------------------------------------------------- /skins/ardoise/images/link.svg: -------------------------------------------------------------------------------- 1 | <svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 5.821 5.821"><path d="M1.752 3.969h.793m-.793-2.117h.793M1.752 3.97c-.343 0-.659-.119-.83-.415-.171-.297-.171-.99 0-1.287.171-.296.487-.415.83-.415m2.217 2.116h-.794m.794-2.117h-.794m.794 2.117c.342 0 .658-.119.83-.415.17-.297.17-.99 0-1.287-.172-.296-.488-.415-.83-.415M2.117 2.91h1.587" fill="none" stroke="#aaa" stroke-width=".529"/></svg> -------------------------------------------------------------------------------- /skins/ardoise/images/link_h.svg: -------------------------------------------------------------------------------- 1 | <svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 5.821 5.821"><rect ry=".265" rx=".265" y="-.001" height="5.821" width="5.821" fill="#555"/><path d="M1.752 3.968h.793m-.793-2.117h.793m-.793 2.117c-.343 0-.659-.119-.83-.415-.171-.297-.171-.99 0-1.287.171-.296.487-.415.83-.415m2.217 2.117h-.794m.794-2.117h-.794m.794 2.117c.342 0 .658-.119.83-.415.17-.297.17-.99 0-1.287-.172-.296-.488-.415-.83-.415M2.117 2.91h1.587" fill="none" stroke="#ddd" stroke-width=".529"/></svg> -------------------------------------------------------------------------------- /skins/ardoise/images/nlist.svg: -------------------------------------------------------------------------------- 1 | <svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 5.821 5.821"><path d="M2.117 1.323h2.91M2.117 2.91h2.91m-2.91 1.588h2.91" fill="none" stroke="#aaa" stroke-width=".529"/><path d="M1.523 1.851h-.266v-.729l.002-.12.004-.13q-.066.066-.092.087l-.144.116-.129-.16.406-.323h.219zm.222 1.588h-.88v-.185l.316-.32q.14-.144.183-.199.043-.056.062-.103.02-.047.02-.098 0-.076-.043-.113-.041-.037-.111-.037-.073 0-.142.033-.07.034-.144.096L.86 2.342q.093-.08.154-.112.062-.033.134-.05.072-.018.162-.018.118 0 .208.043t.14.12q.05.078.05.178 0 .087-.03.163-.03.076-.095.156-.064.08-.226.229l-.162.152v.012h.549zm-.049.609q0 .118-.072.201-.071.083-.2.114v.005q.152.019.23.093.079.073.079.198 0 .182-.132.283-.132.101-.376.101-.205 0-.364-.068v-.226q.073.037.161.06.088.023.174.023.132 0 .195-.045t.063-.144q0-.088-.073-.125-.072-.037-.23-.037h-.096v-.205h.097q.147 0 .214-.037.068-.04.068-.132 0-.143-.18-.143-.061 0-.126.02-.064.021-.142.072l-.123-.183q.172-.124.41-.124.196 0 .31.079.113.079.113.22z" fill="#66a8c7"/></svg> -------------------------------------------------------------------------------- /skins/ardoise/images/nlist_h.svg: -------------------------------------------------------------------------------- 1 | <svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 5.821 5.821"><rect ry=".265" rx=".265" y="-.001" height="5.821" width="5.821" fill="#555"/><path d="M2.117 1.322h2.91M2.117 2.91h2.91m-2.91 1.587h2.91" fill="none" stroke="#ddd" stroke-width=".529"/><path d="M1.523 1.851h-.266v-.729l.002-.12.004-.13q-.066.066-.092.087l-.144.116-.129-.16.406-.323h.219zm.222 1.588h-.88v-.185l.316-.32q.14-.144.183-.199.043-.056.062-.103.02-.047.02-.098 0-.076-.043-.113-.041-.037-.111-.037-.073 0-.142.033-.07.034-.144.096L.86 2.342q.093-.08.154-.112.062-.033.134-.05.072-.018.162-.018.118 0 .208.043t.14.12q.05.078.05.178 0 .087-.03.163-.03.076-.095.156-.064.08-.226.229l-.162.152v.012h.549zm-.049.609q0 .118-.072.201-.071.083-.2.114v.005q.152.019.23.093.079.073.079.198 0 .182-.132.283-.132.101-.376.101-.205 0-.364-.068v-.226q.073.037.161.06.088.023.174.023.132 0 .195-.045t.063-.144q0-.088-.073-.125-.072-.037-.23-.037h-.096v-.205h.097q.147 0 .214-.037.068-.04.068-.132 0-.143-.18-.143-.061 0-.126.02-.064.021-.142.072l-.123-.183q.172-.124.41-.124.196 0 .31.079.113.079.113.22z" fill="#ff8000"/></svg> -------------------------------------------------------------------------------- /skins/ardoise/images/quote.svg: -------------------------------------------------------------------------------- 1 | <svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 5.821 5.821"><path d="M3.092 2.509q0-.27.083-.521.082-.253.26-.468.182-.215.467-.384.29-.174.703-.285v.438q-.182.066-.322.132-.141.066-.236.145-.091.074-.14.17-.046.09-.046.214 0 .083.045.133.046.05.116.095l.149.095q.079.045.149.12.07.07.116.182.045.111.045.28 0 .286-.178.435-.173.149-.434.149-.36 0-.57-.248-.207-.248-.207-.682zm-1.77 0q0-.27.083-.521.083-.253.26-.468.182-.215.468-.384.29-.174.703-.285v.438q-.186.066-.327.132-.136.066-.232.145-.09.074-.14.17-.046.09-.046.214 0 .083.046.133.045.05.116.095l.148.095q.079.045.15.12.07.07.115.182.046.111.046.28 0 .286-.178.435-.174.149-.434.149-.36 0-.57-.248-.208-.248-.208-.682z" fill="#66a8c7"/></svg> -------------------------------------------------------------------------------- /skins/ardoise/images/quote_h.svg: -------------------------------------------------------------------------------- 1 | <svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 5.821 5.821"><rect ry=".265" rx=".265" y="-.001" height="5.821" width="5.821" fill="#555"/><path d="M3.092 2.509q0-.27.083-.521.082-.253.26-.468.182-.215.467-.384.29-.174.703-.285v.438q-.182.066-.322.132-.141.066-.236.145-.091.074-.14.17-.046.09-.046.214 0 .083.045.133.046.05.116.095l.149.095q.079.045.149.12.07.07.116.182.045.111.045.28 0 .286-.178.435-.173.149-.434.149-.36 0-.57-.248-.207-.248-.207-.682zm-1.77 0q0-.27.083-.521.083-.253.26-.468.182-.215.468-.384.29-.174.703-.285v.438q-.186.066-.327.132-.136.066-.232.145-.09.074-.14.17-.046.09-.046.214 0 .083.046.133.045.05.116.095l.148.095q.079.045.15.12.07.07.115.182.046.111.046.28 0 .286-.178.435-.174.149-.434.149-.36 0-.57-.248-.208-.248-.208-.682z" fill="#ff8000"/></svg> -------------------------------------------------------------------------------- /skins/ardoise/images/ralign.svg: -------------------------------------------------------------------------------- 1 | <svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 5.821 5.821"><path d="M1.058 1.323h3.704m-2.91 1.058h2.91M1.058 3.44h3.704m-2.91 1.058h2.91" fill="none" stroke="#aaa" stroke-width=".529"/></svg> -------------------------------------------------------------------------------- /skins/ardoise/images/ralign_h.svg: -------------------------------------------------------------------------------- 1 | <svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 5.821 5.821"><rect ry=".265" rx=".265" y="-.001" height="5.821" width="5.821" fill="#555"/><path d="M1.058 1.322h3.704M1.852 2.38h2.91M1.058 3.439h3.704m-2.91 1.058h2.91" fill="none" stroke="#ddd" stroke-width=".529"/></svg> -------------------------------------------------------------------------------- /skins/ardoise/images/redo.svg: -------------------------------------------------------------------------------- 1 | <svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 5.821 5.821"><path d="M3.734 2.007c-.314-.418-.847-.655-1.323-.529s-.946.528-1.058 1.058c-.113.531.154 1.237.529 1.588" fill="none" stroke="#66a8c7" stroke-width=".529" stroke-linecap="square" stroke-linejoin="bevel"/><path d="M4.528 1.19L2.94 2.91h1.588z" fill="#66a8c7"/></svg> -------------------------------------------------------------------------------- /skins/ardoise/images/redo_h.svg: -------------------------------------------------------------------------------- 1 | <svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 5.821 5.821"><rect ry=".265" rx=".265" y="-.001" height="5.821" width="5.821" fill="#555"/><path d="M3.734 2.006c-.314-.417-.847-.655-1.323-.529s-.946.528-1.058 1.059c-.113.53.154 1.236.529 1.587" fill="none" stroke="#ff8000" stroke-width=".529" stroke-linecap="square" stroke-linejoin="bevel"/><path d="M4.528 1.19L2.94 2.91h1.588z" fill="#ff8000"/></svg> -------------------------------------------------------------------------------- /skins/ardoise/images/underline.svg: -------------------------------------------------------------------------------- 1 | <svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 5.821 5.821"><path d="M4.172 1.04v2.038q0 .349-.158.611-.155.263-.45.403-.295.14-.697.14-.607 0-.943-.31-.336-.312-.336-.853V1.041h.665v1.927q0 .364.146.534.147.17.485.17.327 0 .474-.17.148-.172.148-.538V1.04z" fill="#aaa"/><path d="M1.323 4.762h3.175" fill="none" stroke="#aaa" stroke-width=".529"/></svg> -------------------------------------------------------------------------------- /skins/ardoise/images/underline_h.svg: -------------------------------------------------------------------------------- 1 | <svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 5.821 5.821"><rect ry=".265" rx=".265" y="-.001" height="5.821" width="5.821" fill="#555"/><path d="M4.172 1.04v2.038q0 .349-.158.611-.155.263-.45.403-.295.14-.697.14-.607 0-.943-.31-.336-.312-.336-.853V1.041h.665v1.927q0 .364.146.534.147.17.485.17.327 0 .474-.17.148-.172.148-.538V1.04z" fill="#ddd"/><path d="M1.323 4.762h3.175" fill="none" stroke="#ddd" stroke-width=".529"/></svg> -------------------------------------------------------------------------------- /skins/ardoise/images/undo.svg: -------------------------------------------------------------------------------- 1 | <svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 5.821 5.821"><path d="M1.852 2.007c.314-.418.847-.655 1.323-.529s.946.528 1.058 1.058c.113.531-.154 1.237-.529 1.588" fill="none" stroke="#66a8c7" stroke-width=".529" stroke-linecap="square" stroke-linejoin="bevel"/><path d="M1.058 1.19l1.588 1.72H1.058z" fill="#66a8c7"/></svg> -------------------------------------------------------------------------------- /skins/ardoise/images/undo_h.svg: -------------------------------------------------------------------------------- 1 | <svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 5.821 5.821"><rect ry=".265" rx=".265" y="-.001" height="5.821" width="5.821" fill="#555"/><path d="M1.852 2.006c.314-.417.847-.655 1.323-.529s.946.528 1.058 1.059c.113.53-.154 1.236-.529 1.587" fill="none" stroke="#ff8000" stroke-width=".529" stroke-linecap="square" stroke-linejoin="bevel"/><path d="M1.058 1.19l1.588 1.72H1.058z" fill="#ff8000"/></svg> -------------------------------------------------------------------------------- /skins/black_and_white/details.txt: -------------------------------------------------------------------------------- 1 | timeline-arrowheads: 1 2 | timeline-circle-nodes: 0 3 | timeline-color-graph-lines: 0 4 | white-foreground: 0 5 | -------------------------------------------------------------------------------- /skins/black_and_white/footer.txt: -------------------------------------------------------------------------------- 1 | <footer> 2 | Fossil $release_version $manifest_version $manifest_date 3 | </footer> 4 | -------------------------------------------------------------------------------- /skins/black_and_white/header.txt: -------------------------------------------------------------------------------- 1 | <header> 2 | <div class="logo"> 3 | <img src="$logo_image_url" alt="logo"> 4 | <br />$<project_name> 5 | </div> 6 | <div class="title">$<title></div> 7 | <div class="status"><th1> 8 | if {[info exists login]} { 9 | puts "Logged in as $login" 10 | } else { 11 | puts "Not logged in" 12 | } 13 | </th1></div> 14 | </header> 15 | <nav class="mainmenu" title="Main Menu"> 16 | <th1> 17 | set sitemap 0 18 | foreach {name url expr class} $mainmenu { 19 | if {![capexpr $expr]} continue 20 | if {[string match /* $url]} {set url $home$url} 21 | html "<a href='$url'>$name</a><br/>\n" 22 | if {[string match /sitemap $url]} {set sitemap 1} 23 | } 24 | if {!$sitemap} { 25 | html "<a href='$home/sitemap'>Sitemap</a>\n" 26 | } 27 | </th1> 28 | </nav> 29 | -------------------------------------------------------------------------------- /skins/blitz/README.md: -------------------------------------------------------------------------------- 1 | ## Blitz Theme 2 | 3 | Contributed by James Moger (james.moger@gitblit.com) 4 | 5 | This theme is inspired by my own project, [Gitblit](http://gitblit.com), and offered to the Fossil project. 6 | 7 | This theme embeds & uses an unmodified copy of [Normalize 3.0.2](https://necolas.github.io/normalize.css/) which is distributed under an [MIT license](https://github.com/necolas/normalize.css/blob/master/LICENSE.md). 8 | 9 | This theme uses half of a heavily-modified version of [Skeleton](http://getskeleton.com) which is distributed under an [MIT license](https://github.com/dhg/Skeleton/blob/master/LICENSE.md). None of the responsive elements (media queries) are included at this time. 10 | 11 | The font used in the included Fossil logo image is [Trillium Web Light](http://www.google.com/fonts/specimen/Titillium+Web) @ 48px HTML color code #456a7a. 12 | 13 | The RSS feed icon is sourced from [Font-Awesome](https://fortawesome.github.io/Font-Awesome/icons) by Dave Gandy and is distributed under the [SIL OFL 1.1 ](http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=OFL) license. -------------------------------------------------------------------------------- /skins/blitz/arrow_project.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drhsqlite/fossil-mirror/55bbd5a5163ed2e28670d95395958d6c1e2a4fc4/skins/blitz/arrow_project.png -------------------------------------------------------------------------------- /skins/blitz/details.txt: -------------------------------------------------------------------------------- 1 | timeline-arrowheads: 0 2 | timeline-circle-nodes: 1 3 | timeline-color-graph-lines: 1 4 | white-foreground: 0 5 | -------------------------------------------------------------------------------- /skins/blitz/dir.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drhsqlite/fossil-mirror/55bbd5a5163ed2e28670d95395958d6c1e2a4fc4/skins/blitz/dir.png -------------------------------------------------------------------------------- /skins/blitz/file.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drhsqlite/fossil-mirror/55bbd5a5163ed2e28670d95395958d6c1e2a4fc4/skins/blitz/file.png -------------------------------------------------------------------------------- /skins/blitz/footer.txt: -------------------------------------------------------------------------------- 1 | </div> <!-- end div container --> 2 | </div> <!-- end div middle max-full-width --> 3 | <footer> 4 | <div class="container"> 5 | <div class="pull-right"> 6 | <a href="https://fossil-scm.org/">Fossil $release_version $manifest_version $manifest_date</a> 7 | </div> 8 | This page was generated in about <th1>puts [expr {([utime]+[stime]+1000)/1000*0.001}]</th1>s 9 | </div> 10 | </footer> 11 | -------------------------------------------------------------------------------- /skins/blitz/fossil_100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drhsqlite/fossil-mirror/55bbd5a5163ed2e28670d95395958d6c1e2a4fc4/skins/blitz/fossil_100.png -------------------------------------------------------------------------------- /skins/blitz/fossil_80_reversed_darkcyan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drhsqlite/fossil-mirror/55bbd5a5163ed2e28670d95395958d6c1e2a4fc4/skins/blitz/fossil_80_reversed_darkcyan.png -------------------------------------------------------------------------------- /skins/blitz/fossil_80_reversed_darkcyan_text.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drhsqlite/fossil-mirror/55bbd5a5163ed2e28670d95395958d6c1e2a4fc4/skins/blitz/fossil_80_reversed_darkcyan_text.png -------------------------------------------------------------------------------- /skins/blitz/header.txt: -------------------------------------------------------------------------------- 1 | <header> 2 | <div class="container"> 3 | 4 | <!-- Header --> 5 | <div class="login pull-right"> 6 | <th1> 7 | if {[info exists login]} { 8 | html "<b>$login</b> — <a class='button' href='$home/login'>Logout</a>\n" 9 | } else { 10 | html "<a class='button' href='$home/login'>Login</a>\n" 11 | } 12 | </th1> 13 | </div> 14 | <div class='logo'> 15 | <h1>$<project_name> 16 | <th1> 17 | if {[anycap jor]} { 18 | html "<a class='rss' href='$home/timeline.rss'></a>" 19 | } 20 | </th1> 21 | <small>  $<title></small></h1> 22 | </div> 23 | 24 | <!-- Main Menu --> 25 | <nav class="mainmenu" title="Main Menu"> 26 | <ul> 27 | <th1> 28 | html "<li><a id='hbbtn' href='$home/sitemap' aria-label='Site Map'>☰</a></li>\n" 29 | builtin_request_js hbmenu.js 30 | set once 1 31 | foreach {name url expr class} $mainmenu { 32 | if {![capexpr $expr]} continue 33 | if {$once && [string match $url\[/?#\]* /$current_page/]} { 34 | set class "active $class" 35 | set once 0 36 | } 37 | html "<li class='$class'>" 38 | if {[string match /* $url]} {set url $home$url} 39 | html "<a href='$url'>$name</a></li>\n" 40 | } 41 | </th1> 42 | </ul> 43 | </nav> 44 | <nav id="hbdrop" class='hbdrop' title="sitemap"></nav> 45 | </div> <!-- end div container --> 46 | </header> 47 | <div class="middle max-full-width"> 48 | <div class="container"> 49 | -------------------------------------------------------------------------------- /skins/blitz/rss_20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drhsqlite/fossil-mirror/55bbd5a5163ed2e28670d95395958d6c1e2a4fc4/skins/blitz/rss_20.png -------------------------------------------------------------------------------- /skins/darkmode/details.txt: -------------------------------------------------------------------------------- 1 | timeline-arrowheads: 0 2 | timeline-circle-nodes: 1 3 | timeline-color-graph-lines: 1 4 | white-foreground: 1 5 | -------------------------------------------------------------------------------- /skins/darkmode/footer.txt: -------------------------------------------------------------------------------- 1 | <footer> 2 | <div class="container"> 3 | <div class="pull-right"> 4 | <a href="https://fossil-scm.org/">Fossil $release_version $manifest_version $manifest_date</a> 5 | </div> 6 | This page was generated in about <th1>puts [expr {([utime]+[stime]+1000)/1000*0.001}]</th1>s 7 | </div> 8 | </footer> 9 | -------------------------------------------------------------------------------- /skins/darkmode/header.txt: -------------------------------------------------------------------------------- 1 | <header> 2 | <div class="status leftoftitle"><th1> 3 | if {[info exists login]} { 4 | set logintext "<a href='$home/login'>$login</a>\n" 5 | } else { 6 | set logintext "<a href='$home/login'>Login</a>\n" 7 | } 8 | html $logintext 9 | </th1></div> 10 | <div class="title">$<title></div> 11 | <div class="status"><nobr><th1> 12 | html $logintext 13 | </th1></nobr></div> 14 | </header> 15 | <nav class="mainmenu" title="Main Menu"> 16 | <th1> 17 | html "<a id='hbbtn' href='$home/sitemap' aria-label='Site Map'>☰</a>" 18 | builtin_request_js hbmenu.js 19 | foreach {name url expr class} $mainmenu { 20 | if {![capexpr $expr]} continue 21 | if {[string match /* $url]} { 22 | if {[string match $url\[/?#\]* /$current_page/]} { 23 | set class "active $class" 24 | } 25 | set url $home$url 26 | } 27 | html "<a href='$url' class='$class'>$name</a>\n" 28 | } 29 | </th1> 30 | </nav> 31 | <nav id="hbdrop" class='hbdrop' title="sitemap"></nav> 32 | -------------------------------------------------------------------------------- /skins/default/README.md: -------------------------------------------------------------------------------- 1 | This skin was originally contributed by Étienne Deparis on 2015-02-22, 2 | promoted to the default on 2015-03-14, and subsequently changed by many: 3 | 4 | https://fossil-scm.org/home/finfo/skins/default/css.txt 5 | https://fossil-scm.org/home/blame?filename=skins/default/css.txt&checkin=trunk 6 | 7 | In February 2024, a sufficiently large set of changes were made to the 8 | skin that we forked the old version for the benefit of those who needed 9 | to reference the old one — as when migrating custom skin changes to work 10 | atop the new default — or who simply preferred it. See ../etienne. 11 | -------------------------------------------------------------------------------- /skins/default/details.txt: -------------------------------------------------------------------------------- 1 | pikchr-fontscale: "0.9" 2 | pikchr-scale: "1.1" 3 | timeline-arrowheads: 1 4 | timeline-circle-nodes: 1 5 | timeline-color-graph-lines: 1 6 | white-foreground: 0 7 | -------------------------------------------------------------------------------- /skins/default/footer.txt: -------------------------------------------------------------------------------- 1 | <footer> 2 | This page was generated in about 3 | <th1>puts [expr {([utime]+[stime]+1000)/1000*0.001}]</th1>s by 4 | Fossil $release_version $manifest_version $manifest_date 5 | </footer> 6 | -------------------------------------------------------------------------------- /skins/eagle/README.md: -------------------------------------------------------------------------------- 1 | For this skin to look exactly as it was intended to, the **white-foreground** 2 | setting should be enabled. 3 | 4 | This skin was contributed by Joe Mistachkin. 5 | -------------------------------------------------------------------------------- /skins/eagle/details.txt: -------------------------------------------------------------------------------- 1 | timeline-arrowheads: 1 2 | timeline-circle-nodes: 0 3 | timeline-color-graph-lines: 0 4 | white-foreground: 1 5 | pikchr-background: 0x485d7b 6 | -------------------------------------------------------------------------------- /skins/eagle/footer.txt: -------------------------------------------------------------------------------- 1 | <footer> 2 | <th1> 3 | proc getTclVersion {} { 4 | if {[catch {tclEval info patchlevel} tclVersion] == 0} { 5 | return "<a href=\"https://www.tcl.tk/\">Tcl</a> version $tclVersion" 6 | } 7 | return "" 8 | } 9 | proc getVersion { version } { 10 | set length [string length $version] 11 | return [string range $version 1 [expr {$length - 2}]] 12 | } 13 | set version [getVersion $manifest_version] 14 | set tclVersion [getTclVersion] 15 | set fossilUrl https://fossil-scm.org 16 | set fossilDate [string range $manifest_date 0 9]T[string range $manifest_date 11 end] 17 | </th1> 18 | This page was generated in about 19 | <th1>puts [expr {([utime]+[stime]+1000)/1000*0.001}]</th1>s by 20 | <a href="$fossilUrl/">Fossil</a> 21 | version $release_version $tclVersion 22 | <a href="$fossilUrl/index.html/info/$version">$manifest_version</a> 23 | <a href="$fossilUrl/index.html/timeline?c=$fossilDate&y=ci">$manifest_date</a> 24 | </footer> 25 | -------------------------------------------------------------------------------- /skins/etienne/README.md: -------------------------------------------------------------------------------- 1 | This skin was contributed by Étienne Deparis. 2 | 3 | It was promoted to the default from 2015-03-14 until February 2024, when 4 | it was forked into this location for use by those who do not want the 5 | large number of changes merged into trunk at that time. Even if you 6 | agree with us that the changes improve readability, you may prefer to 7 | pack more information onto the screen at the expense of readability. 8 | Other reasons to choose this fork are to migrate custom skin changes to 9 | work atop the new base, or to make a comparative design evaluation. 10 | 11 | A bare minimum of changes have been made to this fork, primarily to 12 | allow this skin to render the Fossil documentation in a readable 13 | fashion. The intent is that you be able to toggle between these two 14 | skins at will. 15 | -------------------------------------------------------------------------------- /skins/etienne/details.txt: -------------------------------------------------------------------------------- 1 | timeline-arrowheads: 1 2 | timeline-circle-nodes: 1 3 | timeline-color-graph-lines: 1 4 | white-foreground: 0 5 | -------------------------------------------------------------------------------- /skins/etienne/footer.txt: -------------------------------------------------------------------------------- 1 | <footer> 2 | This page was generated in about 3 | <th1>puts [expr {([utime]+[stime]+1000)/1000*0.001}]</th1>s by 4 | Fossil $release_version $manifest_version $manifest_date 5 | </footer> 6 | -------------------------------------------------------------------------------- /skins/etienne/header.txt: -------------------------------------------------------------------------------- 1 | <header> 2 | <div class="title"><h1>$<project_name></h1>$<title></div> 3 | <div class="status"> 4 | <th1> 5 | if {[info exists login]} { 6 | html "<a href='$home/login'>$login</a>\n" 7 | } else { 8 | html "<a href='$home/login'>Login</a>\n" 9 | } 10 | </th1> 11 | </div> 12 | </header> 13 | <nav class="mainmenu" title="Main Menu"> 14 | <th1> 15 | html "<a id='hbbtn' href='$home/sitemap' aria-label='Site Map'>☰</a>" 16 | builtin_request_js hbmenu.js 17 | foreach {name url expr class} $mainmenu { 18 | if {![capexpr $expr]} continue 19 | if {[string match /* $url]} { 20 | if {[string match $url\[/?#\]* /$current_page/]} { 21 | set class "active $class" 22 | } 23 | set url $home$url 24 | } 25 | html "<a href='$url' class='$class'>$name</a>\n" 26 | } 27 | </th1> 28 | </nav> 29 | <nav id="hbdrop" class='hbdrop' title="sitemap"></nav> 30 | -------------------------------------------------------------------------------- /skins/khaki/details.txt: -------------------------------------------------------------------------------- 1 | timeline-arrowheads: 1 2 | timeline-circle-nodes: 1 3 | timeline-color-graph-lines: 1 4 | white-foreground: 0 5 | -------------------------------------------------------------------------------- /skins/khaki/footer.txt: -------------------------------------------------------------------------------- 1 | <footer> 2 | Fossil $release_version $manifest_version $manifest_date 3 | </footer> 4 | -------------------------------------------------------------------------------- /skins/khaki/header.txt: -------------------------------------------------------------------------------- 1 | <header> 2 | <div class="title">$<title></div> 3 | <div class="status"> 4 | <div class="logo">$<project_name></div><br/> 5 | <th1> 6 | if {[info exists login]} { 7 | puts "Logged in as $login" 8 | } else { 9 | puts "Not logged in" 10 | } 11 | </th1> 12 | </div> 13 | </header> 14 | <nav class="mainmenu" title="Main Menu"> 15 | <th1> 16 | html "<a id='hbbtn' href='$home/sitemap' aria-label='Site Map'>☰</a>" 17 | builtin_request_js hbmenu.js 18 | foreach {name url expr class} $mainmenu { 19 | if {![capexpr $expr]} continue 20 | if {[string match /* $url]} {set url $home$url} 21 | html "<a href='$url' class='$class'>$name</a>\n" 22 | } 23 | </th1> 24 | </nav> 25 | <nav id="hbdrop" class='hbdrop' title="sitemap"></nav> 26 | -------------------------------------------------------------------------------- /skins/original/details.txt: -------------------------------------------------------------------------------- 1 | timeline-arrowheads: 1 2 | timeline-circle-nodes: 0 3 | timeline-color-graph-lines: 0 4 | white-foreground: 0 5 | -------------------------------------------------------------------------------- /skins/original/footer.txt: -------------------------------------------------------------------------------- 1 | <footer> 2 | <th1> 3 | proc getTclVersion {} { 4 | if {[catch {tclEval info patchlevel} tclVersion] == 0} { 5 | return "<a href=\"https://www.tcl.tk/\">Tcl</a> version $tclVersion" 6 | } 7 | return "" 8 | } 9 | proc getVersion { version } { 10 | set length [string length $version] 11 | return [string range $version 1 [expr {$length - 2}]] 12 | } 13 | set version [getVersion $manifest_version] 14 | set tclVersion [getTclVersion] 15 | set fossilUrl https://fossil-scm.org 16 | set fossilDate [string range $manifest_date 0 9]T[string range $manifest_date 11 end] 17 | </th1> 18 | This page was generated in about 19 | <th1>puts [expr {([utime]+[stime]+1000)/1000*0.001}]</th1>s by 20 | <a href="$fossilUrl/">Fossil</a> 21 | version $release_version $tclVersion 22 | <a href="$fossilUrl/index.html/info/$version">$manifest_version</a> 23 | <a href="$fossilUrl/index.html/timeline?c=$fossilDate&y=ci">$manifest_date</a> 24 | </footer> 25 | -------------------------------------------------------------------------------- /skins/plain_gray/details.txt: -------------------------------------------------------------------------------- 1 | timeline-arrowheads: 1 2 | timeline-circle-nodes: 1 3 | timeline-color-graph-lines: 0 4 | white-foreground: 0 5 | -------------------------------------------------------------------------------- /skins/plain_gray/footer.txt: -------------------------------------------------------------------------------- 1 | <footer> 2 | Fossil $release_version $manifest_version $manifest_date 3 | </footer> 4 | -------------------------------------------------------------------------------- /skins/plain_gray/header.txt: -------------------------------------------------------------------------------- 1 | <header> 2 | <div class="title">$<project_name>: $<title></div> 3 | </header> 4 | <nav class="mainmenu" title="Main Menu"> 5 | <th1> 6 | html "<a id='hbbtn' href='$home/sitemap' aria-label='Site Map'>☰</a>" 7 | builtin_request_js hbmenu.js 8 | foreach {name url expr class} $mainmenu { 9 | if {![capexpr $expr]} continue 10 | if {[string match /* $url]} {set url $home$url} 11 | html "<a href='$url' class='$class'>$name</a>\n" 12 | } 13 | </th1> 14 | </nav> 15 | <nav id="hbdrop" class='hbdrop' title="sitemap"></nav> 16 | -------------------------------------------------------------------------------- /skins/xekri/README.md: -------------------------------------------------------------------------------- 1 | "xekri" is a Lojban word that means "extermely dark-colored". 2 | This skin was contributed by Andrew Moore. 3 | -------------------------------------------------------------------------------- /skins/xekri/details.txt: -------------------------------------------------------------------------------- 1 | timeline-arrowheads: 1 2 | timeline-circle-nodes: 0 3 | timeline-color-graph-lines: 1 4 | white-foreground: 1 5 | -------------------------------------------------------------------------------- /skins/xekri/footer.txt: -------------------------------------------------------------------------------- 1 | </div> 2 | <footer> 3 | <div class="page-time"> 4 | Generated in <th1>puts [expr {([utime]+[stime]+1000)/1000*0.001}]</th1>s 5 | </div> 6 | <div class="fossil-info"> 7 | Fossil v$release_version $manifest_version 8 | </div> 9 | </footer> 10 | -------------------------------------------------------------------------------- /src/Makefile: -------------------------------------------------------------------------------- 1 | all clean: 2 | $(MAKE) -C .. $(MAKECMDGOALS) 3 | 4 | -------------------------------------------------------------------------------- /src/alerts/bflat2.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drhsqlite/fossil-mirror/55bbd5a5163ed2e28670d95395958d6c1e2a4fc4/src/alerts/bflat2.wav -------------------------------------------------------------------------------- /src/alerts/bflat3.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drhsqlite/fossil-mirror/55bbd5a5163ed2e28670d95395958d6c1e2a4fc4/src/alerts/bflat3.wav -------------------------------------------------------------------------------- /src/alerts/bloop.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drhsqlite/fossil-mirror/55bbd5a5163ed2e28670d95395958d6c1e2a4fc4/src/alerts/bloop.wav -------------------------------------------------------------------------------- /src/alerts/plunk.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drhsqlite/fossil-mirror/55bbd5a5163ed2e28670d95395958d6c1e2a4fc4/src/alerts/plunk.wav -------------------------------------------------------------------------------- /src/ci_edit.js: -------------------------------------------------------------------------------- 1 | /* Javascript used to make the check-in edit screen more interactive. 2 | */ 3 | function chgcbn(){ 4 | var newbr = document.getElementById('newbr'); 5 | var brname = document.getElementById('brname'); 6 | var checked = newbr.checked; 7 | var x = brname.value.trim(); 8 | if( !x || !newbr.checked ) x = newbr.getAttribute('data-branch'); 9 | if( newbr.checked ) brname.select(); 10 | document.getElementById('hbranch').textContent = x; 11 | cidbrid = document.getElementById('cbranch'); 12 | if( cidbrid ) cidbrid.textContent = x; 13 | } 14 | function chgbn(){ 15 | var newbr = document.getElementById('newbr'); 16 | var brname = document.getElementById('brname'); 17 | var x = brname.value.trim(); 18 | var br = newbr.getAttribute('data-branch'); 19 | if( !x ) x = br; 20 | newbr.checked = (x!=br); 21 | document.getElementById('hbranch').textContent = x; 22 | cidbrid = document.getElementById('cbranch'); 23 | if( cidbrid ) cidbrid.textContent = x; 24 | } 25 | function chgtn(){ 26 | var newtag = document.getElementById('newtag'); 27 | var tagname = document.getElementById('tagname'); 28 | newtag.checked=!!tagname.value; 29 | } 30 | (function(){ 31 | document.getElementById('newbr').onchange = chgcbn; 32 | document.getElementById('brname').onkeyup = chgbn; 33 | document.getElementById('tagname').onkeyup = chgtn; 34 | }()); 35 | -------------------------------------------------------------------------------- /src/forum.js: -------------------------------------------------------------------------------- 1 | (function(){ 2 | function absoluteY(obj){ 3 | var top = 0; 4 | if( obj.offsetParent ){ 5 | do{ 6 | top += obj.offsetTop; 7 | }while( obj = obj.offsetParent ); 8 | } 9 | return top; 10 | } 11 | var x = document.getElementsByClassName('forumSel'); 12 | if(x[0]){ 13 | var w = window.innerHeight; 14 | var h = x[0].scrollHeight; 15 | var y = absoluteY(x[0]); 16 | if( w>h ) y = y + (h-w)/2; 17 | if( y>0 ) window.scrollTo(0, y); 18 | } 19 | })(); 20 | -------------------------------------------------------------------------------- /src/login.js: -------------------------------------------------------------------------------- 1 | /* Javascript code to handle button actions on the login page */ 2 | var autofillButton = document.getElementById('autofillButton'); 3 | autofillButton.onclick = function(){ 4 | document.getElementById('u').value = 'anonymous'; 5 | document.getElementById('p').value = autofillButton.getAttribute('data-af'); 6 | }; 7 | -------------------------------------------------------------------------------- /src/menu.js: -------------------------------------------------------------------------------- 1 | /* This script runs when the submenu contains controls created by routines 2 | ** like style_submenu_checkbox() or style_submenu_multichoice() - controls 3 | ** that require javascript support. 4 | */ 5 | 6 | function toggle_annotation_log(){ 7 | var w = document.getElementById("annotation_log"); 8 | var x = document.forms["f01"].elements["log"].checked 9 | w.style.display = x ? "block" : "none"; 10 | } 11 | function submenu_onchange_submit(){ 12 | var w = document.getElementById("f01"); 13 | w.submit(); 14 | } 15 | 16 | (function (){ 17 | for(var i=0; 1; i++){ 18 | var x = document.getElementById("submenuctrl-"+i); 19 | if(!x) break; 20 | if( !x.hasAttribute('data-ctrl') ){ 21 | x.onchange = submenu_onchange_submit; 22 | }else{ 23 | var cx = x.getAttribute('data-ctrl'); 24 | if( cx=="toggle_annotation_log" ){ 25 | x.onchange = toggle_annotation_log; 26 | } 27 | } 28 | } 29 | })(); 30 | -------------------------------------------------------------------------------- /src/scroll.js: -------------------------------------------------------------------------------- 1 | /* Cause the page to scroll so that the #scrollToMe is visible */ 2 | (document.getElementById('scrollToMe')||document.body).scrollIntoView(true); 3 | -------------------------------------------------------------------------------- /src/skin.js: -------------------------------------------------------------------------------- 1 | /* Javascript that runs for the /setup_skin page. 2 | */ 3 | (function(){ 4 | var x = document.getElementById('skStep1'); 5 | x.onchange = function(){ 6 | document.getElementById('f01').submit() 7 | } 8 | }()); 9 | -------------------------------------------------------------------------------- /src/sounds/0.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drhsqlite/fossil-mirror/55bbd5a5163ed2e28670d95395958d6c1e2a4fc4/src/sounds/0.wav -------------------------------------------------------------------------------- /src/sounds/1.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drhsqlite/fossil-mirror/55bbd5a5163ed2e28670d95395958d6c1e2a4fc4/src/sounds/1.wav -------------------------------------------------------------------------------- /src/sounds/2.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drhsqlite/fossil-mirror/55bbd5a5163ed2e28670d95395958d6c1e2a4fc4/src/sounds/2.wav -------------------------------------------------------------------------------- /src/sounds/3.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drhsqlite/fossil-mirror/55bbd5a5163ed2e28670d95395958d6c1e2a4fc4/src/sounds/3.wav -------------------------------------------------------------------------------- /src/sounds/4.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drhsqlite/fossil-mirror/55bbd5a5163ed2e28670d95395958d6c1e2a4fc4/src/sounds/4.wav -------------------------------------------------------------------------------- /src/sounds/5.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drhsqlite/fossil-mirror/55bbd5a5163ed2e28670d95395958d6c1e2a4fc4/src/sounds/5.wav -------------------------------------------------------------------------------- /src/sounds/6.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drhsqlite/fossil-mirror/55bbd5a5163ed2e28670d95395958d6c1e2a4fc4/src/sounds/6.wav -------------------------------------------------------------------------------- /src/sounds/7.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drhsqlite/fossil-mirror/55bbd5a5163ed2e28670d95395958d6c1e2a4fc4/src/sounds/7.wav -------------------------------------------------------------------------------- /src/sounds/8.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drhsqlite/fossil-mirror/55bbd5a5163ed2e28670d95395958d6c1e2a4fc4/src/sounds/8.wav -------------------------------------------------------------------------------- /src/sounds/9.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drhsqlite/fossil-mirror/55bbd5a5163ed2e28670d95395958d6c1e2a4fc4/src/sounds/9.wav -------------------------------------------------------------------------------- /src/sounds/README.md: -------------------------------------------------------------------------------- 1 | The `[0-9a-f].wav` files in this directory contain a human voice 2 | speaking each of the 16 hexadecimal digits. If a captcha string 3 | consists of just hexadecimal digits (as is the case for captchas 4 | generated by the [captcha.c module](/finfo/src/captcha.c)) then these WAV 5 | files can be concatenated together to generate an audio reading of the 6 | captcha, which enables visually impaired users to complete the 7 | captcha. 8 | 9 | Each of the WAV files uses 8000 samples per second, 8 bits per sample 10 | and are 6000 samples in length. 11 | 12 | The recordings are made by Philip Bennefall and are of his own voice. 13 | Mr. Bennefall is himself blind and uses this system implemented with these 14 | recordings to complete captchas for Fossil. 15 | -------------------------------------------------------------------------------- /src/sounds/a.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drhsqlite/fossil-mirror/55bbd5a5163ed2e28670d95395958d6c1e2a4fc4/src/sounds/a.wav -------------------------------------------------------------------------------- /src/sounds/b.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drhsqlite/fossil-mirror/55bbd5a5163ed2e28670d95395958d6c1e2a4fc4/src/sounds/b.wav -------------------------------------------------------------------------------- /src/sounds/c.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drhsqlite/fossil-mirror/55bbd5a5163ed2e28670d95395958d6c1e2a4fc4/src/sounds/c.wav -------------------------------------------------------------------------------- /src/sounds/d.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drhsqlite/fossil-mirror/55bbd5a5163ed2e28670d95395958d6c1e2a4fc4/src/sounds/d.wav -------------------------------------------------------------------------------- /src/sounds/e.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drhsqlite/fossil-mirror/55bbd5a5163ed2e28670d95395958d6c1e2a4fc4/src/sounds/e.wav -------------------------------------------------------------------------------- /src/sounds/f.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drhsqlite/fossil-mirror/55bbd5a5163ed2e28670d95395958d6c1e2a4fc4/src/sounds/f.wav -------------------------------------------------------------------------------- /src/style.admin_log.css: -------------------------------------------------------------------------------- 1 | /* This file is just to demonstrate/test page-specific CSS. Using 2 | the browser dev tools, select any link, "inspect" it, and edit 3 | this style. */ 4 | a{ 5 | font-size: inherit; 6 | } 7 | -------------------------------------------------------------------------------- /src/style.uvlist.css: -------------------------------------------------------------------------------- 1 | body.uvlist input { 2 | margin: 0.5em; 3 | } 4 | 5 | body.uvlist form { 6 | display: block; 7 | } 8 | -------------------------------------------------------------------------------- /src/useredit.js: -------------------------------------------------------------------------------- 1 | /* This script accompanies the /setup_uedit web page. Its job is to keep 2 | ** the check-boxes with user capabilities up-to-date with the capability 3 | ** string. 4 | ** 5 | ** The capability string is stored in #usetupEditCapability 6 | */ 7 | function updateCapabilityString(){ 8 | try { 9 | var inputs = document.getElementsByTagName('input'); 10 | if( inputs && inputs.length ){ 11 | var output = document.getElementById('usetupEditCapability'); 12 | if( output ){ 13 | var permsIds = [], x = 0; 14 | for(var i = 0; i < inputs.length; i++){ 15 | var e = inputs[i]; 16 | if( !e.name || !e.type ) continue; 17 | if( e.type.toLowerCase()!=='checkbox' ) continue; 18 | if( e.name.length===2 && e.name[0]==='a' ){ 19 | // looks like a capability checkbox 20 | e.onchange = updateCapabilityString; 21 | if( e.checked ){ 22 | // grab the second character of the element 23 | // name, which is the textual flag for this 24 | // capability, and then add it to the result 25 | // array. 26 | permsIds[x++] = e.name[1]; 27 | } 28 | } 29 | } 30 | permsIds.sort(); 31 | output.innerHTML = permsIds.join(''); 32 | } 33 | } 34 | } catch (e) { 35 | /* ignore errors */ 36 | } 37 | } 38 | updateCapabilityString(); 39 | -------------------------------------------------------------------------------- /test/cmdline.test: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (c) 2012 D. Richard Hipp 3 | # 4 | # This program is free software; you can redistribute it and/or 5 | # modify it under the terms of the Simplified BSD License (also 6 | # known as the "2-Clause License" or "FreeBSD License".) 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. 11 | # 12 | # Author contact information: 13 | # drh@hwaci.com 14 | # http://www.hwaci.com/drh/ 15 | # 16 | ############################################################################ 17 | # 18 | # Test command line parsing 19 | # 20 | 21 | test_setup "" 22 | 23 | proc cmd-line {usefile testname args} { 24 | set i 1 25 | foreach {cmdline result} $args { 26 | if {$usefile} { 27 | set cmdlinefile [file join \ 28 | [getTemporaryPath] fossil-cmd-line-$testname.txt] 29 | 30 | write_file $cmdlinefile $cmdline 31 | fossil test-echo --args $cmdlinefile 32 | file delete $cmdlinefile 33 | } else { 34 | fossil test-echo $cmdline 35 | } 36 | 37 | test cmd-line-$testname.$i \ 38 | {[lrange [split $::RESULT \n] 3 end]=="\{argv\[2\] = \[$result\]\}"} 39 | 40 | incr i 41 | } 42 | } 43 | 44 | cmd-line false 100 abc abc a\"bc a\"bc \"abc\" \"abc\" 45 | 46 | # 47 | # NOTE: Use an --args file on Windows to avoid unwanted glob expansion 48 | # from MinGW and/or the MSVCRT. 49 | # 50 | cmd-line $is_windows 101 * * *.* *.* 51 | 52 | ############################################################################### 53 | 54 | test_cleanup 55 | -------------------------------------------------------------------------------- /test/contains-selector.test: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (c) 2015 D. Richard Hipp 3 | # 4 | # This program is free software; you can redistribute it and/or 5 | # modify it under the terms of the Simplified BSD License (also 6 | # known as the "2-Clause License" or "FreeBSD License".) 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. 11 | # 12 | # Author contact information: 13 | # drh@hwaci.com 14 | # http://www.hwaci.com/drh/ 15 | # 16 | ############################################################################ 17 | # 18 | # Test containsSelector() function in src/style.c 19 | # 20 | 21 | test_setup "" 22 | 23 | proc contains-selector {testId css selectorResultMap} { 24 | set css [string trim $css] 25 | set filename [file join $::tempPath compare-selector.css] 26 | set fh [open $filename w] 27 | puts -nonewline $fh $css 28 | close $fh 29 | foreach {selector found} $selectorResultMap { 30 | set expected "$selector [expr {$found ? "found" : "not found"}]" 31 | set result [fossil test-contains-selector $filename $selector] 32 | test "contains-selector $testId $selector" {$result eq $expected} 33 | } 34 | file delete $filename 35 | } 36 | 37 | contains-selector 1 { 38 | .a.b {} 39 | .c .de {} 40 | /* comment */ 41 | .c .d, .e /* comment */ {} 42 | } { 43 | .a 0 44 | .b 0 45 | .a.b 1 46 | .c 0 47 | .d 0 48 | {.c.d} 0 49 | {.c .d} 1 50 | .e 1 51 | } 52 | 53 | ############################################################################### 54 | 55 | test_cleanup 56 | -------------------------------------------------------------------------------- /test/csp1.html: -------------------------------------------------------------------------------- 1 | <!DOCTYPE html> 2 | <html> 3 | <head> 4 | <title>Title: Content Security Policy Test 5 | 6 | 7 |

Content Security Policy Test

8 | 9 |

If the content-security-policy is ineffective, a pop-up dialog 10 | box will appears. If there is no dialog box, then CSP is working 11 | correctly.

12 | 13 | 14 | 15 | 16 |

As a double-check, open the Developer Console in your web-browser 17 | and verify that two CSP violations were detected and blocked.

18 | 19 | -------------------------------------------------------------------------------- /test/delta1.test: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (c) 2006 D. Richard Hipp 3 | # 4 | # This program is free software; you can redistribute it and/or 5 | # modify it under the terms of the Simplified BSD License (also 6 | # known as the "2-Clause License" or "FreeBSD License".) 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. 11 | # 12 | # Author contact information: 13 | # drh@hwaci.com 14 | # http://www.hwaci.com/drh/ 15 | # 16 | ############################################################################ 17 | # 18 | # Tests of the delta mechanism. 19 | # 20 | 21 | test_setup "" 22 | 23 | # Use test script files as the basis for this test. 24 | # 25 | # For each test, copy the file intact to "./t1". Make 26 | # some random changes in "./t2". Then call test-delta on the 27 | # two files to make sure that deltas between these two files 28 | # work properly. 29 | # 30 | set filelist [lsort [glob $testdir/*]] 31 | foreach f $filelist { 32 | if {[file isdir $f]} continue 33 | set base [file root [file tail $f]] 34 | set f1 [read_file $f] 35 | write_file t1 $f1 36 | for {set i 0} {$i<100} {incr i} { 37 | write_file t2 [random_changes $f1 1 1 0 0.1] 38 | fossil test-delta t1 t2 39 | test delta-$base-$i-1 {[normalize_result]=="ok"} 40 | write_file t2 [random_changes $f1 1 1 0 0.2] 41 | fossil test-delta t1 t2 42 | test delta-$base-$i-2 {[normalize_result]=="ok"} 43 | write_file t2 [random_changes $f1 1 1 0 0.4] 44 | fossil test-delta t1 t2 45 | test delta-$base-$i-3 {[normalize_result]=="ok"} 46 | } 47 | } 48 | 49 | set empties { "" "" "" a a "" } 50 | set i 0 51 | foreach {f1 f2} $empties { 52 | incr i 53 | write_file t1 $f1 54 | write_file t2 $f2 55 | fossil test-delta t1 t2 56 | test delta-empty-$i {[normalize_result]=="ok"} 57 | } 58 | ############################################################################### 59 | 60 | test_cleanup 61 | -------------------------------------------------------------------------------- /test/fileage-test-1.wiki: -------------------------------------------------------------------------------- 1 | 2 | This page contains URLs for file-age computations that have given 3 | trouble in the past. Shift-click on on the links, one-by-one, to verify 4 | that the current implementation works correctly: 5 | 6 | * [/fileage?name=c9df0dcdaa402] - Verify that the many 7 | execute permission changes that occurred about 24 hours before 8 | check-in c9df0dcdaa402 do not appear as file changes. 9 | 10 | * [/tree?ci=c9df0dcdaa40&mtime=0&type=tree] - Verify that all 11 | three skin files (css.txt, footer.txt, and header.txt) appear 12 | in all of the skin/*/ folders. 13 | 14 | * On both of the above, check for excessive computation time. 15 | -------------------------------------------------------------------------------- /test/markdown-test1.md: -------------------------------------------------------------------------------- 1 | 2 | Markdown Formatter Test Document 3 | ================================ 4 | 5 | This document is designed to test the markdown formatter. 6 | 7 | * A bullet item. 8 | * A subitem 9 | * Second bullet 10 | 11 | More text 12 | 13 | 1. Enumeration 14 | 1.1. Subitem 1 15 | 1.2. Subitem 2 16 | 2. Second enumeration. 17 | 18 | Another paragraph. 19 | 20 | 21 | 22 | Other Features 23 | -------------- 24 | 25 | Text can show *emphasis* or _emphasis_ or **strong emphassis**. 26 | -------------------------------------------------------------------------------- /test/merge2.test: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (c) 2006 D. Richard Hipp 3 | # 4 | # This program is free software; you can redistribute it and/or 5 | # modify it under the terms of the Simplified BSD License (also 6 | # known as the "2-Clause License" or "FreeBSD License".) 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. 11 | # 12 | # Author contact information: 13 | # drh@hwaci.com 14 | # http://www.hwaci.com/drh/ 15 | # 16 | ############################################################################ 17 | # 18 | # Tests of the delta mechanism. 19 | # 20 | 21 | test_setup "" 22 | 23 | set filelist [lsort [glob $testdir/*]] 24 | foreach f $filelist { 25 | if {[file isdir $f]} continue 26 | set base [file root [file tail $f]] 27 | if {[string match "utf16*" $base]} continue 28 | set f1 [read_file $f] 29 | write_file t1 $f1 30 | for {set i 0} {$i<100} {incr i} { 31 | expr {srand($i*2)} 32 | write_file t2 [set f2 [random_changes $f1 2 4 0 0.1]] 33 | expr {srand($i*2+1)} 34 | write_file t3 [set f3 [random_changes $f1 2 4 2 0.1]] 35 | expr {srand($i*2+1)} 36 | write_file t23 [random_changes $f2 2 4 2 0.1] 37 | expr {srand($i*2)} 38 | write_file t32 [random_changes $f3 2 4 0 0.1] 39 | fossil 3-way-merge t1 t2 t3 a23 40 | if {[regexp {<<<<< BEGIN MERGE CONFLICT:} [read_file a23]]} continue 41 | test merge-$base-$i-23 {[same_file a23 t23]} 42 | fossil 3-way-merge t1 t3 t2 a32 43 | test merge-$base-$i-32 {[same_file a32 t32]} 44 | } 45 | } 46 | 47 | ############################################################################### 48 | 49 | test_cleanup 50 | -------------------------------------------------------------------------------- /test/merge6.test: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (c) 2014 D. Richard Hipp 3 | # 4 | # This program is free software; you can redistribute it and/or 5 | # modify it under the terms of the Simplified BSD License (also 6 | # known as the "2-Clause License" or "FreeBSD License".) 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. 11 | # 12 | # Author contact information: 13 | # drh@hwaci.com 14 | # http://www.hwaci.com/drh/ 15 | # 16 | ############################################################################ 17 | # 18 | # Tests of the "merge" command 19 | # 20 | 21 | #################################################################### 22 | # TEST 1: Handle multiple merges each with one or more ADDED files # 23 | #################################################################### 24 | 25 | test_setup 26 | fossil ls 27 | 28 | test merge_multi-0 {[normalize_result] eq {}} 29 | 30 | write_file f1 "f1 line" 31 | fossil add f1 32 | fossil commit -m "base file" 33 | fossil ls 34 | 35 | test merge_multi-1 {[normalize_result] eq {f1}} 36 | 37 | fossil update trunk 38 | write_file f2 "f2 line" 39 | fossil add f2 40 | fossil commit -m "branch for file f2" -b branch_for_f2 41 | fossil ls 42 | 43 | test merge_multi-2 {[normalize_result] eq {f1 44 | f2}} 45 | 46 | fossil update trunk 47 | write_file f3 "f3 line" 48 | write_file f4 "f4 line" 49 | fossil add f3 50 | fossil add f4 51 | fossil commit -m "branch for files f3 and f4" -b branch_for_f3_f4 52 | fossil ls 53 | 54 | test merge_multi-3 {[normalize_result] eq {f1 55 | f3 56 | f4}} 57 | 58 | fossil update trunk 59 | fossil merge branch_for_f2 60 | fossil merge branch_for_f3_f4 61 | fossil commit -m "new trunk files f2, f3, and f4 via merge" 62 | fossil ls 63 | 64 | test merge_multi-4 {[normalize_result] eq {f1 65 | f2 66 | f3 67 | f4}} 68 | 69 | ############################################################################### 70 | 71 | test_cleanup 72 | -------------------------------------------------------------------------------- /test/merge_renames_2.test: -------------------------------------------------------------------------------- 1 | # 2 | # Tests for merging with renames 3 | # 4 | # 5 | 6 | proc commit_id {version} { 7 | regexp -line {^artifact:\s+(\S+)} [fossil whatis $version] - id 8 | return $id 9 | } 10 | 11 | require_no_open_checkout 12 | 13 | ################################################################# 14 | # Test 1 # 15 | # https://fossil-scm.org/forum/forumpost/549700437b # 16 | ################################################################# 17 | 18 | test_setup 19 | 20 | write_file file1 "file1\n" 21 | fossil add file1 22 | fossil commit -m "added file1" 23 | 24 | write_file file2 "file2\n" 25 | fossil add file2 26 | fossil commit -m "added file2" --branch added 27 | 28 | write_file file2 "edit file2 on added\n" 29 | fossil commit -m "edited file2" 30 | 31 | fossil mv --hard file2 file2.renamed 32 | fossil commit -m "renamed file2" --branch renamed 33 | 34 | fossil branch new branched current 35 | 36 | write_file file2.renamed "edit file2.renamed on renamed\n" 37 | fossil commit -m "edited file2.renamed" 38 | 39 | fossil update trunk 40 | fossil merge renamed 41 | fossil commit -m "merged from renamed" 42 | 43 | write_file file2.renamed "edit file2.renamed on trunk (1)\n" 44 | fossil commit -m "edited file2.renamed on trunk (1)" 45 | 46 | fossil update branched 47 | fossil merge trunk 48 | test_status_list merge_renames_2-1.1 $RESULT {UPDATE file2.renamed} 49 | fossil commit -m "merged edit from trunk (1:this merge succeeded)" 50 | 51 | fossil update trunk 52 | write_file file2.renamed "edit2 file2.renamed on trunk (2)\n" 53 | fossil commit -m "edited file2.renamed on trunk (2)" 54 | 55 | fossil update branched 56 | fossil merge trunk 57 | test_status_list merge_renames_2-1.2 $RESULT {UPDATE file2.renamed} 58 | 59 | test_cleanup 60 | -------------------------------------------------------------------------------- /test/merge_warn.test: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (c) 2016 D. Richard Hipp 3 | # 4 | # This program is free software; you can redistribute it and/or 5 | # modify it under the terms of the Simplified BSD License (also 6 | # known as the "2-Clause License" or "FreeBSD License".) 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. 11 | # 12 | # Author contact information: 13 | # drh@hwaci.com 14 | # http://www.hwaci.com/drh/ 15 | # 16 | ############################################################################ 17 | # 18 | # Testing "merge" command warnings 19 | # 20 | 21 | test_setup 22 | 23 | write_file f1 "f1" 24 | fossil add f1 25 | fossil commit -m "add f1" --tag pivot 26 | 27 | write_file f2 "f2" 28 | fossil add f2 29 | fossil commit -m "add f2" 30 | 31 | fossil update pivot 32 | fossil rm --hard f1 33 | write_file f2 "f2.1" 34 | write_file f3 "f3" 35 | fossil add f2 f3 36 | fossil commit -b b -m "delete f1, add f2 and f3" --tag mrg 37 | 38 | write_file f4 "f4" 39 | fossil add f4 40 | fossil commit -m "add f4" 41 | 42 | fossil update trunk 43 | write_file f1 "f1.1" 44 | write_file f3 "f3.1" 45 | fossil merge --integrate mrg -expectError 46 | test_status_list merge_warn-1 $RESULT { 47 | WARNING: 1 unmanaged files were overwritten 48 | WARNING: 2 merge conflicts 49 | DELETE f1 50 | MERGE f2 51 | ADDED f3 (overwrites an unmanaged file), original copy backed up locally 52 | WARNING: local edits lost for f1 53 | } 54 | test merge_warn-2 { 55 | [string first "ignoring --integrate: mrg is not a leaf" $RESULT]>=0 56 | } 57 | 58 | ############################################################################### 59 | 60 | test_cleanup 61 | -------------------------------------------------------------------------------- /test/subdir with spaces/filename with spaces.txt: -------------------------------------------------------------------------------- 1 | This file has a name that contains spaces. It is used to help verify 2 | that fossil can handle filenames that contain spaces. 3 | -------------------------------------------------------------------------------- /test/subdir-b/readme.txt: -------------------------------------------------------------------------------- 1 | This file exists in order to create the "subdir-b" subdirectory. There is 2 | exists sibling directory "subdir" that is a prefix of this subdirectory. 3 | This file exists for self-testing. 4 | -------------------------------------------------------------------------------- /test/subdir/README.html: -------------------------------------------------------------------------------- 1 |

An Example HTML Readme

2 | 3 |

4 | The test/subdir/ directory and its children exist purely for testing 5 | in the self-hosting Fossil repository. This particular file is used 6 | to verify that a file name "README.html" is displayed correctly. 7 | beneath the directory listing. 8 |

9 | 10 |
11 | 12 | 13 | 14 |
Thisis
a<table>
15 |
16 | -------------------------------------------------------------------------------- /test/subdir/one/readme.wiki: -------------------------------------------------------------------------------- 1 | Fossil Wiki Readme 2 | 3 | This is another test README file. The point of this file is to show that 4 | lower-case "readme" is recognized, and the Fossil-Wiki formatting is 5 | displayed correctly. 6 | 7 | * First bullet 8 | 9 | * Second bullet 10 | -------------------------------------------------------------------------------- /test/subdir/one/two/three/four/five/six/readme.txt: -------------------------------------------------------------------------------- 1 | This file exists in order to provide Fossil with a test case of a file 2 | that is deeply nested below many subdirectories. 3 | -------------------------------------------------------------------------------- /test/test-page++.wiki: -------------------------------------------------------------------------------- 1 | Test Page 2 | 3 | The purpose of this page is to test Fossil's ability to deal with 4 | embedded documentation pages that contain characters that should be 5 | escaped in URLs. 6 | 7 | Here is a link to the [./release-checklist.wiki | release checklist]. 8 | -------------------------------------------------------------------------------- /test/th1-docs-input.txt: -------------------------------------------------------------------------------- 1 | GET ${url} HTTP/1.1 2 | Host: localhost 3 | User-Agent: Fossil 4 | 5 | -------------------------------------------------------------------------------- /test/th1-hooks-input.txt: -------------------------------------------------------------------------------- 1 | GET ${url} HTTP/1.1 2 | Host: localhost 3 | User-Agent: Fossil 4 | 5 | -------------------------------------------------------------------------------- /test/th1-tcl1.txt: -------------------------------------------------------------------------------- 1 | 2 | # 3 | # This is a "TH1 fragment" used to test the Tcl integration features of TH1. 4 | # The corresponding test file executes this file using the test-th-render 5 | # Fossil command. 6 | # 7 | proc doOut {msg} {puts $msg; puts \n} 8 | doOut "tclReady(before) = [tclReady]" 9 | set channel stdout; tclInvoke set channel $channel 10 | doOut "tclReady(after) = [tclReady]" 11 | doOut [tclEval clock seconds] 12 | doOut [tclEval {set x [clock seconds]}] 13 | tclEval {puts $channel "[clock seconds]"} 14 | tclInvoke puts $channel "via Tcl invoke" 15 | doOut [tclExpr 2+2] 16 | doOut [tclExpr 2 + 2] 17 | doOut [tclInvoke set x "two words"] 18 | doOut [tclInvoke eval set y one_word] 19 | doOut [tclInvoke eval {set z "three words now"}] 20 | doOut [set x [tclEval {set x [clock seconds]}]] 21 | doOut [tclInvoke th1Eval {set y "two words"}] 22 | doOut [set z [tclInvoke th1Expr {2+2}]] 23 | doOut $x 24 | doOut $y 25 | doOut $z 26 | doOut [tclEval set x] 27 | doOut [tclEval set y] 28 | doOut [tclEval set z] 29 | 30 | -------------------------------------------------------------------------------- /test/th1-tcl2.txt: -------------------------------------------------------------------------------- 1 | 2 | # 3 | # This is a "TH1 fragment" used to test the Tcl integration features of TH1. 4 | # The corresponding test file executes this file using the test-th-render 5 | # Fossil command. 6 | # 7 | # NOTE: This test requires that the SQLite package be available for the Tcl 8 | # interpreter that is linked to the Fossil executable. 9 | # 10 | tclInvoke set repository_name [repository 1] 11 | proc doOut {msg} {puts $msg; puts \n} 12 | doOut [tclEval { 13 | package require sqlite3 14 | sqlite3 db $repository_name -readonly true 15 | set x [db eval {SELECT COUNT(*) FROM user;}] 16 | db close 17 | return $x 18 | }] 19 | 20 | -------------------------------------------------------------------------------- /test/th1-tcl3.txt: -------------------------------------------------------------------------------- 1 | 2 | # 3 | # This is a "TH1 fragment" used to test the Tcl integration features of TH1. 4 | # The corresponding test file executes this file using the test-th-render 5 | # Fossil command. 6 | # 7 | proc doOut {msg} {puts $msg; puts \n} 8 | doOut [tclEval bad_command] 9 | 10 | -------------------------------------------------------------------------------- /test/th1-tcl4.txt: -------------------------------------------------------------------------------- 1 | 2 | # 3 | # This is a "TH1 fragment" used to test the Tcl integration features of TH1. 4 | # The corresponding test file executes this file using the test-th-render 5 | # Fossil command. 6 | # 7 | proc doOut {msg} {puts $msg; puts \n} 8 | doOut [tclExpr 2/0] 9 | 10 | -------------------------------------------------------------------------------- /test/th1-tcl5.txt: -------------------------------------------------------------------------------- 1 | 2 | # 3 | # This is a "TH1 fragment" used to test the Tcl integration features of TH1. 4 | # The corresponding test file executes this file using the test-th-render 5 | # Fossil command. 6 | # 7 | proc doOut {msg} {puts $msg; puts \n} 8 | doOut [tclInvoke bad_command] 9 | 10 | -------------------------------------------------------------------------------- /test/th1-tcl6.txt: -------------------------------------------------------------------------------- 1 | 2 | # 3 | # This is a "TH1 fragment" used to test the Tcl integration features of TH1. 4 | # The corresponding test file executes this file using the test-th-render 5 | # Fossil command. 6 | # 7 | proc doOut {msg} {puts $msg; puts \n} 8 | doOut [tclEval th1Eval bad_command] 9 | 10 | -------------------------------------------------------------------------------- /test/th1-tcl7.txt: -------------------------------------------------------------------------------- 1 | 2 | # 3 | # This is a "TH1 fragment" used to test the Tcl integration features of TH1. 4 | # The corresponding test file executes this file using the test-th-render 5 | # Fossil command. 6 | # 7 | proc doOut {msg} {puts $msg; puts \n} 8 | 9 | # 10 | # BUGBUG: Attempting to divide by zero will crash TH1 with the error: 11 | # "child killed: floating-point exception" 12 | # 13 | # doOut [tclEval th1Expr 2/0] 14 | 15 | # 16 | # NOTE: For now, just cause an expression syntax error. 17 | # 18 | doOut [tclEval th1Expr 2**0] 19 | 20 | -------------------------------------------------------------------------------- /test/th1-tcl8.txt: -------------------------------------------------------------------------------- 1 | 2 | # 3 | # This is a "TH1 fragment" used to test the Tcl integration features of TH1. 4 | # The corresponding test file executes this file using the test-th-render 5 | # Fossil command. 6 | # 7 | proc doOut {msg} {puts $msg; puts \n} 8 | 9 | if {[tclInvoke set tcl_version] >= 8.6} { 10 | doOut [tclInvoke tailcall set x 1] 11 | } else { 12 | error "This test requires Tcl 8.6 or higher." 13 | } 14 | 15 | -------------------------------------------------------------------------------- /test/th1-tcl9.txt: -------------------------------------------------------------------------------- 1 | 2 | # 3 | # This is a "TH1 fragment" used to test the Tcl integration features of TH1. 4 | # The corresponding test file executes this file using the test-th-render 5 | # Fossil command. 6 | # 7 | set channel stdout; tclInvoke set channel $channel 8 | tclEval {puts $channel [list [file tail $argv0] $argc $argv]} 9 | 10 | -------------------------------------------------------------------------------- /test/update-test-1.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # Run this script in an empty directory. A single argument is the full 4 | # pathname of the fossil binary. Example: 5 | # 6 | # sh update-test-1.sh /home/drh/fossil/m1/fossil 7 | # 8 | export FOSSIL=$1 9 | rm -rf aaa bbb update-test-1.fossil 10 | 11 | # Create a test repository 12 | $FOSSIL new update-test-1.fossil 13 | 14 | # In checkout aaa, add file one.txt 15 | mkdir aaa 16 | cd aaa 17 | $FOSSIL open ../update-test-1.fossil 18 | echo one >one.txt 19 | $FOSSIL add one.txt 20 | $FOSSIL commit -m add-one --tag add-one 21 | 22 | # Open checkout bbb. 23 | mkdir ../bbb 24 | cd ../bbb 25 | $FOSSIL open ../update-test-1.fossil 26 | 27 | # Back in aaa, add file two.txt 28 | cd ../aaa 29 | echo two >two.txt 30 | $FOSSIL add two.txt 31 | $FOSSIL commit -m add-two --tag add-two 32 | 33 | # In bbb, delete file one.txt. Then update the change from aaa that 34 | # adds file two. Verify that one.txt says deleted. 35 | cd ../bbb 36 | $FOSSIL rm one.txt 37 | $FOSSIL changes 38 | echo '========================================================================' 39 | $FOSSIL update 40 | echo '======== The previous should show "ADD two.txt" ========================' 41 | $FOSSIL changes 42 | echo '======== The previous should show "DELETE one.txt" =====================' 43 | $FOSSIL commit --test -m check-in 44 | echo '======== Only file two.txt is checked in ===============================' 45 | -------------------------------------------------------------------------------- /test/update-test-2.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # Run this script in an empty directory. A single argument is the full 4 | # pathname of the fossil binary. Example: 5 | # 6 | # sh update-test-2.sh /home/drh/fossil/m1/fossil 7 | # 8 | export FOSSIL=$1 9 | rm -rf aaa bbb update-test-2.fossil 10 | 11 | # Create a test repository 12 | $FOSSIL new update-test-2.fossil 13 | 14 | # In checkout aaa, add file one.txt. 15 | mkdir aaa 16 | cd aaa 17 | $FOSSIL open ../update-test-2.fossil 18 | echo one >one.txt 19 | $FOSSIL add one.txt 20 | $FOSSIL commit -m add-one --tag add-one 21 | 22 | # Create checkout bbb. 23 | mkdir ../bbb 24 | cd ../bbb 25 | $FOSSIL open ../update-test-2.fossil 26 | 27 | # Back in aaa, make changes to one.txt. Add file two.txt. 28 | cd ../aaa 29 | echo change >>one.txt 30 | echo two >two.txt 31 | $FOSSIL add two.txt 32 | $FOSSIL commit -m 'chng one and add two' --tag add-two 33 | 34 | # In bbb, remove one.txt, then update. 35 | cd ../bbb 36 | $FOSSIL rm one.txt 37 | $FOSSIL changes 38 | echo '========================================================================' 39 | $FOSSIL update 40 | echo '======== Previous should show "ADD two.txt" and conflict on one.txt ====' 41 | $FOSSIL changes 42 | echo '======== The previous should show "DELETE one.txt" =====================' 43 | $FOSSIL commit --test -m 'check-in' 44 | echo '======== Only file two.txt is checked in ===============================' 45 | -------------------------------------------------------------------------------- /test/utf16be.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drhsqlite/fossil-mirror/55bbd5a5163ed2e28670d95395958d6c1e2a4fc4/test/utf16be.txt -------------------------------------------------------------------------------- /test/utf16le.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drhsqlite/fossil-mirror/55bbd5a5163ed2e28670d95395958d6c1e2a4fc4/test/utf16le.txt -------------------------------------------------------------------------------- /test/utf8-comment.txt: -------------------------------------------------------------------------------- 1 | The comment formatter handles fullwidth and multi-byte [äöü] and symbols [☃] and emoji [💾] characters! -------------------------------------------------------------------------------- /test/valgrind-www.tcl: -------------------------------------------------------------------------------- 1 | #!/usr/bin/tclsh 2 | # 3 | # Run this script in an open Fossil checkout at the top-level with a 4 | # fresh build of Fossil itself. This script will run fossil on hundreds 5 | # of different web-pages looking for memory allocation problems using 6 | # valgrind. Valgrind output appears on stderr. Suggested test scenario: 7 | # 8 | # make 9 | # tclsh valgrind-www.tcl 2>&1 | tee valgrind-out.txt 10 | # 11 | # Then examine the valgrind-out.txt file for issues. 12 | # 13 | proc run_query {url} { 14 | set fd [open q.txt w] 15 | puts $fd "GET $url HTTP/1.0\r\n\r" 16 | close $fd 17 | set msg {} 18 | catch {exec valgrind ./fossil test-http @ stderr} msg 19 | return $msg 20 | } 21 | set todo {} 22 | foreach url { 23 | /home 24 | /timeline 25 | /brlist 26 | /taglist 27 | /reportlist 28 | /setup 29 | /dir 30 | /wcontent 31 | } { 32 | set seen($url) 1 33 | set pending($url) 1 34 | } 35 | set limit 1000 36 | set npending [llength [array names pending]] 37 | proc get_pending {} { 38 | global pending npending 39 | set res [lindex [array names pending] [expr {int(rand()*$npending)}]] 40 | unset pending($res) 41 | incr npending -1 42 | return $res 43 | } 44 | for {set i 0} {$npending>0 && $i<$limit} {incr i} { 45 | set url [get_pending] 46 | puts "====== ([expr {$i+1}]) $url ======" 47 | set x [run_query $url] 48 | while {[regexp {<[aA] .*?href="(/[a-z].*?)".*?>(.*)$} $x all url tail]} { 49 | set u2 [string map {< < > > " \" & &} $url] 50 | if {![info exists seen($u2)]} { 51 | set pending($u2) 1 52 | set seen($u2) 1 53 | incr npending 54 | } 55 | set x $tail 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /tools/co-rsync.tcl: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # This is a TCL script that tries to sync the changes in a local 4 | # Fossil checkout to another machine. The changes are gathered into 5 | # a tarball, then sent via ssh to the remote and unpacked. 6 | # 7 | # Usage: 8 | # 9 | # co-rsync.tcl REMOTE 10 | # 11 | # Where REMOTE is the root of the remote repository into which changes 12 | # are to be moved. 13 | # 14 | # Use Case: 15 | # 16 | # Sometimes while in the middle of an edit it is useful to transfer 17 | # the incomplete changes to another machine for testing. This could 18 | # be accomplished using scp, but doing it that was is tedious if many 19 | # files in multiple directories have changed. This command does all 20 | # the necessary transfer using a single command. 21 | # 22 | # A Tcl comment, whose contents don't matter \ 23 | exec tclsh "$0" "$@" 24 | 25 | # Begin by changing directories to the root of the check-out. 26 | # 27 | set remote {} 28 | set dryrun 0 29 | proc usage {} { 30 | puts stderr "Usage: $::argv0 REMOTE" 31 | puts stderr "Options:" 32 | puts stderr " --dryrun No-op but print what would have happened" 33 | exit 1 34 | } 35 | foreach arg $argv { 36 | if {$arg=="--dryrun" || $arg=="--dry-run"} { 37 | set dryrun 1 38 | continue 39 | } 40 | if {$remote!=""} { 41 | usage 42 | } 43 | set remote $arg 44 | } 45 | if {$remote==""} usage 46 | 47 | set in [open {|fossil status} rb] 48 | set status [read $in] 49 | if {[catch {close $in} msg]} { 50 | puts stderr $msg 51 | exit 1 52 | } 53 | set root {} 54 | regexp {local-root: +([^\n]+)} $status all root 55 | if {$root==""} { 56 | puts stderr "not in a fossil check-out" 57 | exit 1 58 | } 59 | cd $root 60 | set tmpname filelist- 61 | for {set i 0} {$i<3} {incr i} { 62 | append tmpname [format %08x [expr {int(rand()*0xffffffff)}]] 63 | } 64 | set out [open $tmpname wb] 65 | puts $out [exec fossil changes --no-classify --no-merge] 66 | close $out 67 | set cmd "rsync -v --files-from=$tmpname . $remote" 68 | puts $cmd 69 | if {!$dryrun} { 70 | exec {*}$cmd 71 | } 72 | file delete $tmpname 73 | -------------------------------------------------------------------------------- /tools/cvs2fossil/cvs2fossil: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | ## -*- tcl -*- \ 3 | exec tclsh "$0" ${1+"$@"} 4 | 5 | # # ## ### ##### ######## ############# ##################### 6 | ## Copyright (c) 2007 Andreas Kupries. 7 | # 8 | # This software is licensed as described in the file LICENSE, which 9 | # you should have received as part of this distribution. 10 | # 11 | # This software consists of voluntary contributions made by many 12 | # individuals. For exact contribution history, see the revision 13 | # history and logs, available at http://fossil-scm.hwaci.com/fossil 14 | # # ## ### ##### ######## ############# ##################### 15 | 16 | ## Command line application wrapped around the import packages. 17 | 18 | # # ## ### ##### ######## ############# ##################### 19 | ## Requirements, extended package management for local packages. 20 | 21 | lappend auto_path [file join [file dirname [info script]] lib] 22 | 23 | package require Tcl 8.4 ; # Required runtime. 24 | package require vc::fossil::import::cvs ; # Main functionality. 25 | 26 | # # ## ### ##### ######## ############# ##################### 27 | ## Execution 28 | 29 | vc::fossil::import::cvs run $argv 30 | exit 0 31 | 32 | # # ## ### ##### ######## ############# ##################### 33 | -------------------------------------------------------------------------------- /tools/cvs2fossil/doc/LICENSE: -------------------------------------------------------------------------------- 1 | This code is under the same license as fossil itself. 2 | 3 | - - -- --- ----- --------- 4 | 5 | This program is free software; you can redistribute it and/or 6 | modify it under the terms of the GNU General Public 7 | License version 2 as published by the Free Software Foundation. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 | General Public License for more details. 13 | 14 | You should have received a copy of the GNU General Public 15 | License along with this library; if not, write to the 16 | Free Software Foundation, Inc., 59 Temple Place - Suite 330, 17 | Boston, MA 02111-1307, USA. 18 | 19 | - - -- --- ----- --------- 20 | -------------------------------------------------------------------------------- /tools/cvs2fossil/doc/README: -------------------------------------------------------------------------------- 1 | 2 | [Acknowledge the work done by the creators of and submitters to the 3 | cvs2svn project/application. Needed their documentation, notes, and 4 | code as guide for this implementation.] 5 | 6 | [Determine if their license allows me to copy their notes here for 7 | reference.] 8 | -------------------------------------------------------------------------------- /tools/cvs2fossil/getmemoryseries.tcl: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # -*- tcl -*- \ 3 | exec tclsh "$0" ${1+"$@"} 4 | 5 | package require csv 6 | foreach {in outbasic outmarker plot outbasicold} $argv break 7 | 8 | set in [open $in r] 9 | set ba [open $outbasic w] 10 | set mr [open $outmarker w] 11 | 12 | puts $ba "\# Time Memory MaxMemory" 13 | puts $mr "\# Time Memory" 14 | 15 | set k 0 16 | while {![eof $in]} { 17 | gets $in line 18 | #puts -nonewline \r[incr k] 19 | 20 | if {[string match *|=|* $line]} { 21 | # Basic series 22 | regexp {^(.*)\|=\|} $line -> line 23 | foreach {x _ cba _ _ _ mba} $line break 24 | puts $ba [join [list $x $cba $mba] \t] 25 | continue 26 | } 27 | 28 | if {[string match *|@|* $line]} { 29 | # Marker series 30 | regexp {^(.*)\|@\|} $line -> line 31 | foreach {x _ cba} $line break 32 | puts $mr [join [list $x $cba] \t] 33 | continue 34 | } 35 | } 36 | 37 | puts "" 38 | close $in 39 | close $ba 40 | close $mr 41 | 42 | # Generate gnuplot control file for the series 43 | set f [open $plot w] 44 | puts $f "" 45 | puts $f "plot \"$outbasic\" using 1:2 title 'Memory' with steps, \\" 46 | puts $f " \"$outbasic\" using 1:3 title 'Max Memory' with steps" 47 | puts $f "pause -1" 48 | puts $f "" 49 | close $f 50 | 51 | # Generate gnuplot control file for comparison of series 52 | set f [open ${plot}-compare w] 53 | puts $f "" 54 | puts $f "plot \"$outbasicold\" using 1:2 title 'Memory Old' with steps, \\" 55 | puts $f " \"$outbasic\" using 1:2 title 'Memory New' with steps" 56 | puts $f "pause -1" 57 | puts $f "" 58 | close $f 59 | exit 60 | 61 | # Comparison to baseline 62 | plot "basic.dat" using 1:2 title 'Memory Base' with steps lt rgb "blue", \ 63 | "newbasic.dat" using 1:2 title 'Memory Current' with steps lt rgb "red", \ 64 | 65 | # Comparison to baseline via normalization - need math op (div) 66 | plot "basic.dat" using 1:2 title 'Memory Base' with steps lt rgb "blue", \ 67 | "newbasic.dat" using 1:2 title 'Memory Current' with steps lt rgb "red", \ 68 | 69 | 70 | -------------------------------------------------------------------------------- /tools/cvs2fossil/lib/c2f_ftrunk.tcl: -------------------------------------------------------------------------------- 1 | ## -*- tcl -*- 2 | # # ## ### ##### ######## ############# ##################### 3 | ## Copyright (c) 2007 Andreas Kupries. 4 | # 5 | # This software is licensed as described in the file LICENSE, which 6 | # you should have received as part of this distribution. 7 | # 8 | # This software consists of voluntary contributions made by many 9 | # individuals. For exact contribution history, see the revision 10 | # history and logs, available at http://fossil-scm.hwaci.com/fossil 11 | # # ## ### ##### ######## ############# ##################### 12 | 13 | ## Trunk, the special main line of development in a file. 14 | 15 | # # ## ### ##### ######## ############# ##################### 16 | ## Requirements 17 | 18 | package require Tcl 8.4 ; # Required runtime. 19 | package require snit ; # OO system. 20 | 21 | # # ## ### ##### ######## ############# ##################### 22 | ## 23 | 24 | snit::type ::vc::fossil::import::cvs::file::trunk { 25 | # # ## ### ##### ######## ############# 26 | ## Public API 27 | 28 | constructor {} { 29 | return 30 | } 31 | 32 | # # ## ### ##### ######## ############# 33 | ## State 34 | 35 | # # ## ### ##### ######## ############# 36 | ## Internal methods 37 | 38 | # # ## ### ##### ######## ############# 39 | ## Configuration 40 | 41 | pragma -hastypeinfo no ; # no type introspection 42 | pragma -hasinfo no ; # no object introspection 43 | pragma -hastypemethods no ; # type is not relevant. 44 | pragma -simpledispatch yes ; # simple fast dispatch 45 | 46 | # # ## ### ##### ######## ############# 47 | } 48 | 49 | namespace eval ::vc::fossil::import::cvs::file { 50 | namespace export trunk 51 | } 52 | 53 | # # ## ### ##### ######## ############# ##################### 54 | ## Ready 55 | 56 | package provide vc::fossil::import::cvs::file::trunk 1.0 57 | return 58 | -------------------------------------------------------------------------------- /tools/cvs2fossil/lib/id.tcl: -------------------------------------------------------------------------------- 1 | # # ## ### ##### ######## ############# 2 | 3 | ## A simple class for handling an in-memory index mapping from 4 | ## arbitrary strings to a small numeric id. Can be queried in reverse 5 | ## too, returning the string for the id. 6 | 7 | ## Id's are starting from 1. 8 | 9 | # # ## ### ##### ######## ############# 10 | ## Requirements. 11 | 12 | package require Tcl ; # Runtime. 13 | package require snit ; # OO runtime. 14 | 15 | # # ## ### ##### ######## ############# 16 | ## Implementation. 17 | 18 | snit::type ::vc::tools::id { 19 | # # ## ### ##### ######## ############# 20 | 21 | constructor {} {} 22 | 23 | # # ## ### ##### ######## ############# 24 | ## Public API. 25 | ## - Put data into the index, incl. query for id of key. 26 | ## - Lookup data for id. 27 | 28 | method put {key} { 29 | if {[info exists mydata($key)]} { return $mydata($key) } 30 | incr mycounter 31 | 32 | set mydata($key) $mycounter 33 | set myinvert($mycounter) $key 34 | 35 | return $mycounter 36 | } 37 | 38 | # Explicitly load the database with a mapping. 39 | method map {id key} { 40 | set mydata($key) $id 41 | set myinvert($id) $key 42 | } 43 | 44 | method keyof {id} { return $myinvert($id) } 45 | method get {} { return [array get mydata] } 46 | 47 | # # ## ### ##### ######## ############# 48 | ## Internal. State. 49 | 50 | variable mydata -array {} ; # Map data -> id 51 | variable myinvert -array {} ; # Map id -> data 52 | variable mycounter 0 ; # Counter for id generation. 53 | 54 | # # ## ### ##### ######## ############# 55 | } 56 | 57 | namespace eval ::vc::tools { 58 | namespace export id 59 | } 60 | 61 | # # ## ### ##### ######## ############# 62 | ## Ready. 63 | 64 | package provide vc::tools::id 1.0 65 | -------------------------------------------------------------------------------- /tools/cvs2fossil/showg: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | dot -Tpng -o $$.png $1 4 | display $$.png 5 | rm $$.png 6 | exit 7 | -------------------------------------------------------------------------------- /tools/email-monitor.tcl: -------------------------------------------------------------------------------- 1 | #!/usr/bin/tcl 2 | # 3 | # Monitor the database file named on the command line for 4 | # incoming email messages. Print the "To:" line of each 5 | # email on standard output as it is received. 6 | # 7 | # It should be relatively easy to modify this scribe to actually 8 | # deliver the emails to a real email transfer agent such as 9 | # Postfix. 10 | # 11 | # For long-term use, set the polling interval to something 12 | # greater than the default 100 milliseconds. Polling once 13 | # every 10 seconds is probably sufficient. 14 | # 15 | set POLLING_INTERVAL 100 ;# milliseconds 16 | 17 | set dbfile [lindex $argv 0] 18 | if {[llength $argv]!=1} { 19 | puts stderr "Usage: $argv0 DBFILE" 20 | exit 1 21 | } 22 | package require sqlite3 23 | puts "SQLite version [sqlite3 -version]" 24 | sqlite3 db $dbfile 25 | db timeout 2000 26 | catch {db eval {PRAGMA journal_mode=WAL}} 27 | db eval { 28 | CREATE TABLE IF NOT EXISTS email( 29 | emailid INTEGER PRIMARY KEY, 30 | msg TXT 31 | ); 32 | } 33 | while {1} { 34 | db transaction immediate { 35 | set n 0 36 | db eval {SELECT msg FROM email} { 37 | set email ??? 38 | regexp {To: \S*} $msg to 39 | puts "$to ([string length $msg] bytes)" 40 | incr n 41 | } 42 | if {$n>0} { 43 | db eval {DELETE FROM email} 44 | } 45 | # Hold the write lock a little longer in order to exercise 46 | # the SQLITE_BUSY handling logic on the writing inside of 47 | # Fossil. Probably comment-out this line for production use. 48 | after 100 49 | } 50 | after $POLLING_INTERVAL 51 | } 52 | -------------------------------------------------------------------------------- /tools/email-sender.tcl: -------------------------------------------------------------------------------- 1 | #!/usr/bin/tcl 2 | # 3 | # Monitor the database file named by the DBFILE variable 4 | # looking for email messages sent by Fossil. Forward each 5 | # to /usr/sbin/sendmail. 6 | # 7 | set POLLING_INTERVAL 10000 ;# milliseconds 8 | set DBFILE /home/www/fossil/emailqueue.db 9 | set PIPE "/usr/sbin/sendmail -ti" 10 | 11 | package require sqlite3 12 | # puts "SQLite version [sqlite3 -version]" 13 | sqlite3 db $DBFILE 14 | db timeout 5000 15 | catch {db eval {PRAGMA journal_mode=WAL}} 16 | db eval { 17 | CREATE TABLE IF NOT EXISTS email( 18 | emailid INTEGER PRIMARY KEY, 19 | msg TXT 20 | ); 21 | } 22 | while {1} { 23 | db transaction immediate { 24 | set n 0 25 | db eval {SELECT msg FROM email} { 26 | set pipe $PIPE 27 | if {[regexp {\nFrom:[^\n]*<([^>]+)>} $msg all addr]} { 28 | append pipe " -f $addr" 29 | } 30 | set out [open |$pipe w] 31 | puts -nonewline $out $msg 32 | flush $out 33 | close $out 34 | incr n 35 | } 36 | if {$n>0} { 37 | db eval {DELETE FROM email} 38 | } 39 | } 40 | after $POLLING_INTERVAL 41 | } 42 | -------------------------------------------------------------------------------- /tools/encode_math.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | bindir="`dirname "$0"`" 3 | topdir="`dirname "$bindir"`" 4 | mimetex -d "`cat "$topdir/art/encode1.tex"`" > "$topdir/www/encode1.gif" 5 | mimetex -d "`cat "$topdir/art/encode2.tex"`" > "$topdir/www/encode2.gif" 6 | mimetex -d "`cat "$topdir/art/encode3.tex"`" > "$topdir/www/encode3.gif" 7 | mimetex -d "`cat "$topdir/art/encode4.tex"`" > "$topdir/www/encode4.gif" 8 | mimetex -d "`cat "$topdir/art/encode5.tex"`" > "$topdir/www/encode5.gif" 9 | mimetex -d "`cat "$topdir/art/encode6.tex"`" > "$topdir/www/encode6.gif" 10 | mimetex -d "`cat "$topdir/art/encode7.tex"`" > "$topdir/www/encode7.gif" 11 | mimetex -d "`cat "$topdir/art/encode8.tex"`" > "$topdir/www/encode8.gif" 12 | mimetex -d "`cat "$topdir/art/encode9.tex"`" > "$topdir/www/encode9.gif" 13 | -------------------------------------------------------------------------------- /tools/fossil-autocomplete.bash: -------------------------------------------------------------------------------- 1 | # Command name completion for Fossil. 2 | # Mailing-list contribution by Stuart Rackham. 3 | function _fossil() { 4 | local cur commands 5 | cur=${COMP_WORDS[COMP_CWORD]} 6 | commands=$(fossil help --all) 7 | if [ $COMP_CWORD -eq 1 ] || [ ${COMP_WORDS[1]} = help ]; then 8 | # Command name completion for 1st argument or 2nd if help command. 9 | COMPREPLY=( $(compgen -W "$commands" $cur) ) 10 | else 11 | # File name completion for other arguments. 12 | COMPREPLY=( $(compgen -f $cur{}) ) 13 | fi 14 | } 15 | complete -o default -F _fossil fossil f 16 | -------------------------------------------------------------------------------- /tools/fslsrv: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | FOSSIL=fossil 3 | PGARGS="-P 1" 4 | OLDPID=`pgrep -P 1 fossil` 5 | SITE=https://example.com 6 | PORT=12345 7 | 8 | if [ "$1" = "-f" ] ; then PGARGS= ; shift ; fi 9 | 10 | if [ -n "$OLDPID" ] 11 | then 12 | echo "Killing running Fossil server first..." 13 | pkill $PGARGS fossil 14 | 15 | for i in $(seq 30) 16 | do 17 | if [ -n "$(pgrep $PGARGS fossil)" ] 18 | then 19 | if [ $i -eq 1 ] 20 | then 21 | echo -n "Waiting for it to die..." 22 | else 23 | echo -n . 24 | fi 25 | sleep '0.1' 26 | else 27 | break 28 | fi 29 | echo 30 | done 31 | 32 | killall -9 fossil 2> /dev/null 33 | fi 34 | 35 | if [ -x ./fossil ] 36 | then 37 | # We're running from a build tree, so use that version instead 38 | FOSSIL=./fossil 39 | fi 40 | 41 | function start_one() { 42 | bn=$1 43 | ln="$2" 44 | 45 | $FOSSIL server $extra \ 46 | --scgi \ 47 | --localhost \ 48 | --port $PORT \ 49 | --jsmode bundled \ 50 | --baseurl ${SITE}/$bn \ 51 | --errorlog ~/log/fossil/$bn-errors.log \ 52 | ~/museum/$bn.fossil > ~/log/fossil/$bn-stdout.log & 53 | echo Started $ln Fossil server, port $PORT, PID $!. 54 | PORT=$(($PORT + 1)) 55 | } 56 | 57 | start_one first "First Project" 58 | start_one second "Second Project" 59 | start_one third "Third Project" 60 | -------------------------------------------------------------------------------- /tools/randomize-js-names.tcl: -------------------------------------------------------------------------------- 1 | #!/usr/bin/tclsh 2 | # 3 | # This script is run as part of "make wasm". After emcc has 4 | # run to generate extsrc/pikchr.wasm and extsrc/pikchr.js from 5 | # extsrc/pikchr.c, we need to make changes to these filenames to 6 | # work around caching problems. 7 | # 8 | # (1) in extsrc/pikchr.js -> change "pikchr.wasm" into 9 | # "pikchr-vNNNNNNNN.wasm" where Ns are random digits. 10 | # 11 | # (2) in extsrc/pikchr-worker.js -> change "pikchr-vNNNNNNNN.js" 12 | # by altering the random digits N. 13 | # 14 | set DIR extsrc 15 | if {[llength $argv]>0} { 16 | set DIR [lindex $argv 0] 17 | } 18 | 19 | set R [expr {int(rand()*10000000000)+1000000000}] 20 | set in [open $DIR/pikchr.js rb] 21 | set f1 [read $in] 22 | close $in 23 | set f1mod [regsub {\ypikchr(-v\d+)?\.wasm\y} $f1 "pikchr-v$R.wasm"] 24 | set out [open $DIR/pikchr.js wb] 25 | puts -nonewline $out $f1mod 26 | close $out 27 | puts "modified $DIR/pikchr.js to reference \"pikchr-v$R.wasm\"" 28 | 29 | set in [open $DIR/pikchr-worker.js rb] 30 | set f1 [read $in] 31 | close $in 32 | set f1mod [regsub {\ypikchr(-v\d+)?\.js\y} $f1 "pikchr-v$R.js"] 33 | set out [open $DIR/pikchr-worker.js wb] 34 | puts -nonewline $out $f1mod 35 | close $out 36 | puts "modified $DIR/pikchr-worker.js to reference \"pikchr-v$R.js\"" 37 | -------------------------------------------------------------------------------- /win/build32.bat: -------------------------------------------------------------------------------- 1 | REM Based on /wiki/Release%20Build%20How-To 2 | nmake /f Makefile.msc FOSSIL_ENABLE_SSL=1 FOSSIL_ENABLE_WINXP=1 OPTIMIZATIONS=4 clean fossil.exe 3 | dumpbin /dependents fossil.exe 4 | -------------------------------------------------------------------------------- /win/build64.bat: -------------------------------------------------------------------------------- 1 | REM Based on /wiki/Release%20Build%20How-To 2 | nmake /f Makefile.msc FOSSIL_ENABLE_SSL=1 OPTIMIZATIONS=4 clean fossil.exe 3 | dumpbin /dependents fossil.exe 4 | -------------------------------------------------------------------------------- /win/fossil.exe.manifest: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | Simple, high-reliability, distributed software configuration management system. 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 33 | true 34 | 35 | 36 | 37 | 38 | 41 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /win/fossil.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drhsqlite/fossil-mirror/55bbd5a5163ed2e28670d95395958d6c1e2a4fc4/win/fossil.ico -------------------------------------------------------------------------------- /win/fossil.rc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drhsqlite/fossil-mirror/55bbd5a5163ed2e28670d95395958d6c1e2a4fc4/win/fossil.rc -------------------------------------------------------------------------------- /win/include/unistd.h: -------------------------------------------------------------------------------- 1 | #ifndef _UNISTD_H 2 | #define _UNISTD_H 1 3 | 4 | /* This file intended to serve as a drop-in replacement for 5 | * unistd.h on Windows 6 | * Please add functionality as neeeded 7 | */ 8 | 9 | #include 10 | #include 11 | #define srandom srand 12 | #define random rand 13 | #if defined(__DMC__) 14 | #endif 15 | 16 | #if defined(_WIN32) 17 | #define _CRT_SECURE_NO_WARNINGS 1 18 | 19 | #ifndef F_OK 20 | #define F_OK 0 21 | #endif /* not F_OK */ 22 | 23 | #ifndef X_OK 24 | #define X_OK 1 25 | #endif /* not X_OK */ 26 | 27 | #ifndef W_OK 28 | #define W_OK 2 29 | #endif /* not W_OK */ 30 | 31 | #ifndef R_OK 32 | #define R_OK 4 33 | #endif /* not R_OK */ 34 | 35 | #define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR) 36 | #define S_ISREG(m) (((m) & S_IFMT) == S_IFREG) 37 | 38 | 39 | 40 | #endif 41 | 42 | #define access _access 43 | #define ftruncate _chsize 44 | 45 | #define ssize_t int 46 | 47 | #endif /* unistd.h */ 48 | -------------------------------------------------------------------------------- /www/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drhsqlite/fossil-mirror/55bbd5a5163ed2e28670d95395958d6c1e2a4fc4/www/apple-touch-icon.png -------------------------------------------------------------------------------- /www/background.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drhsqlite/fossil-mirror/55bbd5a5163ed2e28670d95395958d6c1e2a4fc4/www/background.jpg -------------------------------------------------------------------------------- /www/build-icons/linux.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drhsqlite/fossil-mirror/55bbd5a5163ed2e28670d95395958d6c1e2a4fc4/www/build-icons/linux.gif -------------------------------------------------------------------------------- /www/build-icons/linux64.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drhsqlite/fossil-mirror/55bbd5a5163ed2e28670d95395958d6c1e2a4fc4/www/build-icons/linux64.gif -------------------------------------------------------------------------------- /www/build-icons/mac.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drhsqlite/fossil-mirror/55bbd5a5163ed2e28670d95395958d6c1e2a4fc4/www/build-icons/mac.gif -------------------------------------------------------------------------------- /www/build-icons/openbsd.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drhsqlite/fossil-mirror/55bbd5a5163ed2e28670d95395958d6c1e2a4fc4/www/build-icons/openbsd.gif -------------------------------------------------------------------------------- /www/build-icons/src.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drhsqlite/fossil-mirror/55bbd5a5163ed2e28670d95395958d6c1e2a4fc4/www/build-icons/src.gif -------------------------------------------------------------------------------- /www/build-icons/win32.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drhsqlite/fossil-mirror/55bbd5a5163ed2e28670d95395958d6c1e2a4fc4/www/build-icons/win32.gif -------------------------------------------------------------------------------- /www/chroot.md: -------------------------------------------------------------------------------- 1 | # The Server Chroot Jail 2 | 3 | If you run Fossil as root in any mode that [serves data on the 4 | network][srv], and you're running it on Unix or a compatible OS, Fossil 5 | will drop itself into a [`chroot(2)` jail][cj] shortly after starting 6 | up. The usual reason for launching Fossil 7 | as root to allow it to bind to TCP port 80 for HTTP 8 | service, since normal users are restricted to ports 1024 and higher. 9 | 10 | Fossil uses the owner of the Fossil repository file as its new user 11 | ID when it drops root privileges. 12 | 13 | When Fossil enters a chroot jail, it needs to have all of its dependencies 14 | inside the chroot jail in order to continue work. There are several 15 | resources that need to be inside the chroot jail with Fossil in order for 16 | Fossil to work correctly: 17 | 18 | * the repository file(s) 19 | 20 | * `/dev/null` — create it with `mknod(8)` inside the jail directory 21 | ([Linux example][mnl], [OpenBSD example][obsd]) 22 | 23 | * `/dev/urandom` — ditto 24 | 25 | * `/proc` — you might need to mount this virtual filesystem inside the 26 | jail on Linux systems that make use of [Fossil’s server load 27 | shedding feature][fls] 28 | 29 | * any shared libraries your `fossil` binary is linked to, unless you 30 | [configured Fossil with `--static`][bld] to avoid it 31 | 32 | Fossil does all of this as one of many layers of defense against 33 | hacks and exploits. You can prevent Fossil from entering the chroot 34 | jail using the --nojail option to the 35 | [fossil server command](/help?cmd=server) 36 | but you cannot make Fossil hold onto root privileges. Fossil always drops 37 | root privilege before accepting inputs, for security. 38 | 39 | 40 | [bld]: https://fossil-scm.org/home/doc/trunk/www/build.wiki 41 | [cj]: https://en.wikipedia.org/wiki/Chroot 42 | [fls]: ./loadmgmt.md 43 | [mnl]: https://fossil-scm.org/forum/forumpost/90caff30cb 44 | [srv]: ./server/ 45 | [obsd]: ./server/openbsd/fastcgi.md#chroot 46 | -------------------------------------------------------------------------------- /www/co-vs-up.md: -------------------------------------------------------------------------------- 1 | # Checkout vs Update 2 | 3 | Fossil has two commands that look like they do the same thing on initial 4 | examination, [`fossil update`][up] and [`fossil checkout`][co], but 5 | there are several key differences: 6 | 7 | 1. `fossil checkout` aborts if there are changed files in the local 8 | directory unless you give the `--force` option, whereas 9 | `fossil update` merges upstream changes with your local changes. 10 | Since Fossil tends to follow the CVS command design, and CVS 11 | popularized the [merge on update][cvsmu] workflow, we expect that 12 | Fossil’s update behavior is more likely to be what you want. 13 | 14 | 2. Update triggers an autosync attempt; checkout does not. 15 | 16 | 3. Several features in `fossil update` do not exist in 17 | `fossil checkout`, so developing a habit to type `fossil up` 18 | means you’re more likely to have the features you want at hand. 19 | 20 | 4. Inversely, the `fossil checkout --keep` feature doesn’t exist in 21 | `fossil update`, but it’s a rarely-needed operation, so it doesn’t 22 | provide a good reason to develop a habit of using `fossil checkout` 23 | instead. 24 | 25 | In summary, these are two separate commands; neither is an alias for the 26 | other. They overlap enough that they can be used interchangeably for 27 | some use cases, but `update` is more powerful and more broadly useful. 28 | 29 | [co]: /help?cmd=checkout 30 | [cvsmu]: http://web.mit.edu/gnu/doc/html/cvs_7.html#SEC37 31 | [up]: /help?cmd=update 32 | -------------------------------------------------------------------------------- /www/contact.md: -------------------------------------------------------------------------------- 1 | # Contact Information 2 | 3 | ## Questions, Suggestions, and Bug Reports 4 | 5 | The developers for Fossil monitor the [Fossil Forum][1]. Post there 6 | with questions, improvement suggestions, and/or bug reports. 7 | 8 | [1]: https://fossil-scm.org/forum/forum 9 | 10 | ## Security Problems and Vulnerabilities 11 | 12 | If you think you have discovered a security vulnerability in Fossil 13 | and want to report the problem privately, send 14 | email to "drh at sqlite dot org". 15 | -------------------------------------------------------------------------------- /www/copyright-release.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drhsqlite/fossil-mirror/55bbd5a5163ed2e28670d95395958d6c1e2a4fc4/www/copyright-release.pdf -------------------------------------------------------------------------------- /www/css/index.md: -------------------------------------------------------------------------------- 1 | Cascading Style Sheet Notes 2 | =========================== 3 | 4 | This is a collection of technical notes that document the design of 5 | the Document Object Model (DOM) and corresponding Cascading Style Sheet (CSS) 6 | attributes used for customing the look-and-feel of Fossil. These notes 7 | are of interest to people who want to customize the Fossil skin or 8 | enhance the internal display logic. 9 | 10 | This is a collection of documents that we hope will grow over time. 11 | 12 | * [Diff styling](./diff.md) 13 | -------------------------------------------------------------------------------- /www/encode1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drhsqlite/fossil-mirror/55bbd5a5163ed2e28670d95395958d6c1e2a4fc4/www/encode1.gif -------------------------------------------------------------------------------- /www/encode2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drhsqlite/fossil-mirror/55bbd5a5163ed2e28670d95395958d6c1e2a4fc4/www/encode2.gif -------------------------------------------------------------------------------- /www/encode3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drhsqlite/fossil-mirror/55bbd5a5163ed2e28670d95395958d6c1e2a4fc4/www/encode3.gif -------------------------------------------------------------------------------- /www/encode4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drhsqlite/fossil-mirror/55bbd5a5163ed2e28670d95395958d6c1e2a4fc4/www/encode4.gif -------------------------------------------------------------------------------- /www/encode5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drhsqlite/fossil-mirror/55bbd5a5163ed2e28670d95395958d6c1e2a4fc4/www/encode5.gif -------------------------------------------------------------------------------- /www/encode6.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drhsqlite/fossil-mirror/55bbd5a5163ed2e28670d95395958d6c1e2a4fc4/www/encode6.gif -------------------------------------------------------------------------------- /www/encode7.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drhsqlite/fossil-mirror/55bbd5a5163ed2e28670d95395958d6c1e2a4fc4/www/encode7.gif -------------------------------------------------------------------------------- /www/encode8.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drhsqlite/fossil-mirror/55bbd5a5163ed2e28670d95395958d6c1e2a4fc4/www/encode8.gif -------------------------------------------------------------------------------- /www/encode9.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drhsqlite/fossil-mirror/55bbd5a5163ed2e28670d95395958d6c1e2a4fc4/www/encode9.gif -------------------------------------------------------------------------------- /www/fossil.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drhsqlite/fossil-mirror/55bbd5a5163ed2e28670d95395958d6c1e2a4fc4/www/fossil.gif -------------------------------------------------------------------------------- /www/fossil2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drhsqlite/fossil-mirror/55bbd5a5163ed2e28670d95395958d6c1e2a4fc4/www/fossil2.gif -------------------------------------------------------------------------------- /www/fossil3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drhsqlite/fossil-mirror/55bbd5a5163ed2e28670d95395958d6c1e2a4fc4/www/fossil3.gif -------------------------------------------------------------------------------- /www/fossil_logo_small.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drhsqlite/fossil-mirror/55bbd5a5163ed2e28670d95395958d6c1e2a4fc4/www/fossil_logo_small.gif -------------------------------------------------------------------------------- /www/fossil_logo_small2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drhsqlite/fossil-mirror/55bbd5a5163ed2e28670d95395958d6c1e2a4fc4/www/fossil_logo_small2.gif -------------------------------------------------------------------------------- /www/fossil_logo_small3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drhsqlite/fossil-mirror/55bbd5a5163ed2e28670d95395958d6c1e2a4fc4/www/fossil_logo_small3.gif -------------------------------------------------------------------------------- /www/fossil_prompt.wiki: -------------------------------------------------------------------------------- 1 | Fossilized Bash Prompt 2 | 3 | Dan Kennedy has contributed a 4 | [./fossil_prompt.sh?mimetype=text/plain | bash script] 5 | that manipulates the bash prompt to show the status of 6 | the Fossil repository that the user is currently visiting. 7 | The prompt shows the branch, version, and time stamp for the 8 | current checkout, and the prompt changes colors from blue to 9 | red when there are uncommitted changes. 10 | 11 | To try out this script, simply download it from the link above, then 12 | type: 13 | 14 |
15 | . fossil_prompt.sh
16 | 
17 | 18 | For a permanent installation, you can graft the code into your 19 | .bashrc file in your home directory. 20 | 21 | The code is very simple (only 32 non-comment lines, as of this writing) 22 | and hence easy to customize. 23 | -------------------------------------------------------------------------------- /www/hacker-howto.wiki: -------------------------------------------------------------------------------- 1 | Fossil Developer How-To 2 | 3 | The following links are of interest to programmers who want to modify 4 | or enhance Fossil itself. Ordinary users can safely ignore this information. 5 | 6 | * [./build.wiki | How To Compile And Install Fossil] 7 | * [./customskin.md | Theming Fossil] 8 | * [./adding_code.wiki#newcmd | Adding New Commands To Fossil] 9 | * [./makefile.wiki | The Fossil Build Process] 10 | * [./tech_overview.wiki | A Technical Overview of Fossil] 11 | * [./contribute.wiki|Contributing Code Or Enhancements To The Fossil Project] 12 | * [./fileformat.wiki|Fossil Artifact File Format] 13 | * [./sync.wiki|The Sync Protocol] 14 | * [./style.wiki | Coding Style Guidelines] 15 | * [./checkin.wiki | Pre-checkin Checklist] 16 | * [../test/release-checklist.wiki | Release Checklist] 17 | * [./backoffice.md | The "backoffice" subsystem] 18 | -------------------------------------------------------------------------------- /www/json-api/_template.md: -------------------------------------------------------------------------------- 1 | # JSON API: X 2 | ([⬑JSON API Index](index.md)) 3 | 4 | Jump to: 5 | 6 | * [Foo](#foo) 7 | * [Bar](#bar) 8 | * [Baz](#baz) 9 | 10 | --- 11 | 12 | 13 | # Foo 14 | 15 | 16 | # Bar 17 | 18 | 19 | # Baz 20 | 21 | 22 | # Footnotes 23 | -------------------------------------------------------------------------------- /www/json-api/api-checkout.md: -------------------------------------------------------------------------------- 1 | # JSON API: /status 2 | ([⬑JSON API Index](index.md)) 3 | 4 | # Status of Local Checkout 5 | 6 | **Status:** implemented 20130223 7 | 8 | **Required permissions:** n/a (local access only) 9 | 10 | **Request:** `/json/status` 11 | 12 | This command requires a local checkout and is the analog to the "fossil 13 | status" command. 14 | 15 | **Request Options:** currently none. 16 | 17 | Payload example: 18 | 19 | ```json 20 | { 21 | "repository":"/home/stephan/cvs/fossil/fossil.fsl", 22 | "localRoot":"/home/stephan/cvs/fossil/fossil/", 23 | "checkout":{ 24 | "uuid":"b38bb4f9bd27d0347b62ecfac63c4b8f57b5c93b", 25 | "tags":["trunk"], 26 | "datetime":"2013-02-22 17:34:19 UTC", 27 | "timestamp":1361554459 28 | }, 29 | /* "parent" info is currently missing. */ 30 | "files":[ 31 | {"name":"src/checkin.c", "status":"edited"} 32 | ...], 33 | "errorCount":0 /* see notes below */ 34 | } 35 | ``` 36 | 37 | Notes: 38 | 39 | - The `checkout.tags` property follows the framework-wide convention 40 | that the first tag in the list is the primary branch and any others 41 | are secondary. 42 | - `errorCount` is +1 for each missing file. Conflicts are not treated as 43 | errors because the CLI 'status' command does not treat them as such. 44 | - The `"status"` entry for each of the `"files"` entries will be either a 45 | single string containing a single description of the status change, or 46 | an array of strings if more than one change was made, e.g. `"edited"` 47 | and `"renamed"`. The status strings include:\ 48 | `deleted`, `new`, `notAFile`, `missing`, `updatedByMerge`, 49 | `updatedByIntegrate`, `addedBymerge`, `addedByIntegrate`, 50 | `conflict`, `edited`, `renamed` 51 | - File objects with a `"renamed"` status will contain a `"priorName"` 52 | property in addition to the `"name"` property reported in all cases. 53 | - TODO: Info for the parent version is currently missing. 54 | - TODO: "merged with" info for the checkout is currently missing. 55 | -------------------------------------------------------------------------------- /www/json-api/api-config.md: -------------------------------------------------------------------------------- 1 | # JSON API: /config 2 | ([⬑JSON API Index](index.md)) 3 | 4 | Jump to: 5 | 6 | * [Get Config](#get) 7 | * [Set Config](#set) 8 | 9 | --- 10 | 11 | 12 | # Fetch Config 13 | 14 | **Status:** Implemented 20120217 15 | 16 | **Required permissions:** "s" 17 | 18 | **Request:** `/json/config/get/Area[/Area2/...AreaN]` 19 | 20 | Where "Area" can be any combination of: *skin*, *ticket*, *project*, 21 | *all*, or *skin-backup* (which is not included in "all" by default). 22 | 23 | **Response payload example:** 24 | 25 | ```json 26 | { 27 | "ignore-glob":"*~", 28 | "project-description":"For testing Fossil's JSON API.", 29 | "project-name":"fossil-json-tests" 30 | } 31 | ``` 32 | 33 | 34 | # Set/Modify Config 35 | 36 | Not implemented. 37 | -------------------------------------------------------------------------------- /www/json-api/api-diff.md: -------------------------------------------------------------------------------- 1 | # JSON API: /diff 2 | ([⬑JSON API Index](index.md)) 3 | 4 | # Diffs 5 | 6 | **Status:** implemented 20111007 7 | 8 | **Required permissions:** "o" 9 | 10 | **Request:** `/json/diff[/version1[/version2]]` 11 | 12 | **Request options:** 13 | 14 | - `v1=string` Is the "from" version. It may optionally be the first 15 | positional parameter/path element after the command name. 16 | - `v2=string` Is the "to" version. It may optionally be the first 17 | positional parameter/path element after the v1 part. 18 | - `context=integer` (default=unspecified) Defines the number of context 19 | lines to display in the diff.\ 20 | CLI: `--context|-c` 21 | - `sbs=bool` (default=false) Generates "side-by-side" diffs, but their 22 | utility in JSON mode is questionable. 23 | - `html=bool` (default=false) causes the output to be marked up with 24 | HTML in the same manner as it is in the HTML interface. 25 | 26 | **Response payload example:** 27 | 28 | ```json 29 | { 30 | "from":"7a83a5cbd0424cefa2cdc001de60153aede530f5", 31 | "to":"96920e7c04746c55ceed6e24fc82879886cb8197", 32 | "diff":"@@ -1,7 +1,7 @@\\n-C factored\\\\sout..." 33 | } 34 | ``` 35 | 36 | TODOs: 37 | 38 | - Unlike the standard diff command, which apparently requires a commit 39 | hash, this one diffs individual file versions. If a commit hash is 40 | provided, a diff of the manifests is returned. (That should be 41 | considered a bug - we should return a combined diff in that case.) 42 | - If hashes from two different types of artifacts are given, results 43 | are unspecified. Garbage in, garbage out, and all that. 44 | - For file diffs, add the file name(s) to the response payload. 45 | -------------------------------------------------------------------------------- /www/json-api/api-dir.md: -------------------------------------------------------------------------------- 1 | # JSON API: /dir 2 | ([⬑JSON API Index](index.md)) 3 | 4 | # Directory Listing 5 | 6 | **Status:** implemented 20120316 7 | 8 | **Required privileges:** "o". Was "h" prior to 20120720, but the HTML 9 | version of /dir changed permissions and this API was modified to match 10 | it. 11 | 12 | **Request:** `/json/dir` 13 | 14 | Options: 15 | 16 | - `checkin=commit` (use "tip" for the latest). If checkin is not set 17 | then all files from all versions of the tree are returned (but only 18 | once per file - not with complete version info for each file in all 19 | branches).\ 20 | CLI: `--checkin|-ci CHECKIN` 21 | - `name=subdirectory` name. To fetch the root directory, don't pass this 22 | option, or use an empty value or "/".\ 23 | CLI: use `--name|-n NAME` or pass it as the first argument after 24 | the `dir` subcommand. 25 | 26 | **Response payload example:** 27 | 28 | ```json 29 | { 30 | "name":"/", /* dir name */ 31 | "uuid":"ac6366218035ed62254c8d458f30801273e5d4fc", 32 | "checkin":"tip", 33 | "entries":[{ 34 | "name": "ajax", /* file name/dir name fragment */ 35 | "isDir": true, /* only set for directories */ 36 | /* The following properties are ONLY set if 37 | the 'checkin' parameter is provided. 38 | */ 39 | "uuid": "..." /*only for files, not dirs*/, 40 | "size": number, 41 | "timestamp": number 42 | },...] 43 | } 44 | ``` 45 | 46 | The checkin property is only set if the request includes it. The 47 | entry-specific uuid and size properties (e.g. `entries[0].uuid`) are 48 | only set if the checkin request property is set and they refer to the 49 | latest version of that file for the given checkin. The `isDir` property is 50 | only set on directory entries. 51 | 52 | This command does not recurse into subdirectories, though it "should be" 53 | simple enough to add the option to do so. 54 | -------------------------------------------------------------------------------- /www/json-api/api-finfo.md: -------------------------------------------------------------------------------- 1 | # JSON API: /finfo 2 | ([⬑JSON API Index](index.md)) 3 | 4 | # File Information 5 | 6 | **Status:** implemented 2012-something, but output structure is likely 7 | to change. 8 | 9 | **Required privileges:** "o" 10 | 11 | **Request:** `/json/finfo?name=path/to/file` 12 | 13 | Options: 14 | 15 | - `name=string`. Required. Use the absolute name of the file, including 16 | any directory parts, and without a leading slash. e.g. 17 | `"path/to/my.c"`.\ 18 | CLI mode: `--name` or positional argument. 19 | - `checkin=string`. Only return info related to this specific checkin, 20 | as opposed to listing all checkins. If set, neither "before" nor 21 | "after" have any effect.\ 22 | CLI mode: `--checkin|-ci` 23 | - `before=DATETIME` only lists checkins from on or before this time.\ 24 | CLI mode: `--before|-b` 25 | - `after=DATETIME` only lists checkins from on or after this time. 26 | Using this option swaps the sort order, to provide reasonable 27 | behaviour in conjunction with the limit option.\ 28 | Only one of "before" and "after" may be specified, and if both are 29 | specified then which one takes precedence is unspecified.\ 30 | CLI mode: `--after|-a` 31 | - `limit=integer` limits the output to (at most) the given number of 32 | associated checkins.\ 33 | CLI mode: `--limit|-n` 34 | 35 | **Response payload example (very likely to change!):** 36 | 37 | ```json 38 | { 39 | "name":"ajax/i-test/rhino-shell.js", 40 | "checkins":[{ 41 | "checkin":"6b7ddfefbfb871f793378d8f276fe829106ca49b", 42 | "uuid":"2b735676d55e3d06d670ffbc643e5d3f748b95ea", 43 | "timestamp":1329514170, 44 | "user":"viriketo", 45 | "comment":"<...snip...>", 46 | "size":6293, 47 | "state":"added|modified|removed" 48 | },…] 49 | } 50 | ``` 51 | 52 | **FIXME:** there is a semantic discrepancy between `/json/artifact`'s 53 | `payload.checkins[N].uuid` and this command's. 54 | -------------------------------------------------------------------------------- /www/json-api/api-stat.md: -------------------------------------------------------------------------------- 1 | # JSON API: /stat 2 | ([⬑JSON API Index](index.md)) 3 | 4 | # Repository Stats 5 | 6 | **Status:** implemented 7 | 8 | **Required privileges:** "o" 9 | 10 | **Request:** `/json/stat` 11 | 12 | **Response payload example:** (fields marked with `*` are omitted in 13 | "brief" mode) 14 | 15 | ```json 16 | { 17 | "projectName":"Fossil", 18 | "projectDescription":"Fossil SCM", /* added 20120217 */ 19 | "repositorySize":24464384, 20 | * "blobCount":13612, 21 | * "deltaCount":9348, 22 | * "uncompressedArtifactSize":589205834, 23 | * "averageArtifactSize":43292, 24 | * "maxArtifactSize":4620758, 25 | * "compressionRatio":"24:1", 26 | * "checkinCount":3150, 27 | * "fileCount":456, 28 | * "wikiPageCount":23, 29 | * "ticketCount":940, 30 | "ageDays":1512, 31 | "ageYears":4.139744, 32 | "projectCode":"25d3a4b83202c0d616a5ed17334f180dac4434dc", 33 | "compiler":"gcc-4.1.2 20080704 (Red Hat 4.1.2-50)", 34 | "sqlite":{ 35 | "version":"2011-09-04 01:27:00 [6b657ae750] (3.7.8)", 36 | "pageCount":23891, 37 | "pageSize":1024, 38 | "freeList":2705, 39 | "encoding":"UTF-8", 40 | "journalMode":"delete" 41 | } 42 | } 43 | ``` 44 | 45 | **Options:** 46 | 47 | - "Full detail" mode:\ 48 | **HTTP/payload parameter:** full=bool\ 49 | **CLI MODE:** -f|--full with no value.\ 50 | If true then all properties are included, else certain properties 51 | are omitted from the payload (because they take a relatively long 52 | time to calculate).\ 53 | **TODO:** rename this to verbose, for consistency.\ 54 | **Default=false**. *This is in contrast to the HTML interface*, 55 | which defaults to full detail mode. Testing shows stat to have a 56 | relatively high per-call cost/run time, so it defaults 57 | to "brief" mode by default. Full-detail mode can, on slow hardware, 58 | take half a minute to respond, whereas non-full mode takes well 59 | under one second. 60 | -------------------------------------------------------------------------------- /www/json-api/api-version.md: -------------------------------------------------------------------------------- 1 | # JSON API: /version 2 | ([⬑JSON API Index](index.md)) 3 | 4 | # Version (a.k.a. HAI) 5 | 6 | **Status:** implemented 7 | 8 | **Required privileges:** none 9 | 10 | **Requests:** 11 | 12 | - `/json/version` 13 | - `/json/HAI` (alias borrowed from LOLCATZ jargon) 14 | 15 | **Response payload example:** 16 | 17 | ```json 18 | { 19 | "manifestUuid":"20ff808f9809541d2eca6c49a17d5cbd16e1b93f", 20 | "manifestVersion":"[20ff808f98]", 21 | "manifestDate":"2011-09-09 16:49:23", 22 | "manifestYear":"2011", 23 | "releaseVersion":"1.19", 24 | "releaseVersionNumber":119, 25 | "jsonApiVersion": "YYYYMMDD" // added 20120409 26 | } 27 | ``` 28 | 29 | Those particular payload fields were chosen only because they're defined 30 | in `VERSION.h`. We may want to add other information, but nothing comes to 31 | mind at this time. 32 | 33 | -------------------------------------------------------------------------------- /www/json-api/index.md: -------------------------------------------------------------------------------- 1 | # JSON API Index 2 | 3 | This is the client-side documentation of Fossil's JSON API. The JSON 4 | API aims to provide access to many of the primary fossil features via 5 | AJAX-style interfaces. 6 | 7 | * [Introduction](intro.md) 8 | * [General API Conventions](conventions.md) 9 | * [Tips & Tricks](tips.md) 10 | * [Hacking Guide](hacking.md) 11 | 12 | General warnings regarding the APIs linked to in the following list: 13 | 14 | - **NOTE** that request/response examples shown in the individual API 15 | pages do not show [the standard request/response envelope](conventions.md) 16 | (for brevity and sanity). 17 | - **Achtung:** just because a given feature is described as being 18 | implemented does not mean that the implementation is "final" - it may be 19 | changed at any time until we find/implement useful APIs. 20 | 21 | The APIs, alphabetically by category: 22 | 23 | * [Artifact Info](api-artifact.md) 24 | * [Authentication](api-auth.md) 25 | * [Branches](api-branch.md) 26 | * [Checkout Status](api-checkout.md) 27 | * [Config](api-config.md) 28 | * [Diffs](api-diff.md) 29 | * [Directory Listing](api-dir.md) 30 | * [File Info](api-finfo.md) 31 | * [The Obligatory Misc. Category](api-misc.md) 32 | * [Repository Stats](api-stat.md) 33 | * [Settings](api-settings.md) 34 | * [SQL Query](api-query.md) 35 | * [Tags](api-tag.md) 36 | * [Tickets](api-ticket.md) 37 | * [Timeline](api-timeline.md) 38 | * [User Management](api-user.md) 39 | * [Version](api-version.md) 40 | * [Wiki](api-wiki.md) 41 | -------------------------------------------------------------------------------- /www/scgi.wiki: -------------------------------------------------------------------------------- 1 | Fossil SCGI 2 | 3 | To run Fossil using SCGI, start the [/help/server|fossil server] command 4 | with the --scgi command-line option. You will probably also want to 5 | specific an alternative TCP/IP port using --port. For example: 6 | 7 |
 8 | fossil server $REPOSITORY --port 9000 --scgi
 9 | 
10 | 11 | Then configure your SCGI-aware web-server to send SCGI requests to port 12 | 9000 on the machine where Fossil is running. A typical configuration for 13 | this in Nginx is: 14 | 15 |
16 | location ~ ^/demo_project/ {
17 |     include scgi_params;
18 |     scgi_pass localhost:9000;
19 |     scgi_param SCRIPT_NAME "/demo_project";
20 |     scgi_param HTTPS "on";
21 | }
22 | 
23 | 24 | Note that Nginx does not normally send either the PATH_INFO or SCRIPT_NAME 25 | variables via SCGI, but Fossil needs one or the other. So the configuration 26 | above needs to add SCRIPT_NAME. If you do not do this, Fossil returns an 27 | error. 28 | -------------------------------------------------------------------------------- /www/server/any/althttpd.md: -------------------------------------------------------------------------------- 1 | # Serving via althttpd 2 | 3 | [Althttpd][althttpd] 4 | is a light-weight web server that has been used to implement the SQLite and 5 | Fossil websites for well over a decade. Althttpd strives for simplicity, 6 | security, ease of configuration, and low resource usage. 7 | 8 | To set up a Fossil server as CGI on a host running the althttpd web 9 | server, follow these steps. 10 |
    11 |
  1. Get the althttpd webserver running on the host. This is easily 12 | done by following the [althttpd documentation][althttpd]. 13 | 14 |
  2. Create a CGI script for your Fossil repository. The script will 15 | be typically be two lines of code that look something like this: 16 | 17 | ~~~ 18 | #!/usr/bin/fossil 19 | repository: /home/yourlogin/fossils/project.fossil 20 | ~~~ 21 | 22 | Modify the filenames to conform to your system, of course. The 23 | CGI script accepts [other options][cgi] besides the 24 | repository:" line. You can add in other options as you desire, 25 | but the single "repository:" line is normally all that is needed 26 | to get started. 27 | 28 |
  3. Make the CGI script executable. 29 | 30 |
  4. Verify that the fossil repository file and the directory that contains 31 | the repository are both writable by whatever user the web server is 32 | running and. 33 |
34 | 35 | And you are done. Visit the URL that corresponds to the CGI script 36 | you created to start using your Fossil server. 37 | 38 | *[Return to the top-level Fossil server article.](../)* 39 | 40 | 41 | [althttpd]: https://sqlite.org/althttpd/ 42 | [cgi]: ../../cgi.wiki 43 | -------------------------------------------------------------------------------- /www/server/any/index.md: -------------------------------------------------------------------------------- 1 | # Portable Fossil Service Options 2 | 3 | - [Fossil as a standalone HTTP server](./none.md) 4 | - [SCGI under your web server of choice](./scgi.md) 5 | - [CGI under your web server of choice](./cgi.md) 6 | - [CGI under `althttpd`](./althttpd.md) 7 | - [Behind `stunnel` to get TLS encryption](./stunnel.md) 8 | - [`inetd`](./inetd.md) 9 | - [`xinetd`](./xinetd.md) 10 | 11 | *[Return to the top-level Fossil server article.](../)* 12 | -------------------------------------------------------------------------------- /www/server/any/xinetd.md: -------------------------------------------------------------------------------- 1 | # Serving via xinetd 2 | 3 | Some operating systems have replaced the old Unix `inetd` daemon with 4 | `xinetd`, which has a similar mission but with a very different 5 | configuration file format. 6 | 7 | The typical configuration file is either `/etc/xinetd.conf` or a subfile 8 | in the `/etc/xinetd.d` directory. You need a configuration something 9 | like this for Fossil: 10 | 11 | service http 12 | { 13 | port = 80 14 | socket_type = stream 15 | wait = no 16 | user = root 17 | server = /usr/bin/fossil 18 | server_args = http /home/fossil/repos/ 19 | } 20 | 21 | This example configures Fossil to serve multiple repositories under the 22 | `/home/fossil/repos/` directory. 23 | 24 | Beyond this, see the general commentary in our article on [the `inetd` 25 | method](./inetd.md) as they also apply to service via `xinetd`. 26 | 27 | *[Return to the top-level Fossil server article.](../)* 28 | -------------------------------------------------------------------------------- /www/server/debian/index.md: -------------------------------------------------------------------------------- 1 | # Debian/Ubuntu Specific Fossil Service Options 2 | 3 | - [SCGI under nginx](./nginx.md) 4 | - [`systemd`](./service.md) 5 | 6 | *[Return to the top-level Fossil server article.](../)* 7 | -------------------------------------------------------------------------------- /www/server/macos/index.md: -------------------------------------------------------------------------------- 1 | # macOS Specific Fossil Service Options 2 | 3 | - [Running Fossil under `launchd`](./service.md) 4 | 5 | *[Return to the top-level Fossil server article.](../)* 6 | -------------------------------------------------------------------------------- /www/server/openbsd/index.md: -------------------------------------------------------------------------------- 1 | # Debian/Ubuntu Specific Fossil Service Options 2 | 3 | - [Serving Fossil under OpenBSD’s `httpd` via FastCGI](./fastcgi.md) 4 | - [Running Fossil as a service on OpenBSD](./service.wiki) 5 | 6 | *[Return to the top-level Fossil server article.](../)* 7 | -------------------------------------------------------------------------------- /www/server/windows/cgi-bin-perm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drhsqlite/fossil-mirror/55bbd5a5163ed2e28670d95395958d6c1e2a4fc4/www/server/windows/cgi-bin-perm.png -------------------------------------------------------------------------------- /www/server/windows/cgi-exec-perm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drhsqlite/fossil-mirror/55bbd5a5163ed2e28670d95395958d6c1e2a4fc4/www/server/windows/cgi-exec-perm.png -------------------------------------------------------------------------------- /www/server/windows/cgi-install-iis.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drhsqlite/fossil-mirror/55bbd5a5163ed2e28670d95395958d6c1e2a4fc4/www/server/windows/cgi-install-iis.png -------------------------------------------------------------------------------- /www/server/windows/cgi-script-map.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drhsqlite/fossil-mirror/55bbd5a5163ed2e28670d95395958d6c1e2a4fc4/www/server/windows/cgi-script-map.png -------------------------------------------------------------------------------- /www/server/windows/index.md: -------------------------------------------------------------------------------- 1 | # Using Windows as a Fossil Server 2 | 3 | - [Fossil server command](./none.md) 4 | - [Fossil as CGI (IIS)](./iis.md) 5 | - [Fossil as a Service](./service.md) 6 | - [Using stunnel with Fossil on Windows](./stunnel.md) 7 | 8 | *[Return to the top-level Fossil server article.](../)* 9 | -------------------------------------------------------------------------------- /www/title-test.md: -------------------------------------------------------------------------------- 1 | # Markdown Doc Title > & " ' < Test 2 | 3 | Test of unusual characters in the title of Markdown formatted documents. 4 | The title should read: 5 | 6 | > Markdown Doc Title > & " ' < Test 7 | 8 | See also: 9 | 10 | * [](/doc/trunk/www/title-test.wiki) 11 | * [](/wiki?name=Test+Wiki+>+%26+%22+%27+%3c+Title&p) 12 | * [](/forumpost/481ab1f9) 13 | -------------------------------------------------------------------------------- /www/title-test.wiki: -------------------------------------------------------------------------------- 1 | Wiki Doc Title > & " ' < Test 2 | 3 | Test of unusual characters in the title of Fossil-wiki formatted documents. 4 | The title should read: 5 | 6 | 7 | Wiki Doc Title > & " ' < Test 8 | 9 | 10 | See also: 11 | 12 | * [/doc/trunk/www/title-test.md] 13 | * [/wiki?name=Test+Wiki+>+%26+%22+%27+%3c+Title&p] 14 | * [/forumpost/481ab1f9] 15 | -------------------------------------------------------------------------------- /www/tls-nginx.md: -------------------------------------------------------------------------------- 1 | # Proxying Fossil via HTTPS with nginx 2 | 3 | This document has [moved](./server/debian/nginx.md#tls). 4 | -------------------------------------------------------------------------------- /www/xkcd-git.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/drhsqlite/fossil-mirror/55bbd5a5163ed2e28670d95395958d6c1e2a4fc4/www/xkcd-git.gif --------------------------------------------------------------------------------