From ac5e55f5f2af5b92794c2aded46c6bae85b5f5ed Mon Sep 17 00:00:00 2001 From: Jacob McDonnell Date: Sat, 25 Apr 2026 19:55:43 -0400 Subject: docs: Added All FreeBSD Manuals --- static/freebsd/Makefile | 1 + static/freebsd/man1/1.1 | 28 + static/freebsd/man1/1.4.1 | 14 + static/freebsd/man1/2.1 | 1 + static/freebsd/man1/3.1 | 14 + static/freebsd/man1/4.1 | 47 + static/freebsd/man1/5.1 | 17 + static/freebsd/man1/6.1 | 14 + static/freebsd/man1/7.1 | 15 + static/freebsd/man1/8.1 | 14 + static/freebsd/man1/9.1 | 1 + static/freebsd/man1/A.1 | 1695 ++++ static/freebsd/man1/CA.pl.1 | 242 + static/freebsd/man1/E.1 | 1474 +++ static/freebsd/man1/EH.1 | 1450 +++ static/freebsd/man1/EHN.1 | 1447 +++ static/freebsd/man1/EN.1 | 1471 +++ static/freebsd/man1/H.1 | 1671 ++++ static/freebsd/man1/HN.1 | 1668 ++++ static/freebsd/man1/N.1 | 1692 ++++ static/freebsd/man1/addr2line.1 | 182 + static/freebsd/man1/afslog.1 | 152 + static/freebsd/man1/alias.1 | 2 + static/freebsd/man1/and2.1 | 3 + static/freebsd/man1/apply.1 | 137 + static/freebsd/man1/apropos.1 | 513 ++ static/freebsd/man1/ar.1 | 627 ++ static/freebsd/man1/asa.1 | 94 + static/freebsd/man1/atf-check.1 | 175 + static/freebsd/man1/atf-sh.1 | 104 + static/freebsd/man1/atf-test-program.1 | 99 + static/freebsd/man1/athrd.1 | 168 + static/freebsd/man1/auditreduce.1 | 200 + static/freebsd/man1/awk.1 | 696 ++ static/freebsd/man1/basename.1 | 119 + static/freebsd/man1/beep.1 | 85 + static/freebsd/man1/biff.1 | 120 + static/freebsd/man1/bintrans.1 | 284 + static/freebsd/man1/bmake.1 | 2927 ++++++ static/freebsd/man1/bomtool.1 | 100 + static/freebsd/man1/brandelf.1 | 147 + static/freebsd/man1/bsdcat.1 | 41 + static/freebsd/man1/bsdcpio.1 | 422 + static/freebsd/man1/bsddialog.1 | 956 ++ static/freebsd/man1/bsdiff.1 | 86 + static/freebsd/man1/bsdtar.1 | 1453 +++ static/freebsd/man1/bsdunzip.1 | 199 + static/freebsd/man1/bsnmpd.1 | 280 + static/freebsd/man1/bsnmpget.1 | 432 + static/freebsd/man1/bspatch.1 | 85 + static/freebsd/man1/bthost.1 | 114 + static/freebsd/man1/btsockstat.1 | 82 + static/freebsd/man1/bugpoint.1 | 308 + static/freebsd/man1/builtin.1 3.html | 891 ++ static/freebsd/man1/bzip2.1 | 453 + static/freebsd/man1/c++filt.1 | 109 + static/freebsd/man1/c89.1 | 182 + static/freebsd/man1/c99.1 | 189 + static/freebsd/man1/calendar.1 | 372 + static/freebsd/man1/cap_mkdb.1 | 102 + static/freebsd/man1/cat.1 | 211 + static/freebsd/man1/cdcontrol.1 | 213 + static/freebsd/man1/chflags.1 | 262 + static/freebsd/man1/chgrp.1 | 158 + static/freebsd/man1/chio.1 | 308 + static/freebsd/man1/chmod.1 | 361 + static/freebsd/man1/chpass.1 | 488 + static/freebsd/man1/ckdist.1 | 130 + static/freebsd/man1/cksum.1 | 188 + static/freebsd/man1/clang.1 | 949 ++ static/freebsd/man1/clear.1 | 188 + static/freebsd/man1/cmd2.1 | 3 + static/freebsd/man1/cmp.1 | 210 + static/freebsd/man1/cmtime.1 | 50 + static/freebsd/man1/col.1 | 168 + static/freebsd/man1/colrm.1 | 109 + static/freebsd/man1/column.1 | 107 + static/freebsd/man1/comm.1 | 142 + static/freebsd/man1/compile_et.1 | 76 + static/freebsd/man1/compress.1 | 293 + static/freebsd/man1/copy_cred_cache.1 | 96 + static/freebsd/man1/cp.1 | 343 + static/freebsd/man1/cpuset.1 | 227 + static/freebsd/man1/crontab.1 | 153 + static/freebsd/man1/crunchgen.1 | 472 + static/freebsd/man1/crunchide.1 | 91 + static/freebsd/man1/csh.1 | 1009 +++ static/freebsd/man1/csplit.1 | 167 + static/freebsd/man1/cstyle.1 | 153 + static/freebsd/man1/ctags.1 | 258 + static/freebsd/man1/ctfconvert.1 | 91 + static/freebsd/man1/ctfdump.1 | 82 + static/freebsd/man1/ctfmerge.1 | 119 + static/freebsd/man1/cu.1 | 511 ++ static/freebsd/man1/cut.1 | 173 + static/freebsd/man1/date.1 | 82 + static/freebsd/man1/dbufstat.1 | 233 + static/freebsd/man1/dd.1 | 503 ++ static/freebsd/man1/demandoc.1 | 107 + static/freebsd/man1/derdump.1 | 51 + static/freebsd/man1/df.1 | 305 + static/freebsd/man1/dialog.1 | 2041 +++++ static/freebsd/man1/diff.1 | 47 + static/freebsd/man1/diff3.1 | 236 + static/freebsd/man1/domainname.1 | 63 + static/freebsd/man1/dpv.1 | 448 + static/freebsd/man1/drill.1 | 253 + static/freebsd/man1/dtc.1 | 445 + static/freebsd/man1/dtrace.1 | 1328 +++ static/freebsd/man1/du.1 | 315 + static/freebsd/man1/dwatch.1 | 764 ++ static/freebsd/man1/echo.1 | 136 + static/freebsd/man1/ed.1 | 999 +++ static/freebsd/man1/ee.1 | 546 ++ static/freebsd/man1/elfcopy.1 | 369 + static/freebsd/man1/elfctl.1 | 123 + static/freebsd/man1/elfdump.1 | 158 + static/freebsd/man1/enigma.1 | 122 + static/freebsd/man1/env.1 | 549 ++ static/freebsd/man1/etdump.1 | 110 + static/freebsd/man1/ether_reflect.1 | 111 + static/freebsd/man1/eval2.1 | 3 + static/freebsd/man1/example.1 | 134 + static/freebsd/man1/expand.1 | 117 + static/freebsd/man1/expected.status.1 | 1 + static/freebsd/man1/expected.stderr.1 | 0 static/freebsd/man1/expected.stdout.1 | 1 + static/freebsd/man1/expr.1 | 325 + static/freebsd/man1/false.1 | 60 + static/freebsd/man1/fdread.1 | 236 + static/freebsd/man1/fdwrite.1 | 132 + static/freebsd/man1/fetch.1 | 461 + static/freebsd/man1/fido2-assert.1 | 288 + static/freebsd/man1/fido2-cred.1 | 305 + static/freebsd/man1/fido2-token.1 | 421 + static/freebsd/man1/fifolog.1 | 216 + static/freebsd/man1/file2c.1 | 73 + static/freebsd/man1/find.1 | 1408 +++ static/freebsd/man1/finger.1 | 242 + static/freebsd/man1/firewall.1 | 35 + static/freebsd/man1/fixwhite.1 | 46 + static/freebsd/man1/flua.1 | 99 + static/freebsd/man1/fmt.1 | 198 + static/freebsd/man1/fold.1 | 130 + static/freebsd/man1/freebsd-version.1 | 131 + static/freebsd/man1/from.1 | 93 + static/freebsd/man1/fstat.1 | 344 + static/freebsd/man1/fsync.1 | 61 + static/freebsd/man1/ftp.1 | 2405 +++++ static/freebsd/man1/func2.1 | 6 + static/freebsd/man1/fuser.1 | 151 + static/freebsd/man1/gcore.1 | 103 + static/freebsd/man1/gencat.1 | 189 + static/freebsd/man1/genl.1 | 72 + static/freebsd/man1/gensnmpdef.1 | 85 + static/freebsd/man1/gensnmptree.1 | 252 + static/freebsd/man1/getaddrinfo.1 | 180 + static/freebsd/man1/getconf.1 | 223 + static/freebsd/man1/getent.1 | 142 + static/freebsd/man1/getfacl.1 | 140 + static/freebsd/man1/getopt.1 | 133 + static/freebsd/man1/git-arc.1 | 310 + static/freebsd/man1/gprof.1 | 326 + static/freebsd/man1/grep.1 | 592 ++ static/freebsd/man1/groups.1 | 62 + static/freebsd/man1/gzexe.1 | 71 + static/freebsd/man1/gzip.1 | 246 + static/freebsd/man1/head.1 | 105 + static/freebsd/man1/hesinfo.1 | 195 + static/freebsd/man1/hexdump.1 | 384 + static/freebsd/man1/hostapd_cli.1 | 89 + static/freebsd/man1/hostname.1 | 92 + static/freebsd/man1/ibv_asyncwatch.1 | 31 + static/freebsd/man1/ibv_devices.1 | 20 + static/freebsd/man1/ibv_devinfo.1 | 40 + static/freebsd/man1/ibv_rc_pingpong.1 | 80 + static/freebsd/man1/ibv_srq_pingpong.1 | 78 + static/freebsd/man1/ibv_uc_pingpong.1 | 73 + static/freebsd/man1/ibv_ud_pingpong.1 | 69 + static/freebsd/man1/ibv_xsrq_pingpong.1 | 75 + static/freebsd/man1/iconv.1 | 125 + static/freebsd/man1/id.1 | 217 + static/freebsd/man1/ident.1 | 69 + static/freebsd/man1/indent.1 | 613 ++ static/freebsd/man1/install.1 | 366 + static/freebsd/man1/intro.1 3.html | 72 + static/freebsd/man1/ipcrm.1 | 120 + static/freebsd/man1/ipcs.1 | 174 + static/freebsd/man1/ipftest.1 | 203 + static/freebsd/man1/ipnat.1 | 47 + static/freebsd/man1/ipresend.1 | 104 + static/freebsd/man1/ipsend.1 | 107 + static/freebsd/man1/iptest.1 | 100 + static/freebsd/man1/ipv6.1 | 45 + static/freebsd/man1/join.1 | 292 + static/freebsd/man1/jot.1 | 327 + static/freebsd/man1/kbdcontrol.1 | 297 + static/freebsd/man1/kbdmap.1 | 156 + static/freebsd/man1/kdestroy.1 | 75 + static/freebsd/man1/kdump.1 | 184 + static/freebsd/man1/kenv.1 | 168 + static/freebsd/man1/kf.1 | 112 + static/freebsd/man1/kgetcred.1 | 77 + static/freebsd/man1/kill.1 | 160 + static/freebsd/man1/killall.1 | 222 + static/freebsd/man1/kinit.1 | 227 + static/freebsd/man1/klist.1 | 135 + static/freebsd/man1/kpasswd.1 | 68 + static/freebsd/man1/krb5-config.1 | 88 + static/freebsd/man1/kswitch.1 | 85 + static/freebsd/man1/ktrace.1 | 233 + static/freebsd/man1/lam.1 | 155 + static/freebsd/man1/last.1 | 250 + static/freebsd/man1/lastcomm.1 | 182 + static/freebsd/man1/ld.lld.1 | 1046 +++ static/freebsd/man1/ldd.1 | 72 + static/freebsd/man1/ldns-config.1 | 47 + static/freebsd/man1/ldns-host.1 | 243 + static/freebsd/man1/leave.1 | 93 + static/freebsd/man1/lex.1 | 4296 +++++++++ static/freebsd/man1/limits.1 | 460 + static/freebsd/man1/llc.1 | 295 + static/freebsd/man1/lldb-server.1 | 261 + static/freebsd/man1/lldb.1 | 429 + static/freebsd/man1/lli.1 | 300 + static/freebsd/man1/llvm-addr2line.1 | 72 + static/freebsd/man1/llvm-ar.1 | 469 + static/freebsd/man1/llvm-as.1 | 86 + static/freebsd/man1/llvm-bcanalyzer.1 | 461 + static/freebsd/man1/llvm-cov.1 | 583 ++ static/freebsd/man1/llvm-cxxfilt.1 | 117 + static/freebsd/man1/llvm-diff.1 | 76 + static/freebsd/man1/llvm-dis.1 | 87 + static/freebsd/man1/llvm-dwarfdump.1 | 272 + static/freebsd/man1/llvm-dwarfutil.1 | 168 + static/freebsd/man1/llvm-extract.1 | 176 + static/freebsd/man1/llvm-link.1 | 88 + static/freebsd/man1/llvm-mca.1 | 1368 +++ static/freebsd/man1/llvm-nm.1 | 447 + static/freebsd/man1/llvm-objcopy.1 | 748 ++ static/freebsd/man1/llvm-objdump.1 | 578 ++ static/freebsd/man1/llvm-pdbutil.1 | 744 ++ static/freebsd/man1/llvm-profdata.1 | 466 + static/freebsd/man1/llvm-ranlib.1 | 51 + static/freebsd/man1/llvm-readelf.1 | 291 + static/freebsd/man1/llvm-readobj.1 | 445 + static/freebsd/man1/llvm-size.1 | 269 + static/freebsd/man1/llvm-strings.1 | 173 + static/freebsd/man1/llvm-symbolizer.1 | 660 ++ static/freebsd/man1/ln.1 | 319 + static/freebsd/man1/locale.1 | 116 + static/freebsd/man1/localedef.1 | 278 + static/freebsd/man1/locate.1 | 268 + static/freebsd/man1/lock.1 | 89 + static/freebsd/man1/lockf.1 | 289 + static/freebsd/man1/lockstat.1 | 405 + static/freebsd/man1/logger.1 | 181 + static/freebsd/man1/login.1 | 161 + static/freebsd/man1/logins.1 | 102 + static/freebsd/man1/logname.1 | 68 + static/freebsd/man1/look.1 | 152 + static/freebsd/man1/lorder.1 | 94 + static/freebsd/man1/lp.1 | 126 + static/freebsd/man1/lpq.1 | 138 + static/freebsd/man1/lpr.1 | 321 + static/freebsd/man1/lprm.1 | 147 + static/freebsd/man1/lptest.1 | 73 + static/freebsd/man1/ls.1 | 969 ++ static/freebsd/man1/lsvfs.1 | 70 + static/freebsd/man1/lua.1 | 155 + static/freebsd/man1/luac.1 | 118 + static/freebsd/man1/lzmainfo.1 | 58 + static/freebsd/man1/m4.1 | 561 ++ static/freebsd/man1/mail.1 | 1270 +++ static/freebsd/man1/mailq.1 | 135 + static/freebsd/man1/make.1 | 2934 ++++++ static/freebsd/man1/man.1 | 465 + static/freebsd/man1/man.options.1 | 1360 +++ static/freebsd/man1/mandoc.1 | 2505 ++++++ static/freebsd/man1/manpath.1 | 118 + static/freebsd/man1/mcgrab.1 | 81 + static/freebsd/man1/mckey.1 | 60 + static/freebsd/man1/mcs.1 | 125 + static/freebsd/man1/mctest.1 | 119 + static/freebsd/man1/md5.1 | 440 + static/freebsd/man1/mdo.1 | 271 + static/freebsd/man1/mesg.1 | 105 + static/freebsd/man1/mididump.1 | 80 + static/freebsd/man1/ministat.1 | 183 + static/freebsd/man1/mkcsmapper.1 | 88 + static/freebsd/man1/mkdep.1 | 126 + static/freebsd/man1/mkdir.1 | 120 + static/freebsd/man1/mkesdb.1 | 82 + static/freebsd/man1/mkfifo.1 | 95 + static/freebsd/man1/mkfilters.1 | 15 + static/freebsd/man1/mkimg.1 | 432 + static/freebsd/man1/mkstr.1 | 133 + static/freebsd/man1/mktemp.1 | 243 + static/freebsd/man1/mptable.1 | 67 + static/freebsd/man1/msgs.1 | 229 + static/freebsd/man1/mt.1 | 700 ++ static/freebsd/man1/mv.1 | 186 + static/freebsd/man1/nc.1 | 549 ++ static/freebsd/man1/ncal.1 | 225 + static/freebsd/man1/netstat.1 | 981 ++ static/freebsd/man1/newaliases.1 | 50 + static/freebsd/man1/newgrp.1 | 117 + static/freebsd/man1/nfsstat.1 | 143 + static/freebsd/man1/nice.1 | 117 + static/freebsd/man1/nl.1 | 284 + static/freebsd/man1/nm.1 | 340 + static/freebsd/man1/nohup.1 | 119 + static/freebsd/man1/nproc.1 | 60 + static/freebsd/man1/od.1 | 279 + static/freebsd/man1/openssl-asn1parse.1 | 269 + static/freebsd/man1/openssl-ca.1 | 865 ++ static/freebsd/man1/openssl-ciphers.1 | 949 ++ static/freebsd/man1/openssl-cmds.1 | 202 + static/freebsd/man1/openssl-cmp.1 | 1501 ++++ static/freebsd/man1/openssl-cms.1 | 937 ++ static/freebsd/man1/openssl-crl.1 | 233 + static/freebsd/man1/openssl-crl2pkcs7.1 | 166 + static/freebsd/man1/openssl-dgst.1 | 334 + static/freebsd/man1/openssl-dhparam.1 | 203 + static/freebsd/man1/openssl-dsa.1 | 251 + static/freebsd/man1/openssl-dsaparam.1 | 189 + static/freebsd/man1/openssl-ec.1 | 265 + static/freebsd/man1/openssl-ecparam.1 | 251 + static/freebsd/man1/openssl-enc.1 | 570 ++ static/freebsd/man1/openssl-engine.1 | 176 + static/freebsd/man1/openssl-errstr.1 | 110 + static/freebsd/man1/openssl-fipsinstall.1 | 502 ++ static/freebsd/man1/openssl-format-options.1 | 190 + static/freebsd/man1/openssl-gendsa.1 | 172 + static/freebsd/man1/openssl-genpkey.1 | 595 ++ static/freebsd/man1/openssl-genrsa.1 | 190 + static/freebsd/man1/openssl-info.1 | 139 + static/freebsd/man1/openssl-kdf.1 | 286 + static/freebsd/man1/openssl-list.1 | 347 + static/freebsd/man1/openssl-mac.1 | 233 + static/freebsd/man1/openssl-namedisplay-options.1 | 211 + static/freebsd/man1/openssl-nseq.1 | 139 + static/freebsd/man1/openssl-ocsp.1 | 596 ++ static/freebsd/man1/openssl-passphrase-options.1 | 128 + static/freebsd/man1/openssl-passwd.1 | 178 + static/freebsd/man1/openssl-pkcs12.1 | 529 ++ static/freebsd/man1/openssl-pkcs7.1 | 171 + static/freebsd/man1/openssl-pkcs8.1 | 356 + static/freebsd/man1/openssl-pkey.1 | 294 + static/freebsd/man1/openssl-pkeyparam.1 | 156 + static/freebsd/man1/openssl-pkeyutl.1 | 740 ++ static/freebsd/man1/openssl-prime.1 | 128 + static/freebsd/man1/openssl-rand.1 | 149 + static/freebsd/man1/openssl-rehash.1 | 210 + static/freebsd/man1/openssl-req.1 | 883 ++ static/freebsd/man1/openssl-rsa.1 | 269 + static/freebsd/man1/openssl-rsautl.1 | 315 + static/freebsd/man1/openssl-s_client.1 | 1074 +++ static/freebsd/man1/openssl-s_server.1 | 966 ++ static/freebsd/man1/openssl-s_time.1 | 255 + static/freebsd/man1/openssl-sess_id.1 | 192 + static/freebsd/man1/openssl-skeyutl.1 | 133 + static/freebsd/man1/openssl-smime.1 | 572 ++ static/freebsd/man1/openssl-speed.1 | 225 + static/freebsd/man1/openssl-spkac.1 | 223 + static/freebsd/man1/openssl-srp.1 | 177 + static/freebsd/man1/openssl-storeutl.1 | 205 + static/freebsd/man1/openssl-ts.1 | 696 ++ static/freebsd/man1/openssl-verification-options.1 | 699 ++ static/freebsd/man1/openssl-verify.1 | 249 + static/freebsd/man1/openssl-version.1 | 156 + static/freebsd/man1/openssl-x509.1 | 819 ++ static/freebsd/man1/openssl.1 | 715 ++ static/freebsd/man1/openzfsonosx-1.8.1 | 20 + static/freebsd/man1/opt.1 | 147 + static/freebsd/man1/or3.1 | 3 + static/freebsd/man1/p.1 | 1 + static/freebsd/man1/pagesize.1 | 51 + static/freebsd/man1/pagsh.1 | 94 + static/freebsd/man1/pamtest.1 | 187 + static/freebsd/man1/passwd.1 | 231 + static/freebsd/man1/paste.1 | 155 + static/freebsd/man1/patch.1 | 691 ++ static/freebsd/man1/pathchk.1 | 129 + static/freebsd/man1/pax.1 | 1233 +++ static/freebsd/man1/pcap-config.1 | 132 + static/freebsd/man1/perror.1 | 48 + static/freebsd/man1/pfrom.1 | 55 + static/freebsd/man1/pipe1.1 | 3 + static/freebsd/man1/pkgconf.1 | 758 ++ static/freebsd/man1/pkill.1 | 427 + static/freebsd/man1/plockstat.1 | 93 + static/freebsd/man1/posixmqcontrol.1 | 180 + static/freebsd/man1/posixshmcontrol.1 | 175 + static/freebsd/man1/pr.1 | 386 + static/freebsd/man1/praudit.1 | 121 + static/freebsd/man1/printenv.1 | 81 + static/freebsd/man1/printf.1 | 415 + static/freebsd/man1/proccontrol.1 | 146 + static/freebsd/man1/procstat.1 | 902 ++ static/freebsd/man1/protect.1 | 137 + static/freebsd/man1/ps.1 | 1019 +++ static/freebsd/man1/pwait.1 | 155 + static/freebsd/man1/pwd.1 | 124 + static/freebsd/man1/quota.1 | 173 + static/freebsd/man1/raidz_test.1 | 102 + static/freebsd/man1/ranlib.1 | 86 + static/freebsd/man1/rcopy.1 | 38 + static/freebsd/man1/rcp.1 | 66 + static/freebsd/man1/rdma_client.1 | 32 + static/freebsd/man1/rdma_server.1 | 27 + static/freebsd/man1/rdma_xclient.1 | 37 + static/freebsd/man1/rdma_xserver.1 | 31 + static/freebsd/man1/readelf.1 | 212 + static/freebsd/man1/realpath.1 | 83 + static/freebsd/man1/recoverdisk.1 | 273 + static/freebsd/man1/resizewin.1 | 85 + static/freebsd/man1/return2.1 | 6 + static/freebsd/man1/return3.1 | 2 + static/freebsd/man1/rev.1 | 49 + static/freebsd/man1/revoke.1 | 54 + static/freebsd/man1/rfcomm_sppd.1 | 185 + static/freebsd/man1/riostream.1 | 65 + static/freebsd/man1/rm.1 | 232 + static/freebsd/man1/rmdir.1 | 111 + static/freebsd/man1/rpcgen.1 | 534 ++ static/freebsd/man1/rping.1 | 60 + static/freebsd/man1/rs.1 | 244 + static/freebsd/man1/rsh.1 | 294 + static/freebsd/man1/rstream.1 | 74 + static/freebsd/man1/rtld.1 | 548 ++ static/freebsd/man1/rtprio.1 | 205 + static/freebsd/man1/runat.1 | 63 + static/freebsd/man1/rup.1 | 93 + static/freebsd/man1/ruptime.1 | 87 + static/freebsd/man1/rusers.1 | 101 + static/freebsd/man1/rwall.1 | 76 + static/freebsd/man1/rwho.1 | 77 + static/freebsd/man1/scp.1 | 364 + static/freebsd/man1/script.1 | 304 + static/freebsd/man1/sdiff.1 | 169 + static/freebsd/man1/sed.1 | 686 ++ static/freebsd/man1/semi1.1 | 3 + static/freebsd/man1/semi2.1 | 3 + static/freebsd/man1/seq.1 | 209 + static/freebsd/man1/setfacl.1 | 515 ++ static/freebsd/man1/setfib.1 | 96 + static/freebsd/man1/sftp.1 | 767 ++ static/freebsd/man1/sh.1 | 3167 +++++++ static/freebsd/man1/size.1 | 257 + static/freebsd/man1/sleep.1 | 133 + static/freebsd/man1/smbutil.1 | 137 + static/freebsd/man1/sockstat.1 | 278 + static/freebsd/man1/soelim.1 | 86 + static/freebsd/man1/split.1 | 232 + static/freebsd/man1/sqlite3.1 | 161 + static/freebsd/man1/ssh-add.1 | 348 + static/freebsd/man1/ssh-agent.1 | 312 + static/freebsd/man1/ssh-copy-id.1 | 87 + static/freebsd/man1/ssh-keygen.1 | 1341 +++ static/freebsd/man1/ssh-keyscan.1 | 188 + static/freebsd/man1/ssh.1 | 1798 ++++ static/freebsd/man1/stat.1 | 645 ++ static/freebsd/man1/stdbuf.1 | 114 + static/freebsd/man1/strings.1 | 165 + static/freebsd/man1/strip.1 | 141 + static/freebsd/man1/stty.1 | 645 ++ static/freebsd/man1/su.1 | 63 + static/freebsd/man1/subshell2.1 | 3 + static/freebsd/man1/systat.1 | 745 ++ static/freebsd/man1/t.1 | 2 + static/freebsd/man1/tabs.1 | 362 + static/freebsd/man1/tail.1 | 216 + static/freebsd/man1/talk.1 | 156 + static/freebsd/man1/tcopy.1 | 247 + static/freebsd/man1/td.1 | 1397 +++ static/freebsd/man1/tee.1 | 98 + static/freebsd/man1/telnet.1 | 1481 +++ static/freebsd/man1/test-runner.1 | 298 + static/freebsd/man1/test.1 | 392 + static/freebsd/man1/tftp.1 | 284 + static/freebsd/man1/time.1 | 202 + static/freebsd/man1/timeout.1 | 296 + static/freebsd/man1/tip.1 | 605 ++ static/freebsd/man1/top.1 | 539 ++ static/freebsd/man1/touch.1 | 247 + static/freebsd/man1/tput.1 | 1090 +++ static/freebsd/man1/tr.1 | 422 + static/freebsd/man1/true.1 | 60 + static/freebsd/man1/truncate.1 | 260 + static/freebsd/man1/truss.1 | 117 + static/freebsd/man1/ts.1 | 112 + static/freebsd/man1/tset.1 | 466 + static/freebsd/man1/tsget.1 | 249 + static/freebsd/man1/tsort.1 | 155 + static/freebsd/man1/tty.1 | 80 + static/freebsd/man1/ucmatose.1 | 66 + static/freebsd/man1/udaddy.1 | 56 + static/freebsd/man1/udpong.1 | 62 + static/freebsd/man1/uhsoctl.1 | 105 + static/freebsd/man1/ul.1 | 87 + static/freebsd/man1/uname.1 | 170 + static/freebsd/man1/unbound-host.1 | 118 + static/freebsd/man1/unifdef.1 | 530 ++ static/freebsd/man1/uniq.1 | 218 + static/freebsd/man1/units.1 | 473 + static/freebsd/man1/unvis.1 | 80 + static/freebsd/man1/uptime.1 | 73 + static/freebsd/man1/usbhidaction.1 | 172 + static/freebsd/man1/usbhidctl.1 | 150 + static/freebsd/man1/users.1 | 54 + static/freebsd/man1/uuidgen.1 | 108 + static/freebsd/man1/vacation.1 | 308 + static/freebsd/man1/vgrind.1 | 239 + static/freebsd/man1/vi.1 | 2807 ++++++ static/freebsd/man1/vidcontrol.1 | 739 ++ static/freebsd/man1/vis.1 | 205 + static/freebsd/man1/w.1 | 188 + static/freebsd/man1/wall.1 | 72 + static/freebsd/man1/wc.1 | 213 + static/freebsd/man1/what.1 | 85 + static/freebsd/man1/whereis.1 | 181 + static/freebsd/man1/which.1 | 125 + static/freebsd/man1/who.1 | 195 + static/freebsd/man1/whoami.1 | 53 + static/freebsd/man1/whois.1 | 292 + static/freebsd/man1/write.1 | 106 + static/freebsd/man1/xargs.1 | 388 + static/freebsd/man1/xmlwf.1 | 359 + static/freebsd/man1/xo.1 | 211 + static/freebsd/man1/xohtml.1 | 103 + static/freebsd/man1/xolint.1 | 89 + static/freebsd/man1/xopo.1 | 87 + static/freebsd/man1/xstr.1 | 160 + static/freebsd/man1/xz.1 | 3264 +++++++ static/freebsd/man1/xzdec.1 | 144 + static/freebsd/man1/yacc.1 | 450 + static/freebsd/man1/yes.1 | 54 + static/freebsd/man1/ypcat.1 | 72 + static/freebsd/man1/ypmatch.1 | 73 + static/freebsd/man1/ypwhich.1 | 101 + static/freebsd/man1/zarcstat.1 | 427 + static/freebsd/man1/zarcsummary.1 | 179 + static/freebsd/man1/zdiff.1 | 140 + static/freebsd/man1/zforce.1 | 51 + static/freebsd/man1/zgrep.1 | 94 + static/freebsd/man1/zhack.1 | 188 + static/freebsd/man1/zilstat.1 | 191 + static/freebsd/man1/zmore.1 | 108 + static/freebsd/man1/znew.1 | 69 + static/freebsd/man1/zol-0.6.1 | 4 + static/freebsd/man1/zstd.1 | 392 + static/freebsd/man1/zstdgrep.1 | 26 + static/freebsd/man1/zstdless.1 | 14 + static/freebsd/man1/ztest.1 | 259 + static/freebsd/man1/zvol_wait.1 | 33 + static/freebsd/man2/1.2 | 14 + static/freebsd/man2/2.2 | 1 + static/freebsd/man2/3.2 | 14 + static/freebsd/man2/4.2 | 54 + static/freebsd/man2/5.2 | 14 + static/freebsd/man2/6.2 | 13 + static/freebsd/man2/7.2 | 32 + static/freebsd/man2/8.2 | 14 + static/freebsd/man2/9.2 | 1 + static/freebsd/man2/_exit.2 | 123 + static/freebsd/man2/_umtx_op.2 | 1541 ++++ static/freebsd/man2/abort2.2 | 111 + static/freebsd/man2/accept.2 | 248 + static/freebsd/man2/access.2 | 277 + static/freebsd/man2/acct.2 | 130 + static/freebsd/man2/adjtime.2 | 106 + static/freebsd/man2/aio_cancel.2 | 115 + static/freebsd/man2/aio_error.2 | 103 + static/freebsd/man2/aio_fsync.2 | 181 + static/freebsd/man2/aio_mlock.2 | 136 + static/freebsd/man2/aio_read.2 | 290 + static/freebsd/man2/aio_return.2 | 108 + static/freebsd/man2/aio_suspend.2 | 115 + static/freebsd/man2/aio_waitcomplete.2 | 135 + static/freebsd/man2/aio_write.2 | 291 + static/freebsd/man2/arm_drain_writebuf.2 | 72 + static/freebsd/man2/arm_sync_icache.2 | 77 + static/freebsd/man2/audit.2 | 102 + static/freebsd/man2/auditctl.2 | 83 + static/freebsd/man2/auditon.2 | 513 ++ static/freebsd/man2/bad-parm-exp2.2 | 1 + static/freebsd/man2/bad-parm-exp3.2 | 1 + static/freebsd/man2/bad-parm-exp4.2 | 1 + static/freebsd/man2/bad-parm-exp5.2 | 1 + static/freebsd/man2/bad-parm-exp6.2 | 1 + static/freebsd/man2/bind.2 | 138 + static/freebsd/man2/bindat.2 | 105 + static/freebsd/man2/brk.2 | 187 + static/freebsd/man2/cap_enter.2 | 161 + static/freebsd/man2/cap_fcntls_limit.2 | 132 + static/freebsd/man2/cap_ioctls_limit.2 | 161 + static/freebsd/man2/cap_rights_limit.2 | 164 + static/freebsd/man2/chdir.2 | 131 + static/freebsd/man2/chflags.2 | 356 + static/freebsd/man2/chmod.2 | 364 + static/freebsd/man2/chown.2 | 298 + static/freebsd/man2/chroot.2 | 215 + static/freebsd/man2/clock_gettime.2 | 240 + static/freebsd/man2/close.2 | 138 + static/freebsd/man2/closefrom.2 | 104 + static/freebsd/man2/connect.2 | 182 + static/freebsd/man2/connectat.2 | 106 + static/freebsd/man2/copy_file_range.2 | 245 + static/freebsd/man2/cpuset.2 | 302 + static/freebsd/man2/cpuset_getaffinity.2 | 177 + static/freebsd/man2/cpuset_getdomain.2 | 189 + static/freebsd/man2/creat.2 | 59 + static/freebsd/man2/csh.2 | 1301 +++ static/freebsd/man2/dup.2 | 171 + static/freebsd/man2/eventfd.2 | 206 + static/freebsd/man2/example.2 | 5 + static/freebsd/man2/execve.2 | 382 + static/freebsd/man2/expected.status.2 | 1 + static/freebsd/man2/expected.stderr.2 | 0 static/freebsd/man2/expected.stdout.2 | 1 + static/freebsd/man2/extattr_get_file.2 | 290 + static/freebsd/man2/fcntl.2 | 848 ++ static/freebsd/man2/ffclock.2 | 175 + static/freebsd/man2/fhlink.2 | 254 + static/freebsd/man2/fhopen.2 | 160 + static/freebsd/man2/fhreadlink.2 | 96 + static/freebsd/man2/firewall.2 | 69 + static/freebsd/man2/flock.2 | 170 + static/freebsd/man2/fork.2 | 280 + static/freebsd/man2/freebsd-11.2 | 18 + static/freebsd/man2/freenas-9.10.2 | 13 + static/freebsd/man2/fspacectl.2 | 205 + static/freebsd/man2/fsync.2 | 130 + static/freebsd/man2/getaudit.2 | 187 + static/freebsd/man2/getauid.2 | 88 + static/freebsd/man2/getdirentries.2 | 211 + static/freebsd/man2/getdtablesize.2 | 59 + static/freebsd/man2/getfh.2 | 232 + static/freebsd/man2/getfsstat.2 | 129 + static/freebsd/man2/getgid.2 | 82 + static/freebsd/man2/getgroups.2 | 154 + static/freebsd/man2/getitimer.2 | 192 + static/freebsd/man2/getlogin.2 | 201 + static/freebsd/man2/getloginclass.2 | 97 + static/freebsd/man2/getpeername.2 | 95 + static/freebsd/man2/getpgrp.2 | 139 + static/freebsd/man2/getpid.2 | 87 + static/freebsd/man2/getpriority.2 | 147 + static/freebsd/man2/getrandom.2 | 131 + static/freebsd/man2/getrlimit.2 | 242 + static/freebsd/man2/getrlimitusage.2 | 100 + static/freebsd/man2/getrusage.2 | 183 + static/freebsd/man2/getsid.2 | 80 + static/freebsd/man2/getsockname.2 | 95 + static/freebsd/man2/getsockopt.2 | 696 ++ static/freebsd/man2/gettimeofday.2 | 149 + static/freebsd/man2/getuid.2 | 88 + static/freebsd/man2/i386_get_ioperm.2 | 85 + static/freebsd/man2/i386_get_ldt.2 | 136 + static/freebsd/man2/i386_vm86.2 | 139 + static/freebsd/man2/inotify.2 | 379 + static/freebsd/man2/intro.2 | 764 ++ static/freebsd/man2/ioctl.2 | 154 + static/freebsd/man2/ipv6.2 | 26 + static/freebsd/man2/issetugid.2 | 96 + static/freebsd/man2/jail.2 | 591 ++ static/freebsd/man2/kcmp.2 | 230 + static/freebsd/man2/kenv.2 | 191 + static/freebsd/man2/kexec_load.2 | 119 + static/freebsd/man2/kill.2 | 156 + static/freebsd/man2/killpg.2 | 89 + static/freebsd/man2/kldfind.2 | 83 + static/freebsd/man2/kldfirstmod.2 | 73 + static/freebsd/man2/kldload.2 | 106 + static/freebsd/man2/kldnext.2 | 86 + static/freebsd/man2/kldstat.2 | 130 + static/freebsd/man2/kldsym.2 | 118 + static/freebsd/man2/kldunload.2 | 91 + static/freebsd/man2/kqueue.2 | 989 ++ static/freebsd/man2/ktrace.2 | 204 + static/freebsd/man2/link.2 | 316 + static/freebsd/man2/lio_listio.2 | 248 + static/freebsd/man2/listen.2 | 201 + static/freebsd/man2/lseek.2 | 244 + static/freebsd/man2/madvise.2 | 183 + static/freebsd/man2/membarrier.2 | 157 + static/freebsd/man2/mincore.2 | 149 + static/freebsd/man2/minherit.2 | 148 + static/freebsd/man2/mkdir.2 | 179 + static/freebsd/man2/mkfifo.2 | 180 + static/freebsd/man2/mknod.2 | 181 + static/freebsd/man2/mlock.2 | 176 + static/freebsd/man2/mlockall.2 | 144 + static/freebsd/man2/mmap.2 | 564 ++ static/freebsd/man2/modfind.2 | 84 + static/freebsd/man2/modnext.2 | 95 + static/freebsd/man2/modstat.2 | 125 + static/freebsd/man2/mount.2 | 400 + static/freebsd/man2/mprotect.2 | 128 + static/freebsd/man2/mq_close.2 | 103 + static/freebsd/man2/mq_getattr.2 | 125 + static/freebsd/man2/mq_notify.2 | 163 + static/freebsd/man2/mq_open.2 | 365 + static/freebsd/man2/mq_receive.2 | 215 + static/freebsd/man2/mq_send.2 | 234 + static/freebsd/man2/mq_setattr.2 | 121 + static/freebsd/man2/mq_unlink.2 | 119 + static/freebsd/man2/msgctl.2 | 206 + static/freebsd/man2/msgget.2 | 153 + static/freebsd/man2/msgrcv.2 | 221 + static/freebsd/man2/msgsnd.2 | 182 + static/freebsd/man2/msync.2 | 123 + static/freebsd/man2/munmap.2 | 82 + static/freebsd/man2/nanosleep.2 | 255 + static/freebsd/man2/nfssvc.2 | 255 + static/freebsd/man2/ntp_adjtime.2 | 313 + static/freebsd/man2/open.2 | 897 ++ static/freebsd/man2/openzfs-2.2 | 40 + static/freebsd/man2/p.2 | 1 + static/freebsd/man2/pathconf.2 | 289 + static/freebsd/man2/pdfork.2 | 279 + static/freebsd/man2/pipe.2 | 182 + static/freebsd/man2/poll.2 | 294 + static/freebsd/man2/posix_fadvise.2 | 140 + static/freebsd/man2/posix_fallocate.2 | 167 + static/freebsd/man2/posix_openpt.2 | 138 + static/freebsd/man2/procctl.2 | 971 ++ static/freebsd/man2/profil.2 | 119 + static/freebsd/man2/pselect.2 | 128 + static/freebsd/man2/ptrace.2 | 1451 +++ static/freebsd/man2/quotactl.2 | 260 + static/freebsd/man2/rctl_add_rule.2 | 218 + static/freebsd/man2/read.2 | 319 + static/freebsd/man2/readlink.2 | 158 + static/freebsd/man2/reboot.2 | 167 + static/freebsd/man2/recv.2 | 402 + static/freebsd/man2/redirection-error2.2 | 3 + static/freebsd/man2/rename.2 | 382 + static/freebsd/man2/revoke.2 | 107 + static/freebsd/man2/rfork.2 | 204 + static/freebsd/man2/rmdir.2 | 117 + static/freebsd/man2/rtprio.2 | 204 + static/freebsd/man2/sched_get_priority_max.2 | 121 + static/freebsd/man2/sched_setparam.2 | 173 + static/freebsd/man2/sched_setscheduler.2 | 165 + static/freebsd/man2/sched_yield.2 | 57 + static/freebsd/man2/sctp_generic_recvmsg.2 | 72 + static/freebsd/man2/sctp_generic_sendmsg.2 | 84 + static/freebsd/man2/sctp_peeloff.2 | 78 + static/freebsd/man2/select.2 | 225 + static/freebsd/man2/semctl.2 | 200 + static/freebsd/man2/semget.2 | 154 + static/freebsd/man2/semop.2 | 287 + static/freebsd/man2/send.2 | 292 + static/freebsd/man2/sendfile.2 | 437 + static/freebsd/man2/setaudit.2 | 172 + static/freebsd/man2/setauid.2 | 88 + static/freebsd/man2/setcred.2 | 285 + static/freebsd/man2/setfib.2 | 110 + static/freebsd/man2/setgroups.2 | 162 + static/freebsd/man2/setpgid.2 | 107 + static/freebsd/man2/setregid.2 | 87 + static/freebsd/man2/setresuid.2 | 92 + static/freebsd/man2/setreuid.2 | 87 + static/freebsd/man2/setsid.2 | 78 + static/freebsd/man2/setuid.2 | 186 + static/freebsd/man2/shm_open.2 | 646 ++ static/freebsd/man2/shmat.2 | 154 + static/freebsd/man2/shmctl.2 | 139 + static/freebsd/man2/shmget.2 | 140 + static/freebsd/man2/shutdown.2 | 168 + static/freebsd/man2/sigaction.2 | 792 ++ static/freebsd/man2/sigaltstack.2 | 159 + static/freebsd/man2/sigfastblock.2 | 164 + static/freebsd/man2/sigpause.2 | 240 + static/freebsd/man2/sigpending.2 | 74 + static/freebsd/man2/sigprocmask.2 | 128 + static/freebsd/man2/sigqueue.2 | 178 + static/freebsd/man2/sigreturn.2 | 94 + static/freebsd/man2/sigsetmask.2 | 100 + static/freebsd/man2/sigstack.2 | 47 + static/freebsd/man2/sigsuspend.2 | 82 + static/freebsd/man2/sigvec.2 | 348 + static/freebsd/man2/sigwait.2 | 122 + static/freebsd/man2/sigwaitinfo.2 | 213 + static/freebsd/man2/socket.2 | 568 ++ static/freebsd/man2/socketpair.2 | 105 + static/freebsd/man2/stat.2 | 492 + static/freebsd/man2/statfs.2 | 272 + static/freebsd/man2/swapon.2 | 160 + static/freebsd/man2/symlink.2 | 207 + static/freebsd/man2/sync.2 | 74 + static/freebsd/man2/sysarch.2 | 78 + static/freebsd/man2/syscall.2 | 74 + static/freebsd/man2/t.2 | 2 + static/freebsd/man2/thr_exit.2 | 92 + static/freebsd/man2/thr_kill.2 | 137 + static/freebsd/man2/thr_new.2 | 256 + static/freebsd/man2/thr_self.2 | 92 + static/freebsd/man2/thr_set_name.2 | 96 + static/freebsd/man2/thr_suspend.2 | 131 + static/freebsd/man2/thr_wake.2 | 114 + static/freebsd/man2/timer_create.2 | 199 + static/freebsd/man2/timer_delete.2 | 78 + static/freebsd/man2/timer_settime.2 | 263 + static/freebsd/man2/timerfd.2 | 347 + static/freebsd/man2/truncate.2 | 167 + static/freebsd/man2/umask.2 | 85 + static/freebsd/man2/undelete.2 | 104 + static/freebsd/man2/unlink.2 | 281 + static/freebsd/man2/utimensat.2 | 307 + static/freebsd/man2/utimes.2 | 261 + static/freebsd/man2/utrace.2 | 78 + static/freebsd/man2/uuidgen.2 | 140 + static/freebsd/man2/vfork.2 | 142 + static/freebsd/man2/wait.2 | 694 ++ static/freebsd/man2/write.2 | 327 + static/freebsd/man3/1.3 | 28 + static/freebsd/man3/2.3 | 1 + static/freebsd/man3/3.3 | 14 + static/freebsd/man3/4.3 | 56 + static/freebsd/man3/5.3 | 12 + static/freebsd/man3/6.3 | 0 static/freebsd/man3/7.3 | 24 + static/freebsd/man3/8.3 | 14 + static/freebsd/man3/9.3 | 1 + static/freebsd/man3/ADMISSIONS.3 | 236 + static/freebsd/man3/ASN1_EXTERN_FUNCS.3 | 224 + static/freebsd/man3/ASN1_INTEGER_get_int64.3 | 187 + static/freebsd/man3/ASN1_INTEGER_new.3 | 100 + static/freebsd/man3/ASN1_ITEM_lookup.3 | 96 + static/freebsd/man3/ASN1_OBJECT_new.3 | 107 + static/freebsd/man3/ASN1_STRING_TABLE_add.3 | 121 + static/freebsd/man3/ASN1_STRING_length.3 | 169 + static/freebsd/man3/ASN1_STRING_new.3 | 108 + static/freebsd/man3/ASN1_STRING_print_ex.3 | 171 + static/freebsd/man3/ASN1_TIME_set.3 | 344 + static/freebsd/man3/ASN1_TYPE_get.3 | 158 + static/freebsd/man3/ASN1_aux_cb.3 | 293 + static/freebsd/man3/ASN1_generate_nconf.3 | 307 + static/freebsd/man3/ASN1_item_d2i_bio.3 | 172 + static/freebsd/man3/ASN1_item_new.3 | 102 + static/freebsd/man3/ASN1_item_sign.3 | 282 + static/freebsd/man3/ASYNC_WAIT_CTX_new.3 | 274 + static/freebsd/man3/ASYNC_start_job.3 | 428 + static/freebsd/man3/ATOMIC_VAR_INIT.3 3.html | 315 + static/freebsd/man3/BF_encrypt.3 | 188 + static/freebsd/man3/BIO_ADDR.3 | 196 + static/freebsd/man3/BIO_ADDRINFO.3 | 169 + static/freebsd/man3/BIO_connect.3 | 174 + static/freebsd/man3/BIO_ctrl.3 | 246 + static/freebsd/man3/BIO_f_base64.3 | 192 + static/freebsd/man3/BIO_f_buffer.3 | 159 + static/freebsd/man3/BIO_f_cipher.3 | 136 + static/freebsd/man3/BIO_f_md.3 | 220 + static/freebsd/man3/BIO_f_null.3 | 96 + static/freebsd/man3/BIO_f_prefix.3 | 126 + static/freebsd/man3/BIO_f_readbuffer.3 | 117 + static/freebsd/man3/BIO_f_ssl.3 | 371 + static/freebsd/man3/BIO_find_type.3 | 128 + static/freebsd/man3/BIO_get_data.3 | 127 + static/freebsd/man3/BIO_get_ex_new_index.3 | 191 + static/freebsd/man3/BIO_get_rpoll_descriptor.3 | 161 + static/freebsd/man3/BIO_meth_new.3 | 277 + static/freebsd/man3/BIO_new.3 | 136 + static/freebsd/man3/BIO_new_CMS.3 | 129 + static/freebsd/man3/BIO_parse_hostserv.3 | 140 + static/freebsd/man3/BIO_printf.3 | 114 + static/freebsd/man3/BIO_push.3 | 158 + static/freebsd/man3/BIO_read.3 | 186 + static/freebsd/man3/BIO_s_accept.3 | 313 + static/freebsd/man3/BIO_s_bio.3 | 257 + static/freebsd/man3/BIO_s_connect.3 | 291 + static/freebsd/man3/BIO_s_core.3 | 130 + static/freebsd/man3/BIO_s_datagram.3 | 292 + static/freebsd/man3/BIO_s_dgram_pair.3 | 283 + static/freebsd/man3/BIO_s_fd.3 | 155 + static/freebsd/man3/BIO_s_file.3 | 230 + static/freebsd/man3/BIO_s_mem.3 | 276 + static/freebsd/man3/BIO_s_null.3 | 101 + static/freebsd/man3/BIO_s_socket.3 | 111 + static/freebsd/man3/BIO_sendmmsg.3 | 275 + static/freebsd/man3/BIO_set_callback.3 | 378 + static/freebsd/man3/BIO_set_flags.3 | 236 + static/freebsd/man3/BIO_should_retry.3 | 201 + static/freebsd/man3/BIO_socket_wait.3 | 125 + static/freebsd/man3/BN_BLINDING_new.3 | 183 + static/freebsd/man3/BN_CTX_new.3 | 148 + static/freebsd/man3/BN_CTX_start.3 | 114 + static/freebsd/man3/BN_add.3 | 201 + static/freebsd/man3/BN_add_word.3 | 118 + static/freebsd/man3/BN_bn2bin.3 | 206 + static/freebsd/man3/BN_cmp.3 | 121 + static/freebsd/man3/BN_copy.3 | 116 + static/freebsd/man3/BN_generate_prime.3 | 307 + static/freebsd/man3/BN_mod_exp_mont.3 | 122 + static/freebsd/man3/BN_mod_inverse.3 | 101 + static/freebsd/man3/BN_mod_mul_montgomery.3 | 145 + static/freebsd/man3/BN_mod_mul_reciprocal.3 | 132 + static/freebsd/man3/BN_new.3 | 120 + static/freebsd/man3/BN_num_bytes.3 | 117 + static/freebsd/man3/BN_rand.3 | 177 + static/freebsd/man3/BN_security_bits.3 | 106 + static/freebsd/man3/BN_set_bit.3 | 129 + static/freebsd/man3/BN_swap.3 | 88 + static/freebsd/man3/BN_zero.3 | 123 + static/freebsd/man3/BUF_MEM_new.3 | 132 + static/freebsd/man3/CMAC_CTX.3 | 171 + static/freebsd/man3/CMSG_DATA.3 3.html | 211 + static/freebsd/man3/CMS_EncryptedData_decrypt.3 | 124 + static/freebsd/man3/CMS_EncryptedData_encrypt.3 | 125 + static/freebsd/man3/CMS_EncryptedData_set1_key.3 | 96 + static/freebsd/man3/CMS_EnvelopedData_create.3 | 142 + static/freebsd/man3/CMS_add0_cert.3 | 140 + static/freebsd/man3/CMS_add1_recipient_cert.3 | 141 + static/freebsd/man3/CMS_add1_signer.3 | 166 + static/freebsd/man3/CMS_compress.3 | 133 + static/freebsd/man3/CMS_data_create.3 | 110 + static/freebsd/man3/CMS_decrypt.3 | 176 + static/freebsd/man3/CMS_digest_create.3 | 113 + static/freebsd/man3/CMS_encrypt.3 | 170 + static/freebsd/man3/CMS_final.3 | 116 + static/freebsd/man3/CMS_get0_RecipientInfos.3 | 210 + static/freebsd/man3/CMS_get0_SignerInfos.3 | 146 + static/freebsd/man3/CMS_get0_type.3 | 143 + static/freebsd/man3/CMS_get1_ReceiptRequest.3 | 147 + static/freebsd/man3/CMS_sign.3 | 200 + static/freebsd/man3/CMS_sign_receipt.3 | 108 + static/freebsd/man3/CMS_signed_get_attr.3 | 263 + static/freebsd/man3/CMS_uncompress.3 | 114 + static/freebsd/man3/CMS_verify.3 | 225 + static/freebsd/man3/CMS_verify_receipt.3 | 110 + static/freebsd/man3/COMP_CTX_new.3 | 223 + static/freebsd/man3/CONF_modules_free.3 | 116 + static/freebsd/man3/CONF_modules_load_file.3 | 227 + static/freebsd/man3/CRYPTO_THREAD_run_once.3 | 309 + static/freebsd/man3/CRYPTO_get_ex_new_index.3 | 238 + static/freebsd/man3/CRYPTO_memcmp.3 | 96 + static/freebsd/man3/CTLOG_STORE_get0_log_by_id.3 | 105 + static/freebsd/man3/CTLOG_STORE_new.3 | 145 + static/freebsd/man3/CTLOG_new.3 | 146 + static/freebsd/man3/CT_POLICY_EVAL_CTX_new.3 | 172 + static/freebsd/man3/DEFINE_STACK_OF.3 | 372 + static/freebsd/man3/DES_cbc_cksum.3 | 1 + static/freebsd/man3/DES_cbc_encrypt.3 | 1 + static/freebsd/man3/DES_cfb64_encrypt.3 | 1 + static/freebsd/man3/DES_check_key_parity.3 | 1 + static/freebsd/man3/DES_ecb3_encrypt.3 | 1 + static/freebsd/man3/DES_ecb_encrypt.3 | 1 + static/freebsd/man3/DES_ede3_cbc_encrypt.3 | 1 + static/freebsd/man3/DES_encrypt.3 | 1 + .../man3/DES_init_random_number_generator.3 | 1 + static/freebsd/man3/DES_is_weak_key.3 | 1 + static/freebsd/man3/DES_key_sched.3 | 1 + static/freebsd/man3/DES_new_random_key.3 | 1 + static/freebsd/man3/DES_pcbc_encrypt.3 | 1 + static/freebsd/man3/DES_random_key.3 | 389 + static/freebsd/man3/DES_set_key.3 | 1 + static/freebsd/man3/DES_set_key_checked.3 | 1 + static/freebsd/man3/DES_set_key_unchecked.3 | 1 + static/freebsd/man3/DES_set_odd_parity.3 | 1 + static/freebsd/man3/DES_string_to_key.3 | 1 + static/freebsd/man3/DH_check_pubkey.3 | 1 + static/freebsd/man3/DH_compute_key.3 | 1 + static/freebsd/man3/DH_free.3 | 1 + static/freebsd/man3/DH_generate_key.3 | 140 + static/freebsd/man3/DH_generate_parameters.3 | 215 + static/freebsd/man3/DH_generate_parameters_ex.3 | 1 + static/freebsd/man3/DH_get0_pqg.3 | 208 + static/freebsd/man3/DH_get_1024_160.3 | 150 + static/freebsd/man3/DH_get_default_method.3 | 1 + static/freebsd/man3/DH_get_ex_data.3 | 1 + static/freebsd/man3/DH_ltm_method.3 | 1 + static/freebsd/man3/DH_meth_new.3 | 236 + static/freebsd/man3/DH_new.3 | 115 + static/freebsd/man3/DH_new_by_nid.3 | 111 + static/freebsd/man3/DH_new_method.3 | 1 + static/freebsd/man3/DH_null_method.3 | 1 + static/freebsd/man3/DH_set_default_method.3 | 1 + static/freebsd/man3/DH_set_ex_data.3 | 1 + static/freebsd/man3/DH_set_method.3 | 157 + static/freebsd/man3/DH_size.3 | 127 + static/freebsd/man3/DH_up_ref.3 | 1 + static/freebsd/man3/DSA_SIG_new.3 | 116 + static/freebsd/man3/DSA_do_sign.3 | 122 + static/freebsd/man3/DSA_dup_DH.3 | 110 + static/freebsd/man3/DSA_generate_key.3 | 111 + static/freebsd/man3/DSA_generate_parameters.3 | 177 + static/freebsd/man3/DSA_get0_pqg.3 | 180 + static/freebsd/man3/DSA_meth_new.3 | 286 + static/freebsd/man3/DSA_new.3 | 118 + static/freebsd/man3/DSA_set_method.3 | 157 + static/freebsd/man3/DSA_sign.3 | 140 + static/freebsd/man3/DSA_size.3 | 126 + static/freebsd/man3/DTLS_get_data_mtu.3 | 93 + static/freebsd/man3/DTLS_set_timer_cb.3 | 108 + static/freebsd/man3/DTLSv1_get_timeout.3 | 115 + static/freebsd/man3/DTLSv1_handle_timeout.3 | 108 + static/freebsd/man3/DTLSv1_listen.3 | 211 + static/freebsd/man3/ECDSA_SIG_new.3 | 206 + static/freebsd/man3/ECDSA_sign.3 | 254 + static/freebsd/man3/ECPKParameters_print.3 | 113 + static/freebsd/man3/EC_GFp_simple_method.3 | 140 + static/freebsd/man3/EC_GROUP_copy.3 | 322 + static/freebsd/man3/EC_GROUP_new.3 | 302 + static/freebsd/man3/EC_KEY_get_enc_flags.3 | 116 + static/freebsd/man3/EC_KEY_new.3 | 303 + static/freebsd/man3/EC_POINT_add.3 | 158 + static/freebsd/man3/EC_POINT_new.3 | 336 + static/freebsd/man3/ENGINE_add.3 | 741 ++ static/freebsd/man3/ERR_GET_LIB.3 | 127 + static/freebsd/man3/ERR_clear_error.3 | 91 + static/freebsd/man3/ERR_error_string.3 | 141 + static/freebsd/man3/ERR_get_error.3 | 199 + static/freebsd/man3/ERR_load_crypto_strings.3 | 112 + static/freebsd/man3/ERR_load_strings.3 | 117 + static/freebsd/man3/ERR_new.3 | 134 + static/freebsd/man3/ERR_print_errors.3 | 118 + static/freebsd/man3/ERR_put_error.3 | 224 + static/freebsd/man3/ERR_remove_state.3 | 109 + static/freebsd/man3/ERR_set_mark.3 | 118 + static/freebsd/man3/EVP_ASYM_CIPHER_free.3 | 168 + static/freebsd/man3/EVP_BytesToKey.3 | 135 + static/freebsd/man3/EVP_CIPHER_CTX_block_size.3 | 1 + static/freebsd/man3/EVP_CIPHER_CTX_cipher.3 | 1 + static/freebsd/man3/EVP_CIPHER_CTX_cleanup.3 | 1 + static/freebsd/man3/EVP_CIPHER_CTX_ctrl.3 | 1 + static/freebsd/man3/EVP_CIPHER_CTX_flags.3 | 1 + static/freebsd/man3/EVP_CIPHER_CTX_get_app_data.3 | 96 + .../freebsd/man3/EVP_CIPHER_CTX_get_cipher_data.3 | 108 + .../freebsd/man3/EVP_CIPHER_CTX_get_original_iv.3 | 133 + static/freebsd/man3/EVP_CIPHER_CTX_init.3 | 1 + static/freebsd/man3/EVP_CIPHER_CTX_iv_length.3 | 1 + static/freebsd/man3/EVP_CIPHER_CTX_key_length.3 | 1 + static/freebsd/man3/EVP_CIPHER_CTX_mode.3 | 1 + static/freebsd/man3/EVP_CIPHER_CTX_rand_key.3 | 1 + static/freebsd/man3/EVP_CIPHER_CTX_set_app_data.3 | 1 + .../freebsd/man3/EVP_CIPHER_CTX_set_key_length.3 | 1 + static/freebsd/man3/EVP_CIPHER_block_size.3 | 1 + static/freebsd/man3/EVP_CIPHER_iv_length.3 | 1 + static/freebsd/man3/EVP_CIPHER_key_length.3 | 1 + static/freebsd/man3/EVP_CIPHER_meth_new.3 | 296 + static/freebsd/man3/EVP_CipherFinal_ex.3 | 1 + static/freebsd/man3/EVP_CipherInit_ex.3 | 1 + static/freebsd/man3/EVP_CipherUpdate.3 | 1 + static/freebsd/man3/EVP_Digest.3 | 1 + static/freebsd/man3/EVP_DigestFinal_ex.3 | 1 + static/freebsd/man3/EVP_DigestInit.3 | 805 ++ static/freebsd/man3/EVP_DigestInit_ex.3 | 1 + static/freebsd/man3/EVP_DigestSignInit.3 | 264 + static/freebsd/man3/EVP_DigestUpdate.3 | 1 + static/freebsd/man3/EVP_DigestVerifyInit.3 | 249 + static/freebsd/man3/EVP_EncodeInit.3 | 250 + static/freebsd/man3/EVP_EncryptInit.3 | 1825 ++++ static/freebsd/man3/EVP_KDF.3 | 351 + static/freebsd/man3/EVP_KEM_free.3 | 162 + static/freebsd/man3/EVP_KEYEXCH_free.3 | 167 + static/freebsd/man3/EVP_KEYMGMT.3 | 210 + static/freebsd/man3/EVP_MAC.3 | 549 ++ static/freebsd/man3/EVP_MD_CTX_block_size.3 | 1 + static/freebsd/man3/EVP_MD_CTX_cleanup.3 | 1 + static/freebsd/man3/EVP_MD_CTX_create.3 | 1 + static/freebsd/man3/EVP_MD_CTX_destroy.3 | 1 + static/freebsd/man3/EVP_MD_CTX_init.3 | 1 + static/freebsd/man3/EVP_MD_CTX_md.3 | 1 + static/freebsd/man3/EVP_MD_CTX_size.3 | 1 + static/freebsd/man3/EVP_MD_block_size.3 | 1 + static/freebsd/man3/EVP_MD_meth_new.3 | 253 + static/freebsd/man3/EVP_MD_size.3 | 1 + static/freebsd/man3/EVP_OpenInit.3 | 125 + static/freebsd/man3/EVP_PBE_CipherInit.3 | 154 + static/freebsd/man3/EVP_PKEY2PKCS8.3 | 104 + static/freebsd/man3/EVP_PKEY_ASN1_METHOD.3 | 517 ++ static/freebsd/man3/EVP_PKEY_CTX_ctrl.3 | 745 ++ static/freebsd/man3/EVP_PKEY_CTX_get0_libctx.3 | 110 + static/freebsd/man3/EVP_PKEY_CTX_get0_pkey.3 | 113 + static/freebsd/man3/EVP_PKEY_CTX_get_algor.3 | 123 + static/freebsd/man3/EVP_PKEY_CTX_new.3 | 183 + static/freebsd/man3/EVP_PKEY_CTX_set1_pbe_pass.3 | 110 + static/freebsd/man3/EVP_PKEY_CTX_set_hkdf_md.3 | 218 + static/freebsd/man3/EVP_PKEY_CTX_set_params.3 | 155 + .../man3/EVP_PKEY_CTX_set_rsa_pss_keygen_md.3 | 161 + static/freebsd/man3/EVP_PKEY_CTX_set_scrypt_N.3 | 146 + static/freebsd/man3/EVP_PKEY_CTX_set_tls1_prf_md.3 | 169 + static/freebsd/man3/EVP_PKEY_asn1_get_count.3 | 137 + static/freebsd/man3/EVP_PKEY_check.3 | 156 + static/freebsd/man3/EVP_PKEY_copy_parameters.3 | 161 + static/freebsd/man3/EVP_PKEY_decapsulate.3 | 191 + static/freebsd/man3/EVP_PKEY_decrypt.3 | 191 + static/freebsd/man3/EVP_PKEY_derive.3 | 180 + .../man3/EVP_PKEY_digestsign_supports_digest.3 | 100 + static/freebsd/man3/EVP_PKEY_encapsulate.3 | 200 + static/freebsd/man3/EVP_PKEY_encrypt.3 | 174 + static/freebsd/man3/EVP_PKEY_fromdata.3 | 334 + static/freebsd/man3/EVP_PKEY_get_attr.3 | 169 + .../freebsd/man3/EVP_PKEY_get_default_digest_nid.3 | 122 + static/freebsd/man3/EVP_PKEY_get_field_type.3 | 110 + static/freebsd/man3/EVP_PKEY_get_group_name.3 | 102 + static/freebsd/man3/EVP_PKEY_get_size.3 | 150 + static/freebsd/man3/EVP_PKEY_gettable_params.3 | 191 + static/freebsd/man3/EVP_PKEY_is_a.3 | 172 + static/freebsd/man3/EVP_PKEY_keygen.3 | 311 + static/freebsd/man3/EVP_PKEY_meth_get_count.3 | 119 + static/freebsd/man3/EVP_PKEY_meth_new.3 | 555 ++ static/freebsd/man3/EVP_PKEY_new.3 | 350 + static/freebsd/man3/EVP_PKEY_print_private.3 | 132 + static/freebsd/man3/EVP_PKEY_set1_RSA.3 | 294 + .../man3/EVP_PKEY_set1_encoded_public_key.3 | 215 + static/freebsd/man3/EVP_PKEY_set_type.3 | 125 + static/freebsd/man3/EVP_PKEY_settable_params.3 | 136 + static/freebsd/man3/EVP_PKEY_sign.3 | 409 + static/freebsd/man3/EVP_PKEY_todata.3 | 129 + static/freebsd/man3/EVP_PKEY_verify.3 | 398 + static/freebsd/man3/EVP_PKEY_verify_recover.3 | 198 + static/freebsd/man3/EVP_RAND.3 | 452 + static/freebsd/man3/EVP_SIGNATURE.3 | 172 + static/freebsd/man3/EVP_SKEY.3 | 210 + static/freebsd/man3/EVP_SKEYMGMT.3 | 206 + static/freebsd/man3/EVP_SealInit.3 | 148 + static/freebsd/man3/EVP_SignInit.3 | 173 + static/freebsd/man3/EVP_VerifyInit.3 | 168 + static/freebsd/man3/EVP_aes_128_cbc.3 | 1 + static/freebsd/man3/EVP_aes_128_cfb8.3 | 1 + static/freebsd/man3/EVP_aes_128_gcm.3 | 199 + static/freebsd/man3/EVP_aes_192_cbc.3 | 1 + static/freebsd/man3/EVP_aes_192_cfb8.3 | 1 + static/freebsd/man3/EVP_aes_256_cbc.3 | 1 + static/freebsd/man3/EVP_aes_256_cfb8.3 | 1 + static/freebsd/man3/EVP_aria_128_gcm.3 | 143 + static/freebsd/man3/EVP_bf_cbc.3 | 115 + static/freebsd/man3/EVP_blake2b512.3 | 117 + static/freebsd/man3/EVP_camellia_128_cbc.3 | 1 + static/freebsd/man3/EVP_camellia_128_ecb.3 | 132 + static/freebsd/man3/EVP_camellia_192_cbc.3 | 1 + static/freebsd/man3/EVP_camellia_256_cbc.3 | 1 + static/freebsd/man3/EVP_cast5_cbc.3 | 115 + static/freebsd/man3/EVP_chacha20.3 | 124 + static/freebsd/man3/EVP_des_cbc.3 | 144 + static/freebsd/man3/EVP_des_ede3_cbc.3 | 1 + static/freebsd/man3/EVP_desx_cbc.3 | 110 + static/freebsd/man3/EVP_enc_null.3 | 1 + static/freebsd/man3/EVP_get_cipherbyname.3 | 1 + static/freebsd/man3/EVP_hcrypto_aes_128_cbc.3 | 1 + static/freebsd/man3/EVP_hcrypto_aes_128_cfb8.3 | 1 + static/freebsd/man3/EVP_hcrypto_aes_192_cbc.3 | 1 + static/freebsd/man3/EVP_hcrypto_aes_192_cfb8.3 | 1 + static/freebsd/man3/EVP_hcrypto_aes_256_cbc.3 | 1 + static/freebsd/man3/EVP_hcrypto_aes_256_cfb8.3 | 1 + static/freebsd/man3/EVP_hcrypto_camellia_128_cbc.3 | 1 + static/freebsd/man3/EVP_hcrypto_camellia_192_cbc.3 | 1 + static/freebsd/man3/EVP_hcrypto_camellia_256_cbc.3 | 1 + static/freebsd/man3/EVP_hcrypto_des_cbc.3 | 1 + static/freebsd/man3/EVP_hcrypto_des_ede3_cbc.3 | 1 + static/freebsd/man3/EVP_hcrypto_md2.3 | 1 + static/freebsd/man3/EVP_hcrypto_md4.3 | 1 + static/freebsd/man3/EVP_hcrypto_md5.3 | 1 + static/freebsd/man3/EVP_hcrypto_rc2_40_cbc.3 | 1 + static/freebsd/man3/EVP_hcrypto_rc2_64_cbc.3 | 1 + static/freebsd/man3/EVP_hcrypto_rc2_cbc.3 | 1 + static/freebsd/man3/EVP_hcrypto_sha1.3 | 1 + static/freebsd/man3/EVP_hcrypto_sha256.3 | 1 + static/freebsd/man3/EVP_hcrypto_sha384.3 | 1 + static/freebsd/man3/EVP_hcrypto_sha512.3 | 1 + static/freebsd/man3/EVP_idea_cbc.3 | 113 + static/freebsd/man3/EVP_md2.3 | 109 + static/freebsd/man3/EVP_md4.3 | 110 + static/freebsd/man3/EVP_md5.3 | 119 + static/freebsd/man3/EVP_md_null.3 | 1 + static/freebsd/man3/EVP_mdc2.3 | 111 + static/freebsd/man3/EVP_rc2_40_cbc.3 | 1 + static/freebsd/man3/EVP_rc2_64_cbc.3 | 1 + static/freebsd/man3/EVP_rc2_cbc.3 | 127 + static/freebsd/man3/EVP_rc4.3 | 123 + static/freebsd/man3/EVP_rc4_40.3 | 1 + static/freebsd/man3/EVP_rc5_32_12_16_cbc.3 | 132 + static/freebsd/man3/EVP_ripemd160.3 | 110 + static/freebsd/man3/EVP_seed_cbc.3 | 115 + static/freebsd/man3/EVP_set_default_properties.3 | 141 + static/freebsd/man3/EVP_sha.3 | 1 + static/freebsd/man3/EVP_sha1.3 | 109 + static/freebsd/man3/EVP_sha224.3 | 124 + static/freebsd/man3/EVP_sha256.3 | 1 + static/freebsd/man3/EVP_sha384.3 | 1 + static/freebsd/man3/EVP_sha3_224.3 | 129 + static/freebsd/man3/EVP_sha512.3 | 1 + static/freebsd/man3/EVP_sm3.3 | 109 + static/freebsd/man3/EVP_sm4_cbc.3 | 119 + static/freebsd/man3/EVP_whirlpool.3 | 111 + static/freebsd/man3/EVP_wincrypt_des_ede3_cbc.3 | 1 + static/freebsd/man3/GENERAL_NAME.3 | 98 + static/freebsd/man3/HDB.3 | 185 + static/freebsd/man3/HMAC.3 | 232 + static/freebsd/man3/MD5.3 | 171 + static/freebsd/man3/MDC2_Init.3 | 137 + static/freebsd/man3/NCONF_new_ex.3 | 140 + static/freebsd/man3/OBJ_nid2obj.3 | 270 + static/freebsd/man3/OCSP_REQUEST_new.3 | 176 + static/freebsd/man3/OCSP_cert_to_id.3 | 145 + static/freebsd/man3/OCSP_request_add1_nonce.3 | 140 + static/freebsd/man3/OCSP_resp_find_status.3 | 276 + static/freebsd/man3/OCSP_response_status.3 | 189 + static/freebsd/man3/OCSP_sendreq_new.3 | 187 + static/freebsd/man3/OPENSSL_Applink.3 | 93 + static/freebsd/man3/OPENSSL_FILE.3 | 112 + static/freebsd/man3/OPENSSL_LH_COMPFUNC.3 | 403 + static/freebsd/man3/OPENSSL_LH_stats.3 | 137 + static/freebsd/man3/OPENSSL_config.3 | 139 + static/freebsd/man3/OPENSSL_fork_prepare.3 | 128 + static/freebsd/man3/OPENSSL_gmtime.3 | 118 + static/freebsd/man3/OPENSSL_hexchar2int.3 | 139 + static/freebsd/man3/OPENSSL_ia32cap.3 | 271 + static/freebsd/man3/OPENSSL_init_crypto.3 | 334 + static/freebsd/man3/OPENSSL_init_ssl.3 | 134 + static/freebsd/man3/OPENSSL_instrument_bus.3 | 111 + static/freebsd/man3/OPENSSL_load_builtin_modules.3 | 115 + static/freebsd/man3/OPENSSL_load_u16_le.3 | 141 + static/freebsd/man3/OPENSSL_malloc.3 | 321 + static/freebsd/man3/OPENSSL_ppccap.3 | 206 + static/freebsd/man3/OPENSSL_riscvcap.3 | 254 + static/freebsd/man3/OPENSSL_s390xcap.3 | 269 + static/freebsd/man3/OPENSSL_secure_malloc.3 | 206 + static/freebsd/man3/OPENSSL_strcasecmp.3 | 107 + static/freebsd/man3/OSSL_ALGORITHM.3 | 185 + static/freebsd/man3/OSSL_CALLBACK.3 | 122 + static/freebsd/man3/OSSL_CMP_ATAV_set0.3 | 173 + static/freebsd/man3/OSSL_CMP_CTX_new.3 | 945 ++ .../freebsd/man3/OSSL_CMP_HDR_get0_transactionID.3 | 111 + static/freebsd/man3/OSSL_CMP_ITAV_new_caCerts.3 | 270 + static/freebsd/man3/OSSL_CMP_ITAV_set0.3 | 189 + static/freebsd/man3/OSSL_CMP_MSG_get0_header.3 | 212 + static/freebsd/man3/OSSL_CMP_MSG_http_perform.3 | 128 + static/freebsd/man3/OSSL_CMP_SRV_CTX_new.3 | 254 + static/freebsd/man3/OSSL_CMP_STATUSINFO_new.3 | 122 + static/freebsd/man3/OSSL_CMP_exec_certreq.3 | 318 + static/freebsd/man3/OSSL_CMP_log_open.3 | 183 + static/freebsd/man3/OSSL_CMP_validate_msg.3 | 144 + static/freebsd/man3/OSSL_CORE_MAKE_FUNC.3 | 100 + static/freebsd/man3/OSSL_CRMF_MSG_get0_tmpl.3 | 224 + static/freebsd/man3/OSSL_CRMF_MSG_set0_validity.3 | 172 + .../man3/OSSL_CRMF_MSG_set1_regCtrl_regToken.3 | 186 + .../man3/OSSL_CRMF_MSG_set1_regInfo_certReq.3 | 123 + static/freebsd/man3/OSSL_CRMF_pbmp_new.3 | 149 + static/freebsd/man3/OSSL_DECODER.3 | 247 + static/freebsd/man3/OSSL_DECODER_CTX.3 | 314 + .../freebsd/man3/OSSL_DECODER_CTX_new_for_pkey.3 | 202 + static/freebsd/man3/OSSL_DECODER_from_bio.3 | 174 + static/freebsd/man3/OSSL_DISPATCH.3 | 123 + static/freebsd/man3/OSSL_ENCODER.3 | 201 + static/freebsd/man3/OSSL_ENCODER_CTX.3 | 282 + .../freebsd/man3/OSSL_ENCODER_CTX_new_for_pkey.3 | 200 + static/freebsd/man3/OSSL_ENCODER_to_bio.3 | 185 + static/freebsd/man3/OSSL_ERR_STATE_save.3 | 142 + static/freebsd/man3/OSSL_ESS_check_signing_certs.3 | 143 + static/freebsd/man3/OSSL_GENERAL_NAMES_print.3 | 93 + static/freebsd/man3/OSSL_HPKE_CTX_new.3 | 597 ++ static/freebsd/man3/OSSL_HTTP_REQ_CTX.3 | 355 + static/freebsd/man3/OSSL_HTTP_parse_url.3 | 170 + static/freebsd/man3/OSSL_HTTP_transfer.3 | 344 + static/freebsd/man3/OSSL_IETF_ATTR_SYNTAX.3 | 147 + static/freebsd/man3/OSSL_IETF_ATTR_SYNTAX_print.3 | 97 + static/freebsd/man3/OSSL_INDICATOR_set_callback.3 | 139 + static/freebsd/man3/OSSL_ITEM.3 | 103 + static/freebsd/man3/OSSL_LIB_CTX.3 | 209 + .../man3/OSSL_LIB_CTX_set_conf_diagnostics.3 | 109 + static/freebsd/man3/OSSL_PARAM.3 | 391 + static/freebsd/man3/OSSL_PARAM_BLD.3 | 264 + .../freebsd/man3/OSSL_PARAM_allocate_from_text.3 | 255 + static/freebsd/man3/OSSL_PARAM_dup.3 | 116 + static/freebsd/man3/OSSL_PARAM_int.3 | 468 + static/freebsd/man3/OSSL_PARAM_print_to_bio.3 | 99 + static/freebsd/man3/OSSL_PROVIDER.3 | 347 + static/freebsd/man3/OSSL_QUIC_client_method.3 | 113 + static/freebsd/man3/OSSL_SELF_TEST_new.3 | 212 + static/freebsd/man3/OSSL_SELF_TEST_set_callback.3 | 108 + static/freebsd/man3/OSSL_STORE_INFO.3 | 275 + static/freebsd/man3/OSSL_STORE_LOADER.3 | 432 + static/freebsd/man3/OSSL_STORE_SEARCH.3 | 238 + static/freebsd/man3/OSSL_STORE_attach.3 | 103 + static/freebsd/man3/OSSL_STORE_expect.3 | 136 + static/freebsd/man3/OSSL_STORE_open.3 | 242 + static/freebsd/man3/OSSL_sleep.3 | 99 + static/freebsd/man3/OSSL_trace_enabled.3 | 391 + static/freebsd/man3/OSSL_trace_get_category_num.3 | 101 + static/freebsd/man3/OSSL_trace_set_channel.3 | 374 + static/freebsd/man3/OpenSSL_add_all_algorithms.3 | 121 + .../freebsd/man3/OpenSSL_add_all_algorithms_conf.3 | 1 + .../man3/OpenSSL_add_all_algorithms_noconf.3 | 1 + static/freebsd/man3/OpenSSL_version.3 | 295 + static/freebsd/man3/PBMAC1_get1_pbkdf2_param.3 | 101 + static/freebsd/man3/PEM_X509_INFO_read_bio_ex.3 | 139 + static/freebsd/man3/PEM_bytes_read_bio.3 | 141 + static/freebsd/man3/PEM_read.3 | 212 + static/freebsd/man3/PEM_read_CMS.3 | 207 + static/freebsd/man3/PEM_read_bio_PrivateKey.3 | 682 ++ static/freebsd/man3/PEM_read_bio_ex.3 | 125 + static/freebsd/man3/PEM_write_bio_CMS_stream.3 | 105 + static/freebsd/man3/PEM_write_bio_PKCS7_stream.3 | 104 + static/freebsd/man3/PKCS12_PBE_keyivgen.3 | 162 + static/freebsd/man3/PKCS12_SAFEBAG_create_cert.3 | 154 + static/freebsd/man3/PKCS12_SAFEBAG_get0_attrs.3 | 107 + static/freebsd/man3/PKCS12_SAFEBAG_get1_cert.3 | 145 + static/freebsd/man3/PKCS12_SAFEBAG_set0_attrs.3 | 93 + static/freebsd/man3/PKCS12_add1_attr_by_NID.3 | 108 + static/freebsd/man3/PKCS12_add_CSPName_asc.3 | 93 + static/freebsd/man3/PKCS12_add_cert.3 | 135 + static/freebsd/man3/PKCS12_add_friendlyname_asc.3 | 109 + static/freebsd/man3/PKCS12_add_localkeyid.3 | 95 + static/freebsd/man3/PKCS12_add_safe.3 | 137 + static/freebsd/man3/PKCS12_create.3 | 191 + static/freebsd/man3/PKCS12_decrypt_skey.3 | 110 + static/freebsd/man3/PKCS12_gen_mac.3 | 149 + static/freebsd/man3/PKCS12_get_friendlyname.3 | 96 + static/freebsd/man3/PKCS12_init.3 | 104 + static/freebsd/man3/PKCS12_item_decrypt_d2i.3 | 129 + static/freebsd/man3/PKCS12_key_gen_utf8_ex.3 | 172 + static/freebsd/man3/PKCS12_newpass.3 | 169 + static/freebsd/man3/PKCS12_pack_p7encdata.3 | 114 + static/freebsd/man3/PKCS12_parse.3 | 132 + static/freebsd/man3/PKCS5_PBE_keyivgen.3 | 249 + static/freebsd/man3/PKCS5_PBKDF2_HMAC.3 | 133 + static/freebsd/man3/PKCS5_PBKDF2_HMAC_SHA1.3 | 1 + static/freebsd/man3/PKCS7_decrypt.3 | 112 + static/freebsd/man3/PKCS7_encrypt.3 | 152 + static/freebsd/man3/PKCS7_get_octet_string.3 | 96 + static/freebsd/man3/PKCS7_sign.3 | 187 + static/freebsd/man3/PKCS7_sign_add_signer.3 | 164 + static/freebsd/man3/PKCS7_type_is_other.3 | 99 + static/freebsd/man3/PKCS7_verify.3 | 197 + static/freebsd/man3/PKCS8_encrypt.3 | 133 + static/freebsd/man3/PKCS8_pkey_add1_attr.3 | 110 + static/freebsd/man3/Q_FRAWMASK.3 3.html | 101 + static/freebsd/man3/Q_IFRAWMASK.3 3.html | 133 + static/freebsd/man3/Q_INI.3 3.html | 216 + static/freebsd/man3/Q_IRAWMASK.3 3.html | 101 + static/freebsd/man3/Q_QABS.3 4.html | 84 + static/freebsd/man3/Q_QADDI.3 3.html | 113 + static/freebsd/man3/Q_QADDQ.3 3.html | 144 + static/freebsd/man3/Q_SIGNED.3 3.html | 158 + static/freebsd/man3/Q_SIGNSHFT.3 3.html | 120 + static/freebsd/man3/RAND_add.3 | 169 + static/freebsd/man3/RAND_bytes.3 | 171 + static/freebsd/man3/RAND_cleanup.3 | 104 + static/freebsd/man3/RAND_egd.3 | 118 + static/freebsd/man3/RAND_file_name.3 | 1 + static/freebsd/man3/RAND_get0_primary.3 | 150 + static/freebsd/man3/RAND_get_rand_method.3 | 1 + static/freebsd/man3/RAND_load_file.3 | 147 + static/freebsd/man3/RAND_pseudo_bytes.3 | 1 + static/freebsd/man3/RAND_seed.3 | 1 + static/freebsd/man3/RAND_set_DRBG_type.3 | 128 + static/freebsd/man3/RAND_set_rand_engine.3 | 1 + static/freebsd/man3/RAND_set_rand_method.3 | 145 + static/freebsd/man3/RAND_status.3 | 1 + static/freebsd/man3/RAND_write_file.3 | 1 + static/freebsd/man3/RC4_set_key.3 | 135 + static/freebsd/man3/RIPEMD160_Init.3 | 139 + static/freebsd/man3/RSA_blinding_on.3 | 112 + static/freebsd/man3/RSA_check_key.3 | 150 + static/freebsd/man3/RSA_free.3 | 1 + static/freebsd/man3/RSA_generate_key.3 | 176 + static/freebsd/man3/RSA_get0_key.3 | 251 + static/freebsd/man3/RSA_get_app_data.3 | 1 + static/freebsd/man3/RSA_get_method.3 | 1 + static/freebsd/man3/RSA_meth_new.3 | 329 + static/freebsd/man3/RSA_new.3 | 114 + static/freebsd/man3/RSA_new_method.3 | 1 + static/freebsd/man3/RSA_padding_add_PKCS1_type_1.3 | 212 + static/freebsd/man3/RSA_print.3 | 141 + static/freebsd/man3/RSA_private_encrypt.3 | 140 + static/freebsd/man3/RSA_public_encrypt.3 | 180 + static/freebsd/man3/RSA_set_app_data.3 | 1 + static/freebsd/man3/RSA_set_method.3 | 247 + static/freebsd/man3/RSA_sign.3 | 134 + static/freebsd/man3/RSA_sign_ASN1_OCTET_STRING.3 | 135 + static/freebsd/man3/RSA_size.3 | 123 + static/freebsd/man3/RSA_up_ref.3 | 1 + static/freebsd/man3/SCT_new.3 | 247 + static/freebsd/man3/SCT_print.3 | 113 + static/freebsd/man3/SCT_validate.3 | 149 + static/freebsd/man3/SHA256_Init.3 | 174 + static/freebsd/man3/SMIME_read_ASN1.3 | 140 + static/freebsd/man3/SMIME_read_CMS.3 | 148 + static/freebsd/man3/SMIME_read_PKCS7.3 | 144 + static/freebsd/man3/SMIME_write_ASN1.3 | 138 + static/freebsd/man3/SMIME_write_CMS.3 | 124 + static/freebsd/man3/SMIME_write_PKCS7.3 | 125 + static/freebsd/man3/SRP_Calc_B.3 | 158 + static/freebsd/man3/SRP_VBASE_new.3 | 166 + static/freebsd/man3/SRP_create_verifier.3 | 198 + static/freebsd/man3/SRP_user_pwd_new.3 | 135 + static/freebsd/man3/SSL_CIPHER_get_name.3 | 265 + .../freebsd/man3/SSL_COMP_add_compression_method.3 | 168 + static/freebsd/man3/SSL_CONF_CTX_new.3 | 107 + static/freebsd/man3/SSL_CONF_CTX_set1_prefix.3 | 114 + static/freebsd/man3/SSL_CONF_CTX_set_flags.3 | 131 + static/freebsd/man3/SSL_CONF_CTX_set_ssl_ctx.3 | 120 + static/freebsd/man3/SSL_CONF_cmd.3 | 896 ++ static/freebsd/man3/SSL_CONF_cmd_argv.3 | 108 + static/freebsd/man3/SSL_CTX_add1_chain_cert.3 | 217 + static/freebsd/man3/SSL_CTX_add_extra_chain_cert.3 | 149 + static/freebsd/man3/SSL_CTX_add_session.3 | 125 + static/freebsd/man3/SSL_CTX_config.3 | 149 + static/freebsd/man3/SSL_CTX_ctrl.3 | 100 + static/freebsd/man3/SSL_CTX_dane_enable.3 | 442 + static/freebsd/man3/SSL_CTX_flush_sessions.3 | 127 + static/freebsd/man3/SSL_CTX_free.3 | 107 + static/freebsd/man3/SSL_CTX_get0_param.3 | 137 + static/freebsd/man3/SSL_CTX_get_verify_mode.3 | 116 + .../freebsd/man3/SSL_CTX_has_client_custom_ext.3 | 94 + .../freebsd/man3/SSL_CTX_load_verify_locations.3 | 235 + static/freebsd/man3/SSL_CTX_new.3 | 297 + static/freebsd/man3/SSL_CTX_sess_number.3 | 142 + static/freebsd/man3/SSL_CTX_sess_set_cache_size.3 | 118 + static/freebsd/man3/SSL_CTX_sess_set_get_cb.3 | 179 + static/freebsd/man3/SSL_CTX_sessions.3 | 103 + static/freebsd/man3/SSL_CTX_set0_CA_list.3 | 245 + .../man3/SSL_CTX_set1_cert_comp_preference.3 | 206 + static/freebsd/man3/SSL_CTX_set1_curves.3 | 468 + static/freebsd/man3/SSL_CTX_set1_sigalgs.3 | 187 + .../freebsd/man3/SSL_CTX_set1_verify_cert_store.3 | 170 + static/freebsd/man3/SSL_CTX_set_alpn_select_cb.3 | 257 + static/freebsd/man3/SSL_CTX_set_cert_cb.3 | 136 + static/freebsd/man3/SSL_CTX_set_cert_store.3 | 146 + .../man3/SSL_CTX_set_cert_verify_callback.3 | 165 + static/freebsd/man3/SSL_CTX_set_cipher_list.3 | 186 + static/freebsd/man3/SSL_CTX_set_client_cert_cb.3 | 165 + static/freebsd/man3/SSL_CTX_set_client_hello_cb.3 | 213 + .../man3/SSL_CTX_set_ct_validation_callback.3 | 200 + static/freebsd/man3/SSL_CTX_set_ctlog_list_file.3 | 109 + .../freebsd/man3/SSL_CTX_set_default_passwd_cb.3 | 169 + static/freebsd/man3/SSL_CTX_set_domain_flags.3 | 167 + .../freebsd/man3/SSL_CTX_set_generate_session_id.3 | 194 + static/freebsd/man3/SSL_CTX_set_info_callback.3 | 218 + static/freebsd/man3/SSL_CTX_set_keylog_callback.3 | 109 + static/freebsd/man3/SSL_CTX_set_max_cert_list.3 | 138 + .../freebsd/man3/SSL_CTX_set_min_proto_version.3 | 133 + static/freebsd/man3/SSL_CTX_set_mode.3 | 194 + static/freebsd/man3/SSL_CTX_set_msg_callback.3 | 225 + .../freebsd/man3/SSL_CTX_set_new_pending_conn_cb.3 | 126 + static/freebsd/man3/SSL_CTX_set_num_tickets.3 | 152 + static/freebsd/man3/SSL_CTX_set_options.3 | 553 ++ .../freebsd/man3/SSL_CTX_set_psk_client_callback.3 | 234 + static/freebsd/man3/SSL_CTX_set_quiet_shutdown.3 | 132 + static/freebsd/man3/SSL_CTX_set_read_ahead.3 | 133 + .../man3/SSL_CTX_set_record_padding_callback.3 | 174 + static/freebsd/man3/SSL_CTX_set_security_level.3 | 232 + .../freebsd/man3/SSL_CTX_set_session_cache_mode.3 | 188 + .../freebsd/man3/SSL_CTX_set_session_id_context.3 | 140 + .../freebsd/man3/SSL_CTX_set_session_ticket_cb.3 | 230 + .../freebsd/man3/SSL_CTX_set_split_send_fragment.3 | 243 + static/freebsd/man3/SSL_CTX_set_srp_password.3 | 285 + static/freebsd/man3/SSL_CTX_set_ssl_version.3 | 141 + .../SSL_CTX_set_stateless_cookie_generate_cb.3 | 152 + static/freebsd/man3/SSL_CTX_set_timeout.3 | 134 + .../man3/SSL_CTX_set_tlsext_servername_callback.3 | 212 + static/freebsd/man3/SSL_CTX_set_tlsext_status_cb.3 | 183 + .../man3/SSL_CTX_set_tlsext_ticket_key_cb.3 | 300 + static/freebsd/man3/SSL_CTX_set_tlsext_use_srtp.3 | 189 + static/freebsd/man3/SSL_CTX_set_tmp_dh_callback.3 | 183 + static/freebsd/man3/SSL_CTX_set_tmp_ecdh.3 | 107 + static/freebsd/man3/SSL_CTX_set_verify.3 | 425 + static/freebsd/man3/SSL_CTX_use_certificate.3 | 262 + .../freebsd/man3/SSL_CTX_use_psk_identity_hint.3 | 204 + static/freebsd/man3/SSL_CTX_use_serverinfo.3 | 146 + static/freebsd/man3/SSL_SESSION_free.3 | 144 + static/freebsd/man3/SSL_SESSION_get0_cipher.3 | 114 + static/freebsd/man3/SSL_SESSION_get0_hostname.3 | 131 + static/freebsd/man3/SSL_SESSION_get0_id_context.3 | 112 + static/freebsd/man3/SSL_SESSION_get0_peer.3 | 95 + static/freebsd/man3/SSL_SESSION_get_compress_id.3 | 96 + .../man3/SSL_SESSION_get_protocol_version.3 | 112 + static/freebsd/man3/SSL_SESSION_get_time.3 | 158 + static/freebsd/man3/SSL_SESSION_has_ticket.3 | 115 + static/freebsd/man3/SSL_SESSION_is_resumable.3 | 100 + static/freebsd/man3/SSL_SESSION_print.3 | 104 + static/freebsd/man3/SSL_SESSION_set1_id.3 | 106 + static/freebsd/man3/SSL_accept.3 | 130 + static/freebsd/man3/SSL_accept_stream.3 | 137 + static/freebsd/man3/SSL_alert_type_string.3 | 265 + static/freebsd/man3/SSL_alloc_buffers.3 | 122 + static/freebsd/man3/SSL_check_chain.3 | 150 + static/freebsd/man3/SSL_clear.3 | 136 + static/freebsd/man3/SSL_connect.3 | 145 + static/freebsd/man3/SSL_do_handshake.3 | 129 + static/freebsd/man3/SSL_export_keying_material.3 | 147 + static/freebsd/man3/SSL_extension_supported.3 | 334 + static/freebsd/man3/SSL_free.3 | 135 + static/freebsd/man3/SSL_get0_connection.3 | 110 + static/freebsd/man3/SSL_get0_group_name.3 | 103 + static/freebsd/man3/SSL_get0_peer_rpk.3 | 152 + static/freebsd/man3/SSL_get0_peer_scts.3 | 101 + static/freebsd/man3/SSL_get1_builtin_sigalgs.3 | 98 + static/freebsd/man3/SSL_get_SSL_CTX.3 | 92 + static/freebsd/man3/SSL_get_all_async_fds.3 | 142 + static/freebsd/man3/SSL_get_certificate.3 | 121 + static/freebsd/man3/SSL_get_ciphers.3 | 175 + static/freebsd/man3/SSL_get_client_random.3 | 158 + static/freebsd/man3/SSL_get_conn_close_info.3 | 218 + static/freebsd/man3/SSL_get_current_cipher.3 | 127 + static/freebsd/man3/SSL_get_default_timeout.3 | 106 + static/freebsd/man3/SSL_get_error.3 | 248 + static/freebsd/man3/SSL_get_event_timeout.3 | 134 + static/freebsd/man3/SSL_get_extms_support.3 | 97 + static/freebsd/man3/SSL_get_fd.3 | 104 + static/freebsd/man3/SSL_get_handshake_rtt.3 | 117 + static/freebsd/man3/SSL_get_peer_cert_chain.3 | 127 + static/freebsd/man3/SSL_get_peer_certificate.3 | 135 + static/freebsd/man3/SSL_get_peer_signature_nid.3 | 127 + static/freebsd/man3/SSL_get_peer_tmp_key.3 | 109 + static/freebsd/man3/SSL_get_psk_identity.3 | 101 + static/freebsd/man3/SSL_get_rbio.3 | 100 + static/freebsd/man3/SSL_get_rpoll_descriptor.3 | 146 + static/freebsd/man3/SSL_get_session.3 | 163 + static/freebsd/man3/SSL_get_shared_sigalgs.3 | 144 + static/freebsd/man3/SSL_get_stream_id.3 | 157 + static/freebsd/man3/SSL_get_stream_read_state.3 | 206 + static/freebsd/man3/SSL_get_value_uint.3 | 374 + static/freebsd/man3/SSL_get_verify_result.3 | 122 + static/freebsd/man3/SSL_get_version.3 | 180 + static/freebsd/man3/SSL_group_to_name.3 | 100 + static/freebsd/man3/SSL_handle_events.3 | 150 + static/freebsd/man3/SSL_in_init.3 | 160 + static/freebsd/man3/SSL_inject_net_dgram.3 | 111 + static/freebsd/man3/SSL_key_update.3 | 185 + static/freebsd/man3/SSL_library_init.3 | 111 + static/freebsd/man3/SSL_load_client_CA_file.3 | 166 + static/freebsd/man3/SSL_new.3 | 180 + static/freebsd/man3/SSL_new_domain.3 | 156 + static/freebsd/man3/SSL_new_listener.3 | 268 + static/freebsd/man3/SSL_new_stream.3 | 156 + static/freebsd/man3/SSL_pending.3 | 125 + static/freebsd/man3/SSL_poll.3 | 428 + static/freebsd/man3/SSL_read.3 | 209 + static/freebsd/man3/SSL_read_early_data.3 | 427 + static/freebsd/man3/SSL_rstate_string.3 | 116 + static/freebsd/man3/SSL_session_reused.3 | 103 + static/freebsd/man3/SSL_set1_host.3 | 184 + static/freebsd/man3/SSL_set1_initial_peer_addr.3 | 117 + static/freebsd/man3/SSL_set1_server_cert_type.3 | 248 + static/freebsd/man3/SSL_set_async_callback.3 | 163 + static/freebsd/man3/SSL_set_bio.3 | 165 + static/freebsd/man3/SSL_set_blocking_mode.3 | 131 + static/freebsd/man3/SSL_set_connect_state.3 | 133 + static/freebsd/man3/SSL_set_default_stream_mode.3 | 176 + static/freebsd/man3/SSL_set_fd.3 | 126 + .../freebsd/man3/SSL_set_incoming_stream_policy.3 | 144 + static/freebsd/man3/SSL_set_quic_tls_cbs.3 | 246 + static/freebsd/man3/SSL_set_retry_verify.3 | 126 + static/freebsd/man3/SSL_set_session.3 | 120 + static/freebsd/man3/SSL_set_session_secret_cb.3 | 126 + static/freebsd/man3/SSL_set_shutdown.3 | 139 + static/freebsd/man3/SSL_set_verify_result.3 | 103 + static/freebsd/man3/SSL_shutdown.3 | 453 + static/freebsd/man3/SSL_state_string.3 | 110 + static/freebsd/man3/SSL_stream_conclude.3 | 116 + static/freebsd/man3/SSL_stream_reset.3 | 134 + static/freebsd/man3/SSL_want.3 | 166 + static/freebsd/man3/SSL_write.3 | 246 + static/freebsd/man3/TS_RESP_CTX_new.3 | 107 + static/freebsd/man3/TS_VERIFY_CTX.3 | 214 + static/freebsd/man3/UI_STRING.3 | 204 + static/freebsd/man3/UI_UTIL_read_pw.3 | 128 + static/freebsd/man3/UI_create_method.3 | 253 + static/freebsd/man3/UI_new.3 | 317 + static/freebsd/man3/X509V3_EXT_print.3 | 108 + static/freebsd/man3/X509V3_get_d2i.3 | 325 + static/freebsd/man3/X509V3_set_ctx.3 | 125 + static/freebsd/man3/X509_ACERT_add1_attr.3 | 123 + static/freebsd/man3/X509_ACERT_add_attr_nconf.3 | 123 + .../man3/X509_ACERT_get0_holder_baseCertId.3 | 171 + static/freebsd/man3/X509_ACERT_get_attr.3 | 116 + static/freebsd/man3/X509_ACERT_print_ex.3 | 162 + static/freebsd/man3/X509_ALGOR_dup.3 | 129 + static/freebsd/man3/X509_ATTRIBUTE.3 | 324 + static/freebsd/man3/X509_CRL_get0_by_serial.3 | 171 + static/freebsd/man3/X509_EXTENSION_set_object.3 | 152 + static/freebsd/man3/X509_LOOKUP.3 | 296 + static/freebsd/man3/X509_LOOKUP_hash_dir.3 | 216 + static/freebsd/man3/X509_LOOKUP_meth_new.3 | 253 + static/freebsd/man3/X509_NAME_ENTRY_get_object.3 | 152 + static/freebsd/man3/X509_NAME_add_entry_by_txt.3 | 183 + static/freebsd/man3/X509_NAME_get0_der.3 | 96 + static/freebsd/man3/X509_NAME_get_index_by_NID.3 | 185 + static/freebsd/man3/X509_NAME_print_ex.3 | 187 + static/freebsd/man3/X509_PUBKEY_new.3 | 235 + static/freebsd/man3/X509_REQ_get_attr.3 | 167 + static/freebsd/man3/X509_REQ_get_extensions.3 | 110 + static/freebsd/man3/X509_SIG_get0.3 | 97 + .../freebsd/man3/X509_STORE_CTX_get_by_subject.3 | 108 + static/freebsd/man3/X509_STORE_CTX_get_error.3 | 458 + static/freebsd/man3/X509_STORE_CTX_new.3 | 385 + static/freebsd/man3/X509_STORE_CTX_set_verify_cb.3 | 302 + static/freebsd/man3/X509_STORE_add_cert.3 | 228 + static/freebsd/man3/X509_STORE_get0_param.3 | 134 + static/freebsd/man3/X509_STORE_new.3 | 116 + .../freebsd/man3/X509_STORE_set_verify_cb_func.3 | 341 + static/freebsd/man3/X509_VERIFY_PARAM_set_flags.3 | 479 + static/freebsd/man3/X509_add_cert.3 | 132 + static/freebsd/man3/X509_check_ca.3 | 105 + static/freebsd/man3/X509_check_host.3 | 217 + static/freebsd/man3/X509_check_issued.3 | 102 + static/freebsd/man3/X509_check_private_key.3 | 110 + static/freebsd/man3/X509_check_purpose.3 | 234 + static/freebsd/man3/X509_cmp.3 | 142 + static/freebsd/man3/X509_cmp_time.3 | 144 + static/freebsd/man3/X509_digest.3 | 147 + static/freebsd/man3/X509_dup.3 | 671 ++ static/freebsd/man3/X509_get0_distinguishing_id.3 | 125 + static/freebsd/man3/X509_get0_notBefore.3 | 187 + static/freebsd/man3/X509_get0_signature.3 | 215 + static/freebsd/man3/X509_get0_uids.3 | 129 + static/freebsd/man3/X509_get_default_cert_file.3 | 142 + static/freebsd/man3/X509_get_extension_flags.3 | 247 + static/freebsd/man3/X509_get_pubkey.3 | 143 + static/freebsd/man3/X509_get_serialNumber.3 | 144 + static/freebsd/man3/X509_get_subject_name.3 | 199 + static/freebsd/man3/X509_get_version.3 | 151 + static/freebsd/man3/X509_load_http.3 | 129 + static/freebsd/man3/X509_new.3 | 163 + static/freebsd/man3/X509_sign.3 | 145 + static/freebsd/man3/X509_verify.3 | 145 + static/freebsd/man3/X509_verify_cert.3 | 168 + static/freebsd/man3/X509v3_get_ext_by_NID.3 | 223 + static/freebsd/man3/__builtin_object_size.3 | 110 + .../man3/__gss_c_attr_stream_sizes_oid_desc.3 | 1 + static/freebsd/man3/__iconv_get_list.3 | 93 + static/freebsd/man3/_secure_path.3 | 77 + static/freebsd/man3/a64l.3 | 185 + static/freebsd/man3/abort.3 | 77 + static/freebsd/man3/abs.3 | 103 + static/freebsd/man3/abs2rel.3 | 136 + static/freebsd/man3/acl.3 | 305 + static/freebsd/man3/acl_add_flag_np.3 | 95 + static/freebsd/man3/acl_add_perm.3 | 127 + static/freebsd/man3/acl_calc_mask.3 | 96 + static/freebsd/man3/acl_clear_flags_np.3 | 76 + static/freebsd/man3/acl_clear_perms.3 | 77 + static/freebsd/man3/acl_cmp_np.3 | 84 + static/freebsd/man3/acl_copy_entry.3 | 83 + static/freebsd/man3/acl_create_entry.3 | 96 + static/freebsd/man3/acl_delete.3 | 138 + static/freebsd/man3/acl_delete_entry.3 | 99 + static/freebsd/man3/acl_delete_flag_np.3 | 81 + static/freebsd/man3/acl_delete_perm.3 | 82 + static/freebsd/man3/acl_dup.3 | 108 + static/freebsd/man3/acl_equiv_mode_np.3 | 95 + static/freebsd/man3/acl_extended_file_np.3 | 96 + static/freebsd/man3/acl_free.3 | 87 + static/freebsd/man3/acl_from_mode_np.3 | 95 + static/freebsd/man3/acl_from_text.3 | 128 + static/freebsd/man3/acl_get.3 | 158 + static/freebsd/man3/acl_get_brand_np.3 | 83 + static/freebsd/man3/acl_get_entry.3 | 143 + static/freebsd/man3/acl_get_entry_type_np.3 | 77 + static/freebsd/man3/acl_get_flag_np.3 | 91 + static/freebsd/man3/acl_get_flagset_np.3 | 80 + static/freebsd/man3/acl_get_perm_np.3 | 92 + static/freebsd/man3/acl_get_permset.3 | 82 + static/freebsd/man3/acl_get_qualifier.3 | 138 + static/freebsd/man3/acl_get_tag_type.3 | 83 + static/freebsd/man3/acl_init.3 | 109 + static/freebsd/man3/acl_is_trivial_np.3 | 83 + static/freebsd/man3/acl_set.3 | 155 + static/freebsd/man3/acl_set_entry_type_np.3 | 91 + static/freebsd/man3/acl_set_flagset_np.3 | 82 + static/freebsd/man3/acl_set_permset.3 | 79 + static/freebsd/man3/acl_set_qualifier.3 | 89 + static/freebsd/man3/acl_set_tag_type.3 | 100 + static/freebsd/man3/acl_strip_np.3 | 106 + static/freebsd/man3/acl_to_text.3 | 157 + static/freebsd/man3/acl_valid.3 | 168 + static/freebsd/man3/acos.3 | 84 + static/freebsd/man3/acosh.3 | 82 + static/freebsd/man3/alarm.3 | 96 + static/freebsd/man3/alloca.3 3.html | 84 + static/freebsd/man3/arb.3 3.html | 550 ++ static/freebsd/man3/arc4random.3 | 173 + static/freebsd/man3/archive_entry.3 | 147 + static/freebsd/man3/archive_entry_acl.3 | 458 + static/freebsd/man3/archive_entry_linkify.3 | 224 + static/freebsd/man3/archive_entry_misc.3 | 63 + static/freebsd/man3/archive_entry_paths.3 | 153 + static/freebsd/man3/archive_entry_perms.3 | 210 + static/freebsd/man3/archive_entry_stat.3 | 274 + static/freebsd/man3/archive_entry_time.3 | 127 + static/freebsd/man3/archive_read.3 | 250 + static/freebsd/man3/archive_read_add_passphrase.3 | 72 + static/freebsd/man3/archive_read_data.3 | 128 + static/freebsd/man3/archive_read_disk.3 | 422 + static/freebsd/man3/archive_read_extract.3 | 135 + static/freebsd/man3/archive_read_filter.3 | 162 + static/freebsd/man3/archive_read_format.3 | 190 + static/freebsd/man3/archive_read_free.3 | 91 + static/freebsd/man3/archive_read_header.3 | 89 + static/freebsd/man3/archive_read_new.3 | 57 + static/freebsd/man3/archive_read_open.3 | 231 + static/freebsd/man3/archive_read_set_options.3 | 290 + static/freebsd/man3/archive_util.3 | 222 + static/freebsd/man3/archive_write.3 | 266 + static/freebsd/man3/archive_write_blocksize.3 | 112 + static/freebsd/man3/archive_write_data.3 | 88 + static/freebsd/man3/archive_write_disk.3 | 360 + static/freebsd/man3/archive_write_filter.3 | 132 + static/freebsd/man3/archive_write_finish_entry.3 | 77 + static/freebsd/man3/archive_write_format.3 | 185 + static/freebsd/man3/archive_write_free.3 | 94 + static/freebsd/man3/archive_write_header.3 | 71 + static/freebsd/man3/archive_write_new.3 | 56 + static/freebsd/man3/archive_write_open.3 | 270 + static/freebsd/man3/archive_write_set_options.3 | 761 ++ static/freebsd/man3/archive_write_set_passphrase.3 | 72 + static/freebsd/man3/asin.3 | 86 + static/freebsd/man3/asinh.3 | 78 + static/freebsd/man3/asn1.3 | 492 + static/freebsd/man3/assert.3 3.html | 109 + static/freebsd/man3/at_quick_exit.3 | 60 + static/freebsd/man3/atan.3 | 78 + static/freebsd/man3/atan2.3 | 222 + static/freebsd/man3/atanh.3 | 85 + static/freebsd/man3/atexit.3 | 101 + static/freebsd/man3/atf-c++.3 | 657 ++ static/freebsd/man3/atf-c.3 | 895 ++ static/freebsd/man3/atf-sh.3 | 395 + static/freebsd/man3/atof.3 | 97 + static/freebsd/man3/atoi.3 | 89 + static/freebsd/man3/atol.3 | 132 + static/freebsd/man3/au_class.3 | 118 + static/freebsd/man3/au_control.3 | 272 + static/freebsd/man3/au_domain.3 | 86 + static/freebsd/man3/au_errno.3 | 110 + static/freebsd/man3/au_event.3 | 169 + static/freebsd/man3/au_fcntl_cmd.3 | 95 + static/freebsd/man3/au_free_token.3 | 95 + static/freebsd/man3/au_io.3 | 173 + static/freebsd/man3/au_mask.3 | 154 + static/freebsd/man3/au_notify.3 | 118 + static/freebsd/man3/au_open.3 | 156 + static/freebsd/man3/au_socket_type.3 | 91 + static/freebsd/man3/au_token.3 | 257 + static/freebsd/man3/au_user.3 | 154 + static/freebsd/man3/audit_submit.3 | 151 + static/freebsd/man3/auxv.3 | 111 + static/freebsd/man3/b2i_PVK_bio_ex.3 | 125 + static/freebsd/man3/backtrace.3 | 155 + static/freebsd/man3/basename.3 | 86 + static/freebsd/man3/bcl.3 | 1841 ++++ static/freebsd/man3/bcmp.3 | 83 + static/freebsd/man3/bcopy.3 | 95 + static/freebsd/man3/bindresvport.3 | 101 + static/freebsd/man3/bitstring.3 3.html | 380 + static/freebsd/man3/bluetooth.3 | 779 ++ static/freebsd/man3/bread.3 | 97 + static/freebsd/man3/bsddialog.3 | 1206 +++ static/freebsd/man3/bsde_get_rule.3 | 157 + static/freebsd/man3/bsde_get_rule_count.3 | 91 + static/freebsd/man3/bsde_parse_rule.3 | 103 + static/freebsd/man3/bsde_rule_to_string.3 | 80 + static/freebsd/man3/bsearch.3 | 156 + static/freebsd/man3/bsnmpagent.3 | 444 + static/freebsd/man3/bsnmpclient.3 | 762 ++ static/freebsd/man3/bsnmplib.3 | 514 ++ static/freebsd/man3/bstring.3 | 110 + static/freebsd/man3/btowc.3 | 86 + static/freebsd/man3/btree.3 | 268 + static/freebsd/man3/byteorder.3 | 83 + static/freebsd/man3/bzero.3 | 95 + static/freebsd/man3/cacos.3 | 152 + static/freebsd/man3/calendar.3 | 201 + static/freebsd/man3/cam.3 | 438 + static/freebsd/man3/cam_cdbparse.3 | 551 ++ static/freebsd/man3/cap_dns.3 | 241 + static/freebsd/man3/cap_fileargs.3 | 300 + static/freebsd/man3/cap_grp.3 | 236 + static/freebsd/man3/cap_net.3 | 292 + static/freebsd/man3/cap_netdb.3 | 91 + static/freebsd/man3/cap_pwd.3 | 242 + static/freebsd/man3/cap_rights_get.3 | 120 + static/freebsd/man3/cap_rights_init.3 | 267 + static/freebsd/man3/cap_sandboxed.3 | 73 + static/freebsd/man3/cap_sysctl.3 | 227 + static/freebsd/man3/cap_syslog.3 | 115 + static/freebsd/man3/capsicum_helpers.3 | 181 + static/freebsd/man3/catclose.3 | 62 + static/freebsd/man3/catgets.3 | 80 + static/freebsd/man3/catopen.3 | 156 + static/freebsd/man3/ccos.3 | 79 + static/freebsd/man3/ccosh.3 | 79 + static/freebsd/man3/ceil.3 | 75 + static/freebsd/man3/cexp.3 | 116 + static/freebsd/man3/cgread.3 | 181 + static/freebsd/man3/challenge.3 | 1 + static/freebsd/man3/check_utility_compat.3 | 87 + static/freebsd/man3/cimag.3 | 119 + static/freebsd/man3/clock.3 | 73 + static/freebsd/man3/clock_getcpuclockid.3 | 95 + static/freebsd/man3/clog.3 | 99 + static/freebsd/man3/com_err.3 | 245 + static/freebsd/man3/complex.3 | 127 + static/freebsd/man3/confstr.3 | 126 + static/freebsd/man3/context.3 | 1 + static/freebsd/man3/copysign.3 | 83 + static/freebsd/man3/cos.3 | 85 + static/freebsd/man3/cosh.3 | 75 + static/freebsd/man3/cospi.3 | 100 + static/freebsd/man3/cpow.3 | 62 + static/freebsd/man3/cpuset.3 | 111 + static/freebsd/man3/crypt.3 | 325 + static/freebsd/man3/csh.3 | 646 ++ static/freebsd/man3/csqrt.3 | 100 + static/freebsd/man3/ctermid.3 | 105 + static/freebsd/man3/ctime.3 | 429 + static/freebsd/man3/ctype.3 | 163 + static/freebsd/man3/ctype_l.3 | 143 + static/freebsd/man3/cuse.3 | 391 + static/freebsd/man3/cuserid.3 | 85 + static/freebsd/man3/d2i_PKCS8PrivateKey_bio.3 | 130 + static/freebsd/man3/d2i_PrivateKey.3 | 190 + static/freebsd/man3/d2i_RSAPrivateKey.3 | 351 + static/freebsd/man3/d2i_SSL_SESSION.3 | 114 + static/freebsd/man3/d2i_X509.3 | 814 ++ static/freebsd/man3/daemon.3 | 139 + static/freebsd/man3/data.3 | 1 + static/freebsd/man3/db_btree.3 | 246 + static/freebsd/man3/db_hash.3 | 138 + static/freebsd/man3/db_lock.3 | 462 + static/freebsd/man3/db_log.3 | 290 + static/freebsd/man3/db_mpool.3 | 403 + static/freebsd/man3/db_open.3 | 574 ++ static/freebsd/man3/db_recno.3 | 268 + static/freebsd/man3/db_txn.3 | 373 + static/freebsd/man3/dbm.3 | 232 + static/freebsd/man3/dbopen.3 | 540 ++ static/freebsd/man3/des_crypt.3 | 128 + static/freebsd/man3/devctl.3 | 451 + static/freebsd/man3/devinfo.3 | 245 + static/freebsd/man3/devname.3 | 112 + static/freebsd/man3/devstat.3 | 824 ++ static/freebsd/man3/dialog.3 | 3823 ++++++++ static/freebsd/man3/digittoint.3 | 75 + static/freebsd/man3/directory.3 | 414 + static/freebsd/man3/dirname.3 | 83 + static/freebsd/man3/div.3 | 107 + static/freebsd/man3/dl_iterate_phdr.3 | 117 + static/freebsd/man3/dladdr.3 | 131 + static/freebsd/man3/dlinfo.3 | 288 + static/freebsd/man3/dllockinit.3 | 125 + static/freebsd/man3/dlopen.3 | 451 + static/freebsd/man3/domain.3 | 1 + static/freebsd/man3/dpv.3 | 529 ++ static/freebsd/man3/dup3.3 | 127 + static/freebsd/man3/duplocale.3 | 76 + static/freebsd/man3/dwarf.3 | 751 ++ static/freebsd/man3/dwarf_add_AT_comp_dir.3 | 99 + .../freebsd/man3/dwarf_add_AT_const_value_string.3 | 126 + static/freebsd/man3/dwarf_add_AT_dataref.3 | 122 + static/freebsd/man3/dwarf_add_AT_flag.3 | 115 + static/freebsd/man3/dwarf_add_AT_location_expr.3 | 120 + static/freebsd/man3/dwarf_add_AT_name.3 | 99 + static/freebsd/man3/dwarf_add_AT_producer.3 | 99 + static/freebsd/man3/dwarf_add_AT_ref_address.3 | 117 + static/freebsd/man3/dwarf_add_AT_reference.3 | 117 + static/freebsd/man3/dwarf_add_AT_signed_const.3 | 131 + static/freebsd/man3/dwarf_add_AT_string.3 | 114 + static/freebsd/man3/dwarf_add_AT_targ_address.3 | 137 + static/freebsd/man3/dwarf_add_arange.3 | 151 + static/freebsd/man3/dwarf_add_die_to_debug.3 | 95 + static/freebsd/man3/dwarf_add_directory_decl.3 | 97 + static/freebsd/man3/dwarf_add_expr_addr.3 | 111 + static/freebsd/man3/dwarf_add_expr_gen.3 | 118 + static/freebsd/man3/dwarf_add_fde_inst.3 | 113 + static/freebsd/man3/dwarf_add_file_decl.3 | 122 + static/freebsd/man3/dwarf_add_frame_cie.3 | 124 + static/freebsd/man3/dwarf_add_frame_fde.3 | 201 + static/freebsd/man3/dwarf_add_funcname.3 | 103 + static/freebsd/man3/dwarf_add_line_entry.3 | 164 + static/freebsd/man3/dwarf_add_pubname.3 | 103 + static/freebsd/man3/dwarf_add_typename.3 | 103 + static/freebsd/man3/dwarf_add_varname.3 | 103 + static/freebsd/man3/dwarf_add_weakname.3 | 103 + static/freebsd/man3/dwarf_attr.3 | 121 + static/freebsd/man3/dwarf_attrlist.3 | 147 + static/freebsd/man3/dwarf_attroffset.3 | 86 + static/freebsd/man3/dwarf_attrval_signed.3 | 225 + static/freebsd/man3/dwarf_child.3 | 278 + static/freebsd/man3/dwarf_dealloc.3 | 203 + static/freebsd/man3/dwarf_def_macro.3 | 129 + static/freebsd/man3/dwarf_die_abbrev_code.3 | 55 + static/freebsd/man3/dwarf_die_link.3 | 118 + static/freebsd/man3/dwarf_diename.3 | 91 + static/freebsd/man3/dwarf_dieoffset.3 | 206 + static/freebsd/man3/dwarf_end_macro_file.3 | 89 + static/freebsd/man3/dwarf_errmsg.3 | 67 + static/freebsd/man3/dwarf_errno.3 | 58 + .../freebsd/man3/dwarf_expand_frame_instructions.3 | 182 + static/freebsd/man3/dwarf_expr_current_offset.3 | 84 + static/freebsd/man3/dwarf_expr_into_block.3 | 94 + static/freebsd/man3/dwarf_fde_cfa_offset.3 | 99 + static/freebsd/man3/dwarf_find_macro_value_start.3 | 68 + static/freebsd/man3/dwarf_finish.3 | 140 + static/freebsd/man3/dwarf_formaddr.3 | 97 + static/freebsd/man3/dwarf_formblock.3 | 109 + static/freebsd/man3/dwarf_formexprloc.3 | 109 + static/freebsd/man3/dwarf_formflag.3 | 97 + static/freebsd/man3/dwarf_formref.3 | 136 + static/freebsd/man3/dwarf_formsig8.3 | 96 + static/freebsd/man3/dwarf_formstring.3 | 101 + static/freebsd/man3/dwarf_formudata.3 | 122 + static/freebsd/man3/dwarf_get_AT_name.3 | 269 + static/freebsd/man3/dwarf_get_abbrev.3 | 179 + .../freebsd/man3/dwarf_get_abbrev_children_flag.3 | 99 + static/freebsd/man3/dwarf_get_abbrev_code.3 | 86 + static/freebsd/man3/dwarf_get_abbrev_entry.3 | 159 + static/freebsd/man3/dwarf_get_abbrev_tag.3 | 86 + static/freebsd/man3/dwarf_get_address_size.3 | 82 + static/freebsd/man3/dwarf_get_arange.3 | 121 + static/freebsd/man3/dwarf_get_arange_info.3 | 135 + static/freebsd/man3/dwarf_get_aranges.3 | 148 + static/freebsd/man3/dwarf_get_cie_index.3 | 86 + static/freebsd/man3/dwarf_get_cie_info.3 | 150 + static/freebsd/man3/dwarf_get_cie_of_fde.3 | 88 + static/freebsd/man3/dwarf_get_cu_die_offset.3 | 103 + static/freebsd/man3/dwarf_get_die_infotypes_flag.3 | 73 + static/freebsd/man3/dwarf_get_elf.3 | 103 + static/freebsd/man3/dwarf_get_fde_at_pc.3 | 125 + .../freebsd/man3/dwarf_get_fde_info_for_all_regs.3 | 156 + .../man3/dwarf_get_fde_info_for_all_regs3.3 | 183 + .../freebsd/man3/dwarf_get_fde_info_for_cfa_reg3.3 | 171 + static/freebsd/man3/dwarf_get_fde_info_for_reg.3 | 156 + static/freebsd/man3/dwarf_get_fde_info_for_reg3.3 | 214 + static/freebsd/man3/dwarf_get_fde_instr_bytes.3 | 113 + static/freebsd/man3/dwarf_get_fde_list.3 | 218 + static/freebsd/man3/dwarf_get_fde_n.3 | 111 + static/freebsd/man3/dwarf_get_fde_range.3 | 149 + static/freebsd/man3/dwarf_get_form_class.3 | 87 + static/freebsd/man3/dwarf_get_funcs.3 | 215 + static/freebsd/man3/dwarf_get_globals.3 | 211 + static/freebsd/man3/dwarf_get_loclist_entry.3 | 156 + static/freebsd/man3/dwarf_get_macro_details.3 | 192 + static/freebsd/man3/dwarf_get_pubtypes.3 | 243 + static/freebsd/man3/dwarf_get_ranges.3 | 258 + static/freebsd/man3/dwarf_get_relocation_info.3 | 228 + .../freebsd/man3/dwarf_get_relocation_info_count.3 | 116 + static/freebsd/man3/dwarf_get_section_bytes.3 | 157 + .../freebsd/man3/dwarf_get_section_max_offsets.3 | 116 + static/freebsd/man3/dwarf_get_str.3 | 149 + static/freebsd/man3/dwarf_get_types.3 | 232 + static/freebsd/man3/dwarf_get_vars.3 | 210 + static/freebsd/man3/dwarf_get_weaks.3 | 215 + static/freebsd/man3/dwarf_hasattr.3 | 92 + static/freebsd/man3/dwarf_hasform.3 | 127 + static/freebsd/man3/dwarf_highpc.3 | 194 + static/freebsd/man3/dwarf_init.3 | 178 + static/freebsd/man3/dwarf_lineno.3 | 202 + static/freebsd/man3/dwarf_lne_end_sequence.3 | 100 + static/freebsd/man3/dwarf_lne_set_address.3 | 105 + static/freebsd/man3/dwarf_loclist.3 | 230 + static/freebsd/man3/dwarf_loclist_from_expr.3 | 201 + static/freebsd/man3/dwarf_new_die.3 | 164 + static/freebsd/man3/dwarf_new_expr.3 | 135 + static/freebsd/man3/dwarf_new_fde.3 | 87 + static/freebsd/man3/dwarf_next_cu_header.3 | 287 + static/freebsd/man3/dwarf_next_types_section.3 | 134 + static/freebsd/man3/dwarf_object_init.3 | 226 + static/freebsd/man3/dwarf_producer_init.3 | 296 + static/freebsd/man3/dwarf_producer_set_isa.3 | 98 + static/freebsd/man3/dwarf_reset_section_bytes.3 | 69 + static/freebsd/man3/dwarf_set_frame_cfa_value.3 | 140 + static/freebsd/man3/dwarf_set_reloc_application.3 | 82 + static/freebsd/man3/dwarf_seterrarg.3 | 101 + static/freebsd/man3/dwarf_srcfiles.3 | 105 + static/freebsd/man3/dwarf_srclines.3 | 163 + static/freebsd/man3/dwarf_start_macro_file.3 | 105 + static/freebsd/man3/dwarf_tag.3 | 77 + static/freebsd/man3/dwarf_transform_to_disk_form.3 | 99 + static/freebsd/man3/dwarf_undef_macro.3 | 119 + static/freebsd/man3/dwarf_vendor_ext.3 | 110 + static/freebsd/man3/dwarf_whatattr.3 | 79 + static/freebsd/man3/ecalloc.3 | 84 + static/freebsd/man3/eddsa_pk_new.3 | 146 + static/freebsd/man3/editline.3 | 1054 +++ static/freebsd/man3/efivar.3 | 121 + static/freebsd/man3/elf.3 | 626 ++ static/freebsd/man3/elf_begin.3 | 315 + static/freebsd/man3/elf_cntl.3 | 111 + static/freebsd/man3/elf_end.3 | 76 + static/freebsd/man3/elf_errmsg.3 | 107 + static/freebsd/man3/elf_fill.3 | 52 + static/freebsd/man3/elf_flagdata.3 | 227 + static/freebsd/man3/elf_getarhdr.3 | 97 + static/freebsd/man3/elf_getarsym.3 | 130 + static/freebsd/man3/elf_getbase.3 | 71 + static/freebsd/man3/elf_getdata.3 | 234 + static/freebsd/man3/elf_getident.3 | 83 + static/freebsd/man3/elf_getphdrnum.3 | 85 + static/freebsd/man3/elf_getphnum.3 | 92 + static/freebsd/man3/elf_getscn.3 | 155 + static/freebsd/man3/elf_getshdrnum.3 | 77 + static/freebsd/man3/elf_getshdrstrndx.3 | 78 + static/freebsd/man3/elf_getshnum.3 | 83 + static/freebsd/man3/elf_getshstrndx.3 | 94 + static/freebsd/man3/elf_hash.3 | 57 + static/freebsd/man3/elf_kind.3 | 71 + static/freebsd/man3/elf_memory.3 | 122 + static/freebsd/man3/elf_next.3 | 99 + static/freebsd/man3/elf_open.3 | 126 + static/freebsd/man3/elf_rand.3 | 118 + static/freebsd/man3/elf_rawfile.3 | 76 + static/freebsd/man3/elf_strptr.3 | 116 + static/freebsd/man3/elf_update.3 | 382 + static/freebsd/man3/elf_version.3 | 95 + static/freebsd/man3/elftc.3 | 85 + static/freebsd/man3/elftc_bfd_find_target.3 | 205 + static/freebsd/man3/elftc_copyfile.3 | 73 + static/freebsd/man3/elftc_demangle.3 | 116 + static/freebsd/man3/elftc_reloc_type_str.3 | 72 + static/freebsd/man3/elftc_set_timestamps.3 | 84 + static/freebsd/man3/elftc_string_table_create.3 | 226 + static/freebsd/man3/elftc_timestamp.3 | 79 + static/freebsd/man3/elftc_version.3 | 81 + static/freebsd/man3/end.3 4.html | 61 + static/freebsd/man3/erf.3 | 106 + static/freebsd/man3/err.3 | 264 + static/freebsd/man3/es256_pk_new.3 | 164 + static/freebsd/man3/es384_pk_new.3 | 164 + static/freebsd/man3/ethers.3 | 231 + static/freebsd/man3/eui64.3 | 221 + static/freebsd/man3/example.3 | 313 + static/freebsd/man3/exec.3 | 399 + static/freebsd/man3/exit.3 | 174 + static/freebsd/man3/exp.3 | 194 + static/freebsd/man3/expand_number.3 | 153 + static/freebsd/man3/expected.status.3 | 1 + static/freebsd/man3/expected.stderr.3 | 0 static/freebsd/man3/expected.stdout.3 | 2 + static/freebsd/man3/extattr.3 | 98 + static/freebsd/man3/fabs.3 | 78 + static/freebsd/man3/fclose.3 | 155 + static/freebsd/man3/fdim.3 | 84 + static/freebsd/man3/feature_present.3 | 70 + static/freebsd/man3/feclearexcept.3 | 137 + static/freebsd/man3/feenableexcept.3 | 96 + static/freebsd/man3/fegetenv.3 | 111 + static/freebsd/man3/fegetround.3 | 81 + static/freebsd/man3/fenv.3 | 291 + static/freebsd/man3/ferror.3 | 153 + static/freebsd/man3/fetch.3 | 865 ++ static/freebsd/man3/fflush.3 | 133 + static/freebsd/man3/ffs.3 | 121 + static/freebsd/man3/fgetln.3 | 155 + static/freebsd/man3/fgets.3 | 154 + static/freebsd/man3/fgetwln.3 | 113 + static/freebsd/man3/fgetws.3 | 118 + static/freebsd/man3/fido_assert_allow_cred.3 | 80 + static/freebsd/man3/fido_assert_new.3 | 293 + static/freebsd/man3/fido_assert_set_authdata.3 | 314 + static/freebsd/man3/fido_assert_verify.3 | 104 + static/freebsd/man3/fido_bio_dev_get_info.3 | 145 + static/freebsd/man3/fido_bio_enroll_new.3 | 118 + static/freebsd/man3/fido_bio_info_new.3 | 104 + static/freebsd/man3/fido_bio_template.3 | 202 + static/freebsd/man3/fido_cbor_info_new.3 | 389 + static/freebsd/man3/fido_cred_exclude.3 | 93 + static/freebsd/man3/fido_cred_new.3 | 366 + static/freebsd/man3/fido_cred_set_authdata.3 | 424 + static/freebsd/man3/fido_cred_verify.3 | 114 + static/freebsd/man3/fido_credman_metadata_new.3 | 349 + static/freebsd/man3/fido_dev_enable_entattest.3 | 149 + static/freebsd/man3/fido_dev_get_assert.3 | 99 + static/freebsd/man3/fido_dev_get_touch_begin.3 | 96 + static/freebsd/man3/fido_dev_info_manifest.3 | 211 + static/freebsd/man3/fido_dev_largeblob_get.3 | 216 + static/freebsd/man3/fido_dev_make_cred.3 | 100 + static/freebsd/man3/fido_dev_open.3 | 316 + static/freebsd/man3/fido_dev_set_io_functions.3 | 261 + static/freebsd/man3/fido_dev_set_pin.3 | 128 + static/freebsd/man3/fido_init.3 | 95 + static/freebsd/man3/fido_strerr.3 | 50 + static/freebsd/man3/figpar.3 | 263 + static/freebsd/man3/flags.3 | 1 + static/freebsd/man3/flockfile.3 | 102 + static/freebsd/man3/floor.3 | 80 + static/freebsd/man3/flopen.3 | 125 + static/freebsd/man3/fma.3 | 114 + static/freebsd/man3/fmax.3 | 105 + static/freebsd/man3/fmaximum.3 | 103 + static/freebsd/man3/fmaximum_mag.3 | 102 + static/freebsd/man3/fmaximum_num.3 | 113 + static/freebsd/man3/fmod.3 | 89 + static/freebsd/man3/fmtcheck.3 | 106 + static/freebsd/man3/fmtmsg.3 | 258 + static/freebsd/man3/fnmatch.3 | 148 + static/freebsd/man3/fopen.3 | 363 + static/freebsd/man3/fopencookie.3 | 154 + static/freebsd/man3/fparseln.3 | 150 + static/freebsd/man3/fpclassify.3 | 131 + static/freebsd/man3/fpgetround.3 4.html | 161 + static/freebsd/man3/fputs.3 | 114 + static/freebsd/man3/fputws.3 | 85 + static/freebsd/man3/fread.3 | 130 + static/freebsd/man3/freebsd-11.3 | 19 + static/freebsd/man3/freebsd__FILE_up.3 | 41 + static/freebsd/man3/freebsd__addrinfo_up.3 | 45 + static/freebsd/man3/freebsd__fd_up.3 | 78 + static/freebsd/man3/freebsd__malloc_up.3 | 50 + static/freebsd/man3/freebsd__nvlist_up.3 | 37 + static/freebsd/man3/freebsd__pidfile.3 | 110 + static/freebsd/man3/freebsd__stringf.3 | 48 + static/freebsd/man3/freelocale.3 | 56 + static/freebsd/man3/frexp.3 | 91 + static/freebsd/man3/fseek.3 | 274 + static/freebsd/man3/ftime.3 | 78 + static/freebsd/man3/ftok.3 | 80 + static/freebsd/man3/fts.3 | 1007 +++ static/freebsd/man3/ftw.3 | 276 + static/freebsd/man3/funopen.3 | 174 + static/freebsd/man3/fwide.3 | 96 + static/freebsd/man3/gai_strerror.3 | 98 + static/freebsd/man3/gelf.3 | 207 + static/freebsd/man3/gelf_checksum.3 | 115 + static/freebsd/man3/gelf_fsize.3 | 96 + static/freebsd/man3/gelf_getcap.3 | 127 + static/freebsd/man3/gelf_getchdr.3 | 117 + static/freebsd/man3/gelf_getclass.3 | 61 + static/freebsd/man3/gelf_getdyn.3 | 130 + static/freebsd/man3/gelf_getehdr.3 | 123 + static/freebsd/man3/gelf_getmove.3 | 126 + static/freebsd/man3/gelf_getphdr.3 | 141 + static/freebsd/man3/gelf_getrel.3 | 127 + static/freebsd/man3/gelf_getrela.3 | 127 + static/freebsd/man3/gelf_getshdr.3 | 115 + static/freebsd/man3/gelf_getsym.3 | 131 + static/freebsd/man3/gelf_getsyminfo.3 | 121 + static/freebsd/man3/gelf_getsymshndx.3 | 170 + static/freebsd/man3/gelf_newehdr.3 | 197 + static/freebsd/man3/gelf_newphdr.3 | 144 + static/freebsd/man3/gelf_update_ehdr.3 | 123 + static/freebsd/man3/gelf_xlatetof.3 | 280 + static/freebsd/man3/getaddrinfo.3 | 518 ++ static/freebsd/man3/getarg.3 | 341 + static/freebsd/man3/getbootfile.3 | 66 + static/freebsd/man3/getbsize.3 | 91 + static/freebsd/man3/getc.3 | 182 + static/freebsd/man3/getcap.3 | 566 ++ static/freebsd/man3/getcontext.3 | 180 + static/freebsd/man3/getcwd.3 | 159 + static/freebsd/man3/getdiskbyname.3 | 60 + static/freebsd/man3/getdomainname.3 | 97 + static/freebsd/man3/getentropy.3 | 82 + static/freebsd/man3/getenv.3 | 302 + static/freebsd/man3/getfsent.3 | 182 + static/freebsd/man3/getgrent.3 | 283 + static/freebsd/man3/getgrouplist.3 | 95 + static/freebsd/man3/gethostbyname.3 | 403 + static/freebsd/man3/gethostid.3 | 77 + static/freebsd/man3/gethostname.3 | 128 + static/freebsd/man3/getifaddrs.3 | 161 + static/freebsd/man3/getifmaddrs.3 | 112 + static/freebsd/man3/getinode.3 | 129 + static/freebsd/man3/getipnodebyname.3 | 470 + static/freebsd/man3/getline.3 | 135 + static/freebsd/man3/getloadavg.3 | 62 + static/freebsd/man3/getlocalbase.3 | 121 + static/freebsd/man3/getmntinfo.3 | 106 + static/freebsd/man3/getnameinfo.3 | 309 + static/freebsd/man3/getnetconfig.3 | 220 + static/freebsd/man3/getnetent.3 | 191 + static/freebsd/man3/getnetgrent.3 | 130 + static/freebsd/man3/getnetpath.3 | 168 + static/freebsd/man3/getopt.3 | 333 + static/freebsd/man3/getopt_long.3 | 561 ++ static/freebsd/man3/getosreldate.3 | 83 + static/freebsd/man3/getpagesize.3 | 67 + static/freebsd/man3/getpagesizes.3 | 97 + static/freebsd/man3/getpass.3 | 90 + static/freebsd/man3/getpeereid.3 | 134 + static/freebsd/man3/getprogname.3 | 118 + static/freebsd/man3/getprotoent.3 | 141 + static/freebsd/man3/getpwent.3 | 311 + static/freebsd/man3/getrpcent.3 | 107 + static/freebsd/man3/getrpcport.3 | 34 + static/freebsd/man3/getservent.3 | 153 + static/freebsd/man3/getsubopt.3 | 144 + static/freebsd/man3/getttyent.3 | 211 + static/freebsd/man3/getusershell.3 | 96 + static/freebsd/man3/getutxent.3 | 476 + static/freebsd/man3/getvfsbyname.3 | 116 + static/freebsd/man3/getwc.3 | 118 + static/freebsd/man3/glob.3 | 502 ++ static/freebsd/man3/gpio.3 | 262 + static/freebsd/man3/gss_accept_sec_context.3 | 483 + static/freebsd/man3/gss_acquire_cred.3 | 235 + static/freebsd/man3/gss_add_cred.3 | 335 + static/freebsd/man3/gss_add_oid_set_member.3 | 127 + static/freebsd/man3/gss_canonicalize_name.3 | 134 + static/freebsd/man3/gss_compare_name.3 | 119 + static/freebsd/man3/gss_context_time.3 | 105 + static/freebsd/man3/gss_create_empty_oid_set.3 | 108 + static/freebsd/man3/gss_delete_sec_context.3 | 160 + static/freebsd/man3/gss_display_name.3 | 148 + static/freebsd/man3/gss_display_status.3 | 207 + static/freebsd/man3/gss_duplicate_name.3 | 120 + static/freebsd/man3/gss_export_name.3 | 125 + static/freebsd/man3/gss_export_sec_context.3 | 165 + static/freebsd/man3/gss_get_mic.3 | 162 + static/freebsd/man3/gss_import_name.3 | 136 + static/freebsd/man3/gss_import_sec_context.3 | 117 + static/freebsd/man3/gss_indicate_mechs.3 | 104 + static/freebsd/man3/gss_init_sec_context.3 | 568 ++ static/freebsd/man3/gss_inquire_attrs_for_mech.3 | 1 + static/freebsd/man3/gss_inquire_context.3 | 281 + static/freebsd/man3/gss_inquire_cred.3 | 155 + static/freebsd/man3/gss_inquire_cred_by_mech.3 | 169 + static/freebsd/man3/gss_inquire_mechs_for_name.3 | 130 + static/freebsd/man3/gss_inquire_names_for_mech.3 | 104 + .../freebsd/man3/gss_inquire_saslname_for_mech.3 | 1 + static/freebsd/man3/gss_oid_equal.3 | 1 + static/freebsd/man3/gss_process_context_token.3 | 133 + static/freebsd/man3/gss_release_buffer.3 | 108 + static/freebsd/man3/gss_release_cred.3 | 105 + static/freebsd/man3/gss_release_iov_buffer.3 | 1 + static/freebsd/man3/gss_release_name.3 | 101 + static/freebsd/man3/gss_release_oid_set.3 | 106 + static/freebsd/man3/gss_test_oid_set_member.3 | 113 + static/freebsd/man3/gss_unwrap.3 | 189 + static/freebsd/man3/gss_unwrap_iov.3 | 1 + static/freebsd/man3/gss_verify_mic.3 | 169 + static/freebsd/man3/gss_wrap.3 | 176 + static/freebsd/man3/gss_wrap_iov.3 | 1 + static/freebsd/man3/gss_wrap_iov_length.3 | 1 + static/freebsd/man3/gss_wrap_size_limit.3 | 161 + static/freebsd/man3/gssapi.3 | 258 + static/freebsd/man3/gssapi_mechs_intro.3 | 15 + static/freebsd/man3/gssapi_services_intro.3 | 65 + static/freebsd/man3/hash.3 | 193 + static/freebsd/man3/hcreate.3 | 323 + static/freebsd/man3/hcrypto_core.3 | 76 + static/freebsd/man3/hcrypto_des.3 | 392 + static/freebsd/man3/hcrypto_dh.3 | 310 + static/freebsd/man3/hcrypto_evp.3 | 1299 +++ static/freebsd/man3/hcrypto_misc.3 | 44 + static/freebsd/man3/hcrypto_rand.3 | 200 + static/freebsd/man3/hcrypto_rsa.3 | 152 + static/freebsd/man3/hdb__del.3 | 1 + static/freebsd/man3/hdb__get.3 | 1 + static/freebsd/man3/hdb__put.3 | 1 + static/freebsd/man3/hdb_auth_status.3 | 1 + .../man3/hdb_check_constrained_delegation.3 | 1 + .../freebsd/man3/hdb_check_pkinit_ms_upn_match.3 | 1 + static/freebsd/man3/hdb_check_s4u2self.3 | 1 + static/freebsd/man3/hdb_close.3 | 1 + static/freebsd/man3/hdb_destroy.3 | 1 + static/freebsd/man3/hdb_entry_ex.3 | 17 + static/freebsd/man3/hdb_fetch_kvno.3 | 1 + static/freebsd/man3/hdb_firstkey.3 | 1 + static/freebsd/man3/hdb_free.3 | 1 + static/freebsd/man3/hdb_get_realms.3 | 1 + static/freebsd/man3/hdb_lock.3 | 1 + static/freebsd/man3/hdb_name.3 | 1 + static/freebsd/man3/hdb_nextkey.3 | 1 + static/freebsd/man3/hdb_open.3 | 1 + static/freebsd/man3/hdb_password.3 | 1 + static/freebsd/man3/hdb_remove.3 | 1 + static/freebsd/man3/hdb_rename.3 | 1 + static/freebsd/man3/hdb_store.3 | 1 + static/freebsd/man3/hdb_unlock.3 | 1 + static/freebsd/man3/heim_ntlm_build_ntlm1_master.3 | 1 + static/freebsd/man3/heim_ntlm_build_ntlm2_master.3 | 1 + static/freebsd/man3/heim_ntlm_calculate_lm2.3 | 1 + static/freebsd/man3/heim_ntlm_calculate_ntlm1.3 | 1 + static/freebsd/man3/heim_ntlm_calculate_ntlm2.3 | 1 + static/freebsd/man3/heim_ntlm_decode_targetinfo.3 | 1 + static/freebsd/man3/heim_ntlm_encode_targetinfo.3 | 1 + static/freebsd/man3/heim_ntlm_encode_type1.3 | 1 + static/freebsd/man3/heim_ntlm_encode_type2.3 | 1 + static/freebsd/man3/heim_ntlm_encode_type3.3 | 1 + static/freebsd/man3/heim_ntlm_free_buf.3 | 1 + static/freebsd/man3/heim_ntlm_free_targetinfo.3 | 1 + static/freebsd/man3/heim_ntlm_free_type1.3 | 1 + static/freebsd/man3/heim_ntlm_free_type2.3 | 1 + static/freebsd/man3/heim_ntlm_free_type3.3 | 1 + static/freebsd/man3/heim_ntlm_keyex_unwrap.3 | 1 + static/freebsd/man3/heim_ntlm_nt_key.3 | 1 + static/freebsd/man3/heim_ntlm_ntlmv2_key.3 | 1 + static/freebsd/man3/heim_ntlm_verify_ntlm2.3 | 1 + static/freebsd/man3/hesiod.3 | 173 + static/freebsd/man3/hexdump.3 | 93 + static/freebsd/man3/hostname.3 | 1 + static/freebsd/man3/hosts_access.3 | 93 + static/freebsd/man3/humanize_number.3 | 203 + static/freebsd/man3/hx509.3 | 45 + static/freebsd/man3/hx509_bitstring_print.3 | 1 + static/freebsd/man3/hx509_ca.3 | 573 ++ static/freebsd/man3/hx509_ca_sign.3 | 1 + static/freebsd/man3/hx509_ca_sign_self.3 | 1 + static/freebsd/man3/hx509_ca_tbs_add_crl_dp_uri.3 | 1 + static/freebsd/man3/hx509_ca_tbs_add_eku.3 | 1 + .../freebsd/man3/hx509_ca_tbs_add_san_hostname.3 | 1 + static/freebsd/man3/hx509_ca_tbs_add_san_jid.3 | 1 + static/freebsd/man3/hx509_ca_tbs_add_san_ms_upn.3 | 1 + .../freebsd/man3/hx509_ca_tbs_add_san_otherName.3 | 1 + static/freebsd/man3/hx509_ca_tbs_add_san_pkinit.3 | 1 + .../freebsd/man3/hx509_ca_tbs_add_san_rfc822name.3 | 1 + static/freebsd/man3/hx509_ca_tbs_free.3 | 1 + static/freebsd/man3/hx509_ca_tbs_init.3 | 1 + static/freebsd/man3/hx509_ca_tbs_set_ca.3 | 1 + .../man3/hx509_ca_tbs_set_domaincontroller.3 | 1 + static/freebsd/man3/hx509_ca_tbs_set_notAfter.3 | 1 + .../man3/hx509_ca_tbs_set_notAfter_lifetime.3 | 1 + static/freebsd/man3/hx509_ca_tbs_set_notBefore.3 | 1 + static/freebsd/man3/hx509_ca_tbs_set_proxy.3 | 1 + .../freebsd/man3/hx509_ca_tbs_set_serialnumber.3 | 1 + static/freebsd/man3/hx509_ca_tbs_set_spki.3 | 1 + static/freebsd/man3/hx509_ca_tbs_set_subject.3 | 1 + static/freebsd/man3/hx509_ca_tbs_set_template.3 | 1 + static/freebsd/man3/hx509_ca_tbs_set_unique.3 | 1 + static/freebsd/man3/hx509_ca_tbs_subject_expand.3 | 1 + static/freebsd/man3/hx509_ca_tbs_template_units.3 | 1 + static/freebsd/man3/hx509_cert.3 | 700 ++ static/freebsd/man3/hx509_cert_binary.3 | 1 + static/freebsd/man3/hx509_cert_check_eku.3 | 1 + static/freebsd/man3/hx509_cert_cmp.3 | 1 + .../hx509_cert_find_subjectAltName_otherName.3 | 1 + static/freebsd/man3/hx509_cert_free.3 | 1 + static/freebsd/man3/hx509_cert_get_SPKI.3 | 1 + .../man3/hx509_cert_get_SPKI_AlgorithmIdentifier.3 | 1 + static/freebsd/man3/hx509_cert_get_attribute.3 | 1 + static/freebsd/man3/hx509_cert_get_base_subject.3 | 1 + static/freebsd/man3/hx509_cert_get_friendly_name.3 | 1 + static/freebsd/man3/hx509_cert_get_issuer.3 | 1 + .../freebsd/man3/hx509_cert_get_issuer_unique_id.3 | 1 + static/freebsd/man3/hx509_cert_get_notAfter.3 | 1 + static/freebsd/man3/hx509_cert_get_notBefore.3 | 1 + static/freebsd/man3/hx509_cert_get_serialnumber.3 | 1 + static/freebsd/man3/hx509_cert_get_subject.3 | 1 + .../man3/hx509_cert_get_subject_unique_id.3 | 1 + static/freebsd/man3/hx509_cert_init.3 | 1 + static/freebsd/man3/hx509_cert_init_data.3 | 1 + static/freebsd/man3/hx509_cert_keyusage_print.3 | 1 + static/freebsd/man3/hx509_cert_ref.3 | 1 + static/freebsd/man3/hx509_cert_set_friendly_name.3 | 1 + static/freebsd/man3/hx509_certs_add.3 | 1 + static/freebsd/man3/hx509_certs_append.3 | 1 + static/freebsd/man3/hx509_certs_end_seq.3 | 1 + static/freebsd/man3/hx509_certs_filter.3 | 1 + static/freebsd/man3/hx509_certs_find.3 | 1 + static/freebsd/man3/hx509_certs_free.3 | 1 + static/freebsd/man3/hx509_certs_info.3 | 1 + static/freebsd/man3/hx509_certs_init.3 | 1 + static/freebsd/man3/hx509_certs_iter_f.3 | 1 + static/freebsd/man3/hx509_certs_merge.3 | 1 + static/freebsd/man3/hx509_certs_next_cert.3 | 1 + static/freebsd/man3/hx509_certs_start_seq.3 | 1 + static/freebsd/man3/hx509_certs_store.3 | 1 + static/freebsd/man3/hx509_ci_print_names.3 | 1 + static/freebsd/man3/hx509_clear_error_string.3 | 1 + static/freebsd/man3/hx509_cms.3 | 206 + static/freebsd/man3/hx509_cms_create_signed_1.3 | 1 + static/freebsd/man3/hx509_cms_envelope_1.3 | 1 + static/freebsd/man3/hx509_cms_unenvelope.3 | 1 + static/freebsd/man3/hx509_cms_unwrap_ContentInfo.3 | 1 + static/freebsd/man3/hx509_cms_verify_signed.3 | 1 + static/freebsd/man3/hx509_cms_wrap_ContentInfo.3 | 1 + static/freebsd/man3/hx509_context_free.3 | 1 + static/freebsd/man3/hx509_context_init.3 | 1 + .../man3/hx509_context_set_missing_revoke.3 | 1 + static/freebsd/man3/hx509_crl_add_revoked_certs.3 | 1 + static/freebsd/man3/hx509_crl_alloc.3 | 1 + static/freebsd/man3/hx509_crl_free.3 | 1 + static/freebsd/man3/hx509_crl_lifetime.3 | 1 + static/freebsd/man3/hx509_crl_sign.3 | 1 + static/freebsd/man3/hx509_crypto.3 | 40 + static/freebsd/man3/hx509_env.3 | 143 + static/freebsd/man3/hx509_env_add.3 | 1 + static/freebsd/man3/hx509_env_add_binding.3 | 1 + static/freebsd/man3/hx509_env_find.3 | 1 + static/freebsd/man3/hx509_env_find_binding.3 | 1 + static/freebsd/man3/hx509_env_free.3 | 1 + static/freebsd/man3/hx509_env_lfind.3 | 1 + static/freebsd/man3/hx509_err.3 | 1 + static/freebsd/man3/hx509_error.3 | 129 + static/freebsd/man3/hx509_free_error_string.3 | 1 + static/freebsd/man3/hx509_free_octet_string_list.3 | 1 + static/freebsd/man3/hx509_general_name_unparse.3 | 1 + static/freebsd/man3/hx509_get_error_string.3 | 1 + static/freebsd/man3/hx509_get_one_cert.3 | 1 + static/freebsd/man3/hx509_keyset.3 | 373 + static/freebsd/man3/hx509_lock.3 | 5 + static/freebsd/man3/hx509_misc.3 | 40 + static/freebsd/man3/hx509_name.3 | 235 + static/freebsd/man3/hx509_name_binary.3 | 1 + static/freebsd/man3/hx509_name_cmp.3 | 1 + static/freebsd/man3/hx509_name_copy.3 | 1 + static/freebsd/man3/hx509_name_expand.3 | 1 + static/freebsd/man3/hx509_name_free.3 | 1 + static/freebsd/man3/hx509_name_is_null_p.3 | 1 + static/freebsd/man3/hx509_name_to_Name.3 | 1 + static/freebsd/man3/hx509_name_to_string.3 | 1 + static/freebsd/man3/hx509_ocsp_request.3 | 1 + static/freebsd/man3/hx509_ocsp_verify.3 | 1 + static/freebsd/man3/hx509_oid_print.3 | 1 + static/freebsd/man3/hx509_oid_sprint.3 | 1 + static/freebsd/man3/hx509_parse_name.3 | 1 + static/freebsd/man3/hx509_peer.3 | 113 + static/freebsd/man3/hx509_peer_info_add_cms_alg.3 | 1 + static/freebsd/man3/hx509_peer_info_alloc.3 | 1 + static/freebsd/man3/hx509_peer_info_free.3 | 1 + static/freebsd/man3/hx509_peer_info_set_cert.3 | 1 + static/freebsd/man3/hx509_peer_info_set_cms_algs.3 | 1 + static/freebsd/man3/hx509_print.3 | 211 + static/freebsd/man3/hx509_print_cert.3 | 1 + static/freebsd/man3/hx509_print_stdout.3 | 1 + static/freebsd/man3/hx509_query.3 | 5 + static/freebsd/man3/hx509_query_alloc.3 | 1 + static/freebsd/man3/hx509_query_free.3 | 1 + static/freebsd/man3/hx509_query_match_cmp_func.3 | 1 + static/freebsd/man3/hx509_query_match_eku.3 | 1 + .../freebsd/man3/hx509_query_match_friendly_name.3 | 1 + .../freebsd/man3/hx509_query_match_issuer_serial.3 | 1 + static/freebsd/man3/hx509_query_match_option.3 | 1 + static/freebsd/man3/hx509_query_statistic_file.3 | 1 + static/freebsd/man3/hx509_query_unparse_stats.3 | 1 + static/freebsd/man3/hx509_revoke.3 | 171 + static/freebsd/man3/hx509_revoke_add_crl.3 | 1 + static/freebsd/man3/hx509_revoke_add_ocsp.3 | 1 + static/freebsd/man3/hx509_revoke_free.3 | 1 + static/freebsd/man3/hx509_revoke_init.3 | 1 + static/freebsd/man3/hx509_revoke_ocsp_print.3 | 1 + static/freebsd/man3/hx509_revoke_verify.3 | 1 + static/freebsd/man3/hx509_set_error_string.3 | 1 + static/freebsd/man3/hx509_set_error_stringv.3 | 1 + static/freebsd/man3/hx509_unparse_der_name.3 | 1 + static/freebsd/man3/hx509_validate_cert.3 | 1 + static/freebsd/man3/hx509_validate_ctx_add_flags.3 | 1 + static/freebsd/man3/hx509_validate_ctx_free.3 | 1 + static/freebsd/man3/hx509_validate_ctx_init.3 | 1 + static/freebsd/man3/hx509_validate_ctx_set_print.3 | 1 + static/freebsd/man3/hx509_verify.3 | 309 + static/freebsd/man3/hx509_verify_attach_anchors.3 | 1 + static/freebsd/man3/hx509_verify_attach_revoke.3 | 1 + ...hx509_verify_ctx_f_allow_default_trustanchors.3 | 1 + static/freebsd/man3/hx509_verify_destroy_ctx.3 | 1 + static/freebsd/man3/hx509_verify_hostname.3 | 1 + static/freebsd/man3/hx509_verify_init_ctx.3 | 1 + static/freebsd/man3/hx509_verify_path.3 | 1 + static/freebsd/man3/hx509_verify_set_max_depth.3 | 1 + .../man3/hx509_verify_set_proxy_certificate.3 | 1 + .../hx509_verify_set_strict_rfc3280_verification.3 | 1 + static/freebsd/man3/hx509_verify_set_time.3 | 1 + static/freebsd/man3/hx509_verify_signature.3 | 1 + static/freebsd/man3/hx509_xfree.3 | 1 + static/freebsd/man3/hypot.3 | 142 + static/freebsd/man3/i2d_CMS_bio_stream.3 | 107 + static/freebsd/man3/i2d_PKCS7_bio_stream.3 | 107 + static/freebsd/man3/i2d_re_X509_tbs.3 | 145 + static/freebsd/man3/i386_set_watch.3 | 116 + static/freebsd/man3/ibnd_debug.3 | 2 + static/freebsd/man3/ibnd_destroy_fabric.3 | 2 + static/freebsd/man3/ibnd_discover_fabric.3 | 65 + static/freebsd/man3/ibnd_find_node_dr.3 | 2 + static/freebsd/man3/ibnd_find_node_guid.3 | 21 + static/freebsd/man3/ibnd_iter_nodes.3 | 20 + static/freebsd/man3/ibnd_iter_nodes_type.3 | 2 + static/freebsd/man3/ibnd_show_progress.3 | 2 + static/freebsd/man3/ibv_alloc_mw.3 | 55 + static/freebsd/man3/ibv_alloc_pd.3 | 41 + static/freebsd/man3/ibv_attach_mcast.3 | 54 + static/freebsd/man3/ibv_bind_mw.3 | 93 + static/freebsd/man3/ibv_create_ah.3 | 65 + static/freebsd/man3/ibv_create_ah_from_wc.3 | 64 + static/freebsd/man3/ibv_create_comp_channel.3 | 51 + static/freebsd/man3/ibv_create_cq.3 | 59 + static/freebsd/man3/ibv_create_cq_ex.3 | 159 + static/freebsd/man3/ibv_create_flow.3 | 216 + static/freebsd/man3/ibv_create_qp.3 | 86 + static/freebsd/man3/ibv_create_qp_ex.3 | 105 + static/freebsd/man3/ibv_create_rwq_ind_table.3 | 59 + static/freebsd/man3/ibv_create_srq.3 | 68 + static/freebsd/man3/ibv_create_srq_ex.3 | 72 + static/freebsd/man3/ibv_create_wq.3 | 72 + static/freebsd/man3/ibv_event_type_str.3 | 41 + static/freebsd/man3/ibv_fork_init.3 | 69 + static/freebsd/man3/ibv_get_async_event.3 | 165 + static/freebsd/man3/ibv_get_cq_event.3 | 186 + static/freebsd/man3/ibv_get_device_guid.3 | 26 + static/freebsd/man3/ibv_get_device_list.3 | 67 + static/freebsd/man3/ibv_get_device_name.3 | 26 + static/freebsd/man3/ibv_get_srq_num.3 | 33 + static/freebsd/man3/ibv_inc_rkey.3 | 33 + static/freebsd/man3/ibv_modify_qp.3 | 182 + static/freebsd/man3/ibv_modify_srq.3 | 64 + static/freebsd/man3/ibv_modify_wq.3 | 46 + static/freebsd/man3/ibv_open_device.3 | 44 + static/freebsd/man3/ibv_open_qp.3 | 52 + static/freebsd/man3/ibv_open_xrcd.3 | 77 + static/freebsd/man3/ibv_poll_cq.3 | 90 + static/freebsd/man3/ibv_post_recv.3 | 77 + static/freebsd/man3/ibv_post_send.3 | 175 + static/freebsd/man3/ibv_post_srq_recv.3 | 69 + static/freebsd/man3/ibv_query_device.3 | 85 + static/freebsd/man3/ibv_query_device_ex.3 | 106 + static/freebsd/man3/ibv_query_gid.3 | 34 + static/freebsd/man3/ibv_query_pkey.3 | 34 + static/freebsd/man3/ibv_query_port.3 | 66 + static/freebsd/man3/ibv_query_qp.3 | 91 + static/freebsd/man3/ibv_query_rt_values_ex.3 | 51 + static/freebsd/man3/ibv_query_srq.3 | 45 + static/freebsd/man3/ibv_rate_to_mbps.3 | 46 + static/freebsd/man3/ibv_rate_to_mult.3 | 47 + static/freebsd/man3/ibv_reg_mr.3 | 79 + static/freebsd/man3/ibv_req_notify_cq.3 | 44 + static/freebsd/man3/ibv_rereg_mr.3 | 77 + static/freebsd/man3/ibv_resize_cq.3 | 43 + static/freebsd/man3/iconv.3 | 308 + static/freebsd/man3/iconv_canonicalize.3 | 72 + static/freebsd/man3/iconvctl.3 | 187 + static/freebsd/man3/iconvlist.3 | 91 + static/freebsd/man3/ieee.3 | 443 + static/freebsd/man3/ieee_test.3 | 86 + static/freebsd/man3/if_indextoname.3 | 150 + static/freebsd/man3/ilogb.3 | 121 + static/freebsd/man3/imsg_init.3 | 547 ++ static/freebsd/man3/index.3 | 112 + static/freebsd/man3/inet.3 | 293 + static/freebsd/man3/inet6_opt_init.3 | 337 + static/freebsd/man3/inet6_option_space.3 | 52 + static/freebsd/man3/inet6_rth_space.3 | 223 + static/freebsd/man3/inet6_rthdr_space.3 | 55 + static/freebsd/man3/inet_net.3 | 153 + static/freebsd/man3/initgroups.3 | 150 + static/freebsd/man3/insque.3 | 59 + static/freebsd/man3/internalvsmechname.3 | 20 + static/freebsd/man3/intro.3 3.html | 262 + static/freebsd/man3/ipsec_set_policy.3 | 330 + static/freebsd/man3/ipsec_strerror.3 | 88 + static/freebsd/man3/ipv6.3 | 30 + static/freebsd/man3/isalnum.3 | 130 + static/freebsd/man3/isalpha.3 | 123 + static/freebsd/man3/isascii.3 | 55 + static/freebsd/man3/isblank.3 | 104 + static/freebsd/man3/iscntrl.3 | 114 + static/freebsd/man3/isdigit.3 | 125 + static/freebsd/man3/isgraph.3 | 124 + static/freebsd/man3/isgreater.3 | 100 + static/freebsd/man3/isideogram.3 | 84 + static/freebsd/man3/islower.3 | 114 + static/freebsd/man3/isphonogram.3 | 72 + static/freebsd/man3/isprint.3 | 123 + static/freebsd/man3/ispunct.3 | 121 + static/freebsd/man3/isrune.3 | 89 + static/freebsd/man3/isspace.3 | 113 + static/freebsd/man3/isspecial.3 | 82 + static/freebsd/man3/isupper.3 | 111 + static/freebsd/man3/iswalnum.3 | 155 + static/freebsd/man3/iswalnum_l.3 | 166 + static/freebsd/man3/isxdigit.3 | 121 + static/freebsd/man3/j0.3 | 161 + static/freebsd/man3/jail.3 | 282 + static/freebsd/man3/jemalloc.3 | 2718 ++++++ static/freebsd/man3/kadm5_pwcheck.3 | 159 + static/freebsd/man3/kafs.3 | 296 + static/freebsd/man3/kiconv.3 | 127 + static/freebsd/man3/kinfo_getallproc.3 | 78 + static/freebsd/man3/kinfo_getfile.3 | 83 + static/freebsd/man3/kinfo_getproc.3 | 77 + static/freebsd/man3/kinfo_getvmmap.3 | 89 + static/freebsd/man3/kinfo_getvmobject.3 | 76 + static/freebsd/man3/kld.3 | 91 + static/freebsd/man3/krb5.3 | 1091 +++ static/freebsd/man3/krb524_convert_creds_kdc.3 | 1 + .../freebsd/man3/krb524_convert_creds_kdc_ccache.3 | 1 + static/freebsd/man3/krb5_425_conv_principal.3 | 224 + static/freebsd/man3/krb5_acc_ops.3 | 1 + static/freebsd/man3/krb5_acl_match_file.3 | 1 + static/freebsd/man3/krb5_acl_match_string.3 | 1 + static/freebsd/man3/krb5_add_et_list.3 | 1 + static/freebsd/man3/krb5_add_extra_addresses.3 | 1 + static/freebsd/man3/krb5_add_ignore_addresses.3 | 1 + static/freebsd/man3/krb5_addr2sockaddr.3 | 1 + static/freebsd/man3/krb5_address.3 | 461 + static/freebsd/man3/krb5_address_compare.3 | 1 + static/freebsd/man3/krb5_address_order.3 | 1 + .../freebsd/man3/krb5_address_prefixlen_boundary.3 | 1 + static/freebsd/man3/krb5_address_search.3 | 1 + static/freebsd/man3/krb5_allow_weak_crypto.3 | 1 + static/freebsd/man3/krb5_aname_to_localname.3 | 80 + static/freebsd/man3/krb5_anyaddr.3 | 1 + static/freebsd/man3/krb5_appdefault.3 | 88 + static/freebsd/man3/krb5_append_addresses.3 | 1 + static/freebsd/man3/krb5_auth.3 | 138 + static/freebsd/man3/krb5_auth_context.3 | 395 + static/freebsd/man3/krb5_auth_getremoteseqnumber.3 | 1 + static/freebsd/man3/krb5_build_principal.3 | 1 + static/freebsd/man3/krb5_c_enctype_compare.3 | 1 + static/freebsd/man3/krb5_c_make_checksum.3 | 297 + static/freebsd/man3/krb5_cc_cache_end_seq_get.3 | 1 + static/freebsd/man3/krb5_cc_cache_get_first.3 | 1 + static/freebsd/man3/krb5_cc_cache_match.3 | 1 + static/freebsd/man3/krb5_cc_cache_next.3 | 1 + static/freebsd/man3/krb5_cc_clear_mcred.3 | 1 + static/freebsd/man3/krb5_cc_close.3 | 1 + static/freebsd/man3/krb5_cc_copy_cache.3 | 1 + static/freebsd/man3/krb5_cc_copy_creds.3 | 1 + static/freebsd/man3/krb5_cc_copy_match_f.3 | 1 + static/freebsd/man3/krb5_cc_default.3 | 1 + static/freebsd/man3/krb5_cc_default_name.3 | 1 + static/freebsd/man3/krb5_cc_destroy.3 | 1 + static/freebsd/man3/krb5_cc_end_seq_get.3 | 1 + static/freebsd/man3/krb5_cc_gen_new.3 | 1 + static/freebsd/man3/krb5_cc_get_config.3 | 1 + static/freebsd/man3/krb5_cc_get_flags.3 | 1 + static/freebsd/man3/krb5_cc_get_friendly_name.3 | 1 + static/freebsd/man3/krb5_cc_get_full_name.3 | 1 + static/freebsd/man3/krb5_cc_get_kdc_offset.3 | 1 + static/freebsd/man3/krb5_cc_get_lifetime.3 | 1 + static/freebsd/man3/krb5_cc_get_name.3 | 1 + static/freebsd/man3/krb5_cc_get_ops.3 | 1 + static/freebsd/man3/krb5_cc_get_prefix_ops.3 | 1 + static/freebsd/man3/krb5_cc_get_principal.3 | 1 + static/freebsd/man3/krb5_cc_get_type.3 | 1 + static/freebsd/man3/krb5_cc_get_version.3 | 1 + static/freebsd/man3/krb5_cc_initialize.3 | 1 + static/freebsd/man3/krb5_cc_last_change_time.3 | 1 + static/freebsd/man3/krb5_cc_move.3 | 1 + static/freebsd/man3/krb5_cc_new_unique.3 | 1 + static/freebsd/man3/krb5_cc_next_cred.3 | 1 + static/freebsd/man3/krb5_cc_register.3 | 1 + static/freebsd/man3/krb5_cc_remove_cred.3 | 1 + static/freebsd/man3/krb5_cc_resolve.3 | 1 + static/freebsd/man3/krb5_cc_retrieve_cred.3 | 1 + static/freebsd/man3/krb5_cc_set_config.3 | 1 + static/freebsd/man3/krb5_cc_set_default_name.3 | 1 + static/freebsd/man3/krb5_cc_set_flags.3 | 1 + static/freebsd/man3/krb5_cc_set_friendly_name.3 | 1 + static/freebsd/man3/krb5_cc_set_kdc_offset.3 | 1 + static/freebsd/man3/krb5_cc_start_seq_get.3 | 1 + static/freebsd/man3/krb5_cc_store_cred.3 | 1 + static/freebsd/man3/krb5_cc_support_switch.3 | 1 + static/freebsd/man3/krb5_cc_switch.3 | 1 + static/freebsd/man3/krb5_ccache.3 | 888 ++ static/freebsd/man3/krb5_ccache_intro.3 | 69 + static/freebsd/man3/krb5_cccol_cursor_free.3 | 1 + static/freebsd/man3/krb5_cccol_cursor_new.3 | 1 + static/freebsd/man3/krb5_cccol_cursor_next.3 | 1 + static/freebsd/man3/krb5_cccol_last_change_time.3 | 1 + static/freebsd/man3/krb5_change_password.3 | 1 + static/freebsd/man3/krb5_check_transited.3 | 106 + static/freebsd/man3/krb5_cksumtype_to_enctype.3 | 1 + static/freebsd/man3/krb5_clear_error_message.3 | 1 + static/freebsd/man3/krb5_clear_error_string.3 | 1 + static/freebsd/man3/krb5_compare_creds.3 | 1 + static/freebsd/man3/krb5_config_file_free.3 | 1 + static/freebsd/man3/krb5_config_free_strings.3 | 1 + static/freebsd/man3/krb5_config_get_bool.3 | 1 + static/freebsd/man3/krb5_config_get_bool_default.3 | 1 + static/freebsd/man3/krb5_config_get_list.3 | 1 + static/freebsd/man3/krb5_config_get_string.3 | 1 + .../freebsd/man3/krb5_config_get_string_default.3 | 1 + static/freebsd/man3/krb5_config_get_strings.3 | 1 + static/freebsd/man3/krb5_config_get_time.3 | 1 + static/freebsd/man3/krb5_config_get_time_default.3 | 1 + static/freebsd/man3/krb5_config_parse_file_multi.3 | 1 + .../freebsd/man3/krb5_config_parse_string_multi.3 | 1 + static/freebsd/man3/krb5_config_vget_bool.3 | 1 + .../freebsd/man3/krb5_config_vget_bool_default.3 | 1 + static/freebsd/man3/krb5_config_vget_list.3 | 1 + static/freebsd/man3/krb5_config_vget_string.3 | 1 + .../freebsd/man3/krb5_config_vget_string_default.3 | 1 + static/freebsd/man3/krb5_config_vget_strings.3 | 1 + static/freebsd/man3/krb5_config_vget_time.3 | 1 + .../freebsd/man3/krb5_config_vget_time_default.3 | 1 + static/freebsd/man3/krb5_copy_address.3 | 1 + static/freebsd/man3/krb5_copy_addresses.3 | 1 + static/freebsd/man3/krb5_copy_context.3 | 1 + static/freebsd/man3/krb5_copy_creds.3 | 1 + static/freebsd/man3/krb5_copy_creds_contents.3 | 1 + static/freebsd/man3/krb5_copy_data.3 | 1 + static/freebsd/man3/krb5_copy_host_realm.3 | 1 + static/freebsd/man3/krb5_copy_keyblock.3 | 1 + static/freebsd/man3/krb5_copy_keyblock_contents.3 | 1 + static/freebsd/man3/krb5_copy_principal.3 | 1 + static/freebsd/man3/krb5_copy_ticket.3 | 1 + static/freebsd/man3/krb5_create_checksum.3 | 226 + static/freebsd/man3/krb5_create_checksum_iov.3 | 1 + static/freebsd/man3/krb5_credential.3 | 279 + static/freebsd/man3/krb5_creds.3 | 119 + static/freebsd/man3/krb5_creds_get_ticket_flags.3 | 1 + static/freebsd/man3/krb5_crypto.3 | 550 ++ static/freebsd/man3/krb5_crypto_destroy.3 | 1 + static/freebsd/man3/krb5_crypto_fx_cf2.3 | 1 + static/freebsd/man3/krb5_crypto_getblocksize.3 | 1 + .../freebsd/man3/krb5_crypto_getconfoundersize.3 | 1 + static/freebsd/man3/krb5_crypto_getenctype.3 | 1 + static/freebsd/man3/krb5_crypto_getpadsize.3 | 1 + static/freebsd/man3/krb5_crypto_init.3 | 1 + static/freebsd/man3/krb5_crypto_iov.3 | 17 + static/freebsd/man3/krb5_data_alloc.3 | 1 + static/freebsd/man3/krb5_data_cmp.3 | 1 + static/freebsd/man3/krb5_data_copy.3 | 1 + static/freebsd/man3/krb5_data_ct_cmp.3 | 1 + static/freebsd/man3/krb5_data_free.3 | 1 + static/freebsd/man3/krb5_data_realloc.3 | 1 + static/freebsd/man3/krb5_data_zero.3 | 1 + static/freebsd/man3/krb5_decrypt_iov_ivec.3 | 1 + static/freebsd/man3/krb5_deprecated.3 | 269 + static/freebsd/man3/krb5_digest.3 | 38 + static/freebsd/man3/krb5_digest_probe.3 | 1 + static/freebsd/man3/krb5_eai_to_heim_errno.3 | 1 + static/freebsd/man3/krb5_encrypt.3 | 278 + static/freebsd/man3/krb5_encrypt_iov_ivec.3 | 1 + static/freebsd/man3/krb5_enctype_disable.3 | 1 + static/freebsd/man3/krb5_enctype_enable.3 | 1 + static/freebsd/man3/krb5_enctype_valid.3 | 1 + .../freebsd/man3/krb5_enctypes_compatible_keys.3 | 1 + static/freebsd/man3/krb5_error.3 | 105 + static/freebsd/man3/krb5_expand_hostname.3 | 1 + static/freebsd/man3/krb5_expand_hostname_realms.3 | 1 + static/freebsd/man3/krb5_fcc_ops.3 | 1 + static/freebsd/man3/krb5_fileformats.3 | 233 + static/freebsd/man3/krb5_find_padata.3 | 87 + static/freebsd/man3/krb5_free_address.3 | 1 + static/freebsd/man3/krb5_free_addresses.3 | 1 + static/freebsd/man3/krb5_free_config_files.3 | 1 + static/freebsd/man3/krb5_free_context.3 | 1 + static/freebsd/man3/krb5_free_cred_contents.3 | 1 + static/freebsd/man3/krb5_free_creds.3 | 1 + static/freebsd/man3/krb5_free_creds_contents.3 | 1 + static/freebsd/man3/krb5_free_data.3 | 1 + static/freebsd/man3/krb5_free_data_contents.3 | 1 + static/freebsd/man3/krb5_free_error_string.3 | 1 + static/freebsd/man3/krb5_free_host_realm.3 | 1 + static/freebsd/man3/krb5_free_keyblock.3 | 1 + static/freebsd/man3/krb5_free_keyblock_contents.3 | 1 + static/freebsd/man3/krb5_free_principal.3 | 1 + static/freebsd/man3/krb5_free_ticket.3 | 1 + static/freebsd/man3/krb5_free_unparsed_name.3 | 1 + static/freebsd/man3/krb5_fwd_tgt_creds.3 | 1 + static/freebsd/man3/krb5_generate_random_block.3 | 57 + static/freebsd/man3/krb5_generate_subkey.3 | 1 + .../freebsd/man3/krb5_generate_subkey_extended.3 | 1 + static/freebsd/man3/krb5_get_all_client_addrs.3 | 74 + static/freebsd/man3/krb5_get_cred_from_kdc.3 | 1 + static/freebsd/man3/krb5_get_cred_from_kdc_opt.3 | 1 + static/freebsd/man3/krb5_get_credentials.3 | 181 + static/freebsd/man3/krb5_get_creds.3 | 173 + .../freebsd/man3/krb5_get_default_config_files.3 | 1 + .../freebsd/man3/krb5_get_default_in_tkt_etypes.3 | 1 + .../man3/krb5_get_dns_canonicalize_hostname.3 | 1 + static/freebsd/man3/krb5_get_extra_addresses.3 | 1 + static/freebsd/man3/krb5_get_fcache_version.3 | 1 + static/freebsd/man3/krb5_get_forwarded_creds.3 | 1 + static/freebsd/man3/krb5_get_ignore_addresses.3 | 1 + static/freebsd/man3/krb5_get_in_cred.3 | 274 + static/freebsd/man3/krb5_get_in_tkt_with_keytab.3 | 1 + .../freebsd/man3/krb5_get_in_tkt_with_password.3 | 1 + static/freebsd/man3/krb5_get_in_tkt_with_skey.3 | 1 + static/freebsd/man3/krb5_get_init_creds.3 | 398 + static/freebsd/man3/krb5_get_init_creds_keyblock.3 | 1 + static/freebsd/man3/krb5_get_init_creds_keytab.3 | 1 + .../freebsd/man3/krb5_get_init_creds_opt_alloc.3 | 1 + static/freebsd/man3/krb5_get_init_creds_opt_free.3 | 1 + .../man3/krb5_get_init_creds_opt_get_error.3 | 1 + static/freebsd/man3/krb5_get_init_creds_opt_init.3 | 1 + static/freebsd/man3/krb5_get_init_creds_password.3 | 1 + static/freebsd/man3/krb5_get_kdc_sec_offset.3 | 1 + static/freebsd/man3/krb5_get_krbhst.3 | 86 + static/freebsd/man3/krb5_get_max_time_skew.3 | 1 + static/freebsd/man3/krb5_get_use_admin_kdc.3 | 1 + static/freebsd/man3/krb5_get_validated_creds.3 | 1 + static/freebsd/man3/krb5_getportbyname.3 | 67 + static/freebsd/man3/krb5_h_addr2addr.3 | 1 + static/freebsd/man3/krb5_h_addr2sockaddr.3 | 1 + static/freebsd/man3/krb5_h_errno_to_heim_errno.3 | 1 + static/freebsd/man3/krb5_init_context.3 | 1 + static/freebsd/man3/krb5_init_creds_free.3 | 1 + static/freebsd/man3/krb5_init_creds_get.3 | 1 + static/freebsd/man3/krb5_init_creds_get_error.3 | 1 + static/freebsd/man3/krb5_init_creds_init.3 | 1 + static/freebsd/man3/krb5_init_creds_intro.3 | 8 + static/freebsd/man3/krb5_init_creds_set_keytab.3 | 1 + static/freebsd/man3/krb5_init_creds_set_password.3 | 1 + static/freebsd/man3/krb5_init_creds_set_service.3 | 1 + static/freebsd/man3/krb5_init_creds_step.3 | 1 + static/freebsd/man3/krb5_init_ets.3 | 1 + static/freebsd/man3/krb5_introduction.3 | 259 + static/freebsd/man3/krb5_is_config_principal.3 | 1 + static/freebsd/man3/krb5_is_thread_safe.3 | 1 + static/freebsd/man3/krb5_kerberos_enctypes.3 | 1 + static/freebsd/man3/krb5_keyblock_get_enctype.3 | 1 + static/freebsd/man3/krb5_keyblock_init.3 | 1 + static/freebsd/man3/krb5_keyblock_zero.3 | 1 + static/freebsd/man3/krb5_keytab.3 | 486 + static/freebsd/man3/krb5_keytab_intro.3 | 74 + static/freebsd/man3/krb5_keytab_key_proc.3 | 1 + static/freebsd/man3/krb5_keytype_to_enctypes.3 | 1 + .../man3/krb5_keytype_to_enctypes_default.3 | 1 + static/freebsd/man3/krb5_keytype_to_string.3 | 1 + static/freebsd/man3/krb5_krbhst_get_addrinfo.3 | 1 + static/freebsd/man3/krb5_krbhst_init.3 | 174 + static/freebsd/man3/krb5_kt_add_entry.3 | 1 + static/freebsd/man3/krb5_kt_close.3 | 1 + static/freebsd/man3/krb5_kt_compare.3 | 1 + static/freebsd/man3/krb5_kt_copy_entry_contents.3 | 1 + static/freebsd/man3/krb5_kt_default.3 | 1 + static/freebsd/man3/krb5_kt_default_modify_name.3 | 1 + static/freebsd/man3/krb5_kt_default_name.3 | 1 + static/freebsd/man3/krb5_kt_destroy.3 | 1 + static/freebsd/man3/krb5_kt_end_seq_get.3 | 1 + static/freebsd/man3/krb5_kt_free_entry.3 | 1 + static/freebsd/man3/krb5_kt_get_entry.3 | 1 + static/freebsd/man3/krb5_kt_get_full_name.3 | 1 + static/freebsd/man3/krb5_kt_get_name.3 | 1 + static/freebsd/man3/krb5_kt_get_type.3 | 1 + static/freebsd/man3/krb5_kt_have_content.3 | 1 + static/freebsd/man3/krb5_kt_next_entry.3 | 1 + static/freebsd/man3/krb5_kt_read_service_key.3 | 1 + static/freebsd/man3/krb5_kt_register.3 | 1 + static/freebsd/man3/krb5_kt_remove_entry.3 | 1 + static/freebsd/man3/krb5_kt_resolve.3 | 1 + static/freebsd/man3/krb5_kt_start_seq_get.3 | 1 + static/freebsd/man3/krb5_kuserok.3 | 1 + static/freebsd/man3/krb5_make_addrport.3 | 1 + static/freebsd/man3/krb5_make_principal.3 | 1 + static/freebsd/man3/krb5_max_sockaddr_size.3 | 1 + static/freebsd/man3/krb5_mcc_ops.3 | 1 + static/freebsd/man3/krb5_mk_req.3 | 187 + static/freebsd/man3/krb5_mk_safe.3 | 82 + static/freebsd/man3/krb5_openlog.3 | 242 + static/freebsd/man3/krb5_pac.3 | 66 + static/freebsd/man3/krb5_pac_get_buffer.3 | 1 + static/freebsd/man3/krb5_pac_verify.3 | 1 + static/freebsd/man3/krb5_parse_address.3 | 1 + static/freebsd/man3/krb5_parse_name.3 | 1 + static/freebsd/man3/krb5_parse_name_flags.3 | 1 + static/freebsd/man3/krb5_parse_nametype.3 | 1 + static/freebsd/man3/krb5_password_key_proc.3 | 1 + static/freebsd/man3/krb5_plugin_register.3 | 1 + .../man3/krb5_prepend_config_files_default.3 | 1 + static/freebsd/man3/krb5_princ_realm.3 | 1 + static/freebsd/man3/krb5_princ_set_realm.3 | 1 + static/freebsd/man3/krb5_principal.3 | 519 ++ static/freebsd/man3/krb5_principal_compare.3 | 1 + .../man3/krb5_principal_compare_any_realm.3 | 1 + static/freebsd/man3/krb5_principal_get_num_comp.3 | 1 + static/freebsd/man3/krb5_principal_get_realm.3 | 1 + static/freebsd/man3/krb5_principal_get_type.3 | 1 + static/freebsd/man3/krb5_principal_intro.3 | 17 + static/freebsd/man3/krb5_principal_is_krbtgt.3 | 1 + static/freebsd/man3/krb5_principal_match.3 | 1 + static/freebsd/man3/krb5_principal_set_realm.3 | 1 + static/freebsd/man3/krb5_principal_set_type.3 | 1 + static/freebsd/man3/krb5_print_address.3 | 1 + static/freebsd/man3/krb5_random_to_key.3 | 1 + static/freebsd/man3/krb5_rcache.3 | 163 + static/freebsd/man3/krb5_rd_error.3 | 98 + static/freebsd/man3/krb5_rd_req_ctx.3 | 1 + static/freebsd/man3/krb5_rd_req_in_ctx_alloc.3 | 1 + static/freebsd/man3/krb5_rd_req_in_set_keytab.3 | 1 + static/freebsd/man3/krb5_rd_req_in_set_pac_check.3 | 1 + static/freebsd/man3/krb5_rd_req_out_ctx_free.3 | 1 + static/freebsd/man3/krb5_rd_req_out_get_server.3 | 1 + static/freebsd/man3/krb5_rd_safe.3 | 81 + static/freebsd/man3/krb5_realm_compare.3 | 1 + static/freebsd/man3/krb5_ret_address.3 | 1 + static/freebsd/man3/krb5_ret_addrs.3 | 1 + static/freebsd/man3/krb5_ret_authdata.3 | 1 + static/freebsd/man3/krb5_ret_creds.3 | 1 + static/freebsd/man3/krb5_ret_creds_tag.3 | 1 + static/freebsd/man3/krb5_ret_data.3 | 1 + static/freebsd/man3/krb5_ret_int16.3 | 1 + static/freebsd/man3/krb5_ret_int32.3 | 1 + static/freebsd/man3/krb5_ret_int8.3 | 1 + static/freebsd/man3/krb5_ret_keyblock.3 | 1 + static/freebsd/man3/krb5_ret_principal.3 | 1 + static/freebsd/man3/krb5_ret_string.3 | 1 + static/freebsd/man3/krb5_ret_stringz.3 | 1 + static/freebsd/man3/krb5_ret_times.3 | 1 + static/freebsd/man3/krb5_ret_uint16.3 | 1 + static/freebsd/man3/krb5_ret_uint32.3 | 1 + static/freebsd/man3/krb5_ret_uint8.3 | 1 + static/freebsd/man3/krb5_set_config_files.3 | 1 + .../freebsd/man3/krb5_set_default_in_tkt_etypes.3 | 1 + static/freebsd/man3/krb5_set_default_realm.3 | 164 + .../man3/krb5_set_dns_canonicalize_hostname.3 | 1 + static/freebsd/man3/krb5_set_error_message.3 | 1 + static/freebsd/man3/krb5_set_error_string.3 | 1 + static/freebsd/man3/krb5_set_extra_addresses.3 | 1 + static/freebsd/man3/krb5_set_fcache_version.3 | 1 + static/freebsd/man3/krb5_set_home_dir_access.3 | 1 + static/freebsd/man3/krb5_set_ignore_addresses.3 | 1 + static/freebsd/man3/krb5_set_kdc_sec_offset.3 | 1 + static/freebsd/man3/krb5_set_max_time_skew.3 | 1 + static/freebsd/man3/krb5_set_password.3 | 1 + static/freebsd/man3/krb5_set_real_time.3 | 1 + static/freebsd/man3/krb5_set_use_admin_kdc.3 | 1 + static/freebsd/man3/krb5_sname_to_principal.3 | 1 + static/freebsd/man3/krb5_sockaddr2address.3 | 1 + static/freebsd/man3/krb5_sockaddr2port.3 | 1 + static/freebsd/man3/krb5_sockaddr_uninteresting.3 | 1 + static/freebsd/man3/krb5_storage.3 | 1055 +++ static/freebsd/man3/krb5_storage_clear_flags.3 | 1 + static/freebsd/man3/krb5_storage_emem.3 | 1 + static/freebsd/man3/krb5_storage_free.3 | 1 + static/freebsd/man3/krb5_storage_from_data.3 | 1 + static/freebsd/man3/krb5_storage_from_fd.3 | 1 + static/freebsd/man3/krb5_storage_from_mem.3 | 1 + .../freebsd/man3/krb5_storage_from_readonly_mem.3 | 1 + static/freebsd/man3/krb5_storage_get_byteorder.3 | 1 + static/freebsd/man3/krb5_storage_get_eof_code.3 | 1 + static/freebsd/man3/krb5_storage_is_flags.3 | 1 + static/freebsd/man3/krb5_storage_read.3 | 1 + static/freebsd/man3/krb5_storage_seek.3 | 1 + static/freebsd/man3/krb5_storage_set_byteorder.3 | 1 + static/freebsd/man3/krb5_storage_set_eof_code.3 | 1 + static/freebsd/man3/krb5_storage_set_flags.3 | 1 + static/freebsd/man3/krb5_storage_set_max_alloc.3 | 1 + static/freebsd/man3/krb5_storage_to_data.3 | 1 + static/freebsd/man3/krb5_storage_truncate.3 | 1 + static/freebsd/man3/krb5_storage_write.3 | 1 + static/freebsd/man3/krb5_store_address.3 | 1 + static/freebsd/man3/krb5_store_addrs.3 | 1 + static/freebsd/man3/krb5_store_authdata.3 | 1 + static/freebsd/man3/krb5_store_creds.3 | 1 + static/freebsd/man3/krb5_store_creds_tag.3 | 1 + static/freebsd/man3/krb5_store_data.3 | 1 + static/freebsd/man3/krb5_store_int16.3 | 1 + static/freebsd/man3/krb5_store_int32.3 | 1 + static/freebsd/man3/krb5_store_int8.3 | 1 + static/freebsd/man3/krb5_store_keyblock.3 | 1 + static/freebsd/man3/krb5_store_principal.3 | 1 + static/freebsd/man3/krb5_store_string.3 | 1 + static/freebsd/man3/krb5_store_stringz.3 | 1 + static/freebsd/man3/krb5_store_times.3 | 1 + static/freebsd/man3/krb5_store_uint16.3 | 1 + static/freebsd/man3/krb5_store_uint32.3 | 1 + static/freebsd/man3/krb5_store_uint8.3 | 1 + static/freebsd/man3/krb5_string_to_key.3 | 156 + static/freebsd/man3/krb5_string_to_keytype.3 | 1 + static/freebsd/man3/krb5_support.3 | 650 ++ static/freebsd/man3/krb5_ticket.3 | 34 + .../man3/krb5_ticket_get_authorization_data_type.3 | 1 + static/freebsd/man3/krb5_ticket_get_client.3 | 1 + static/freebsd/man3/krb5_ticket_get_endtime.3 | 1 + static/freebsd/man3/krb5_ticket_get_flags.3 | 1 + static/freebsd/man3/krb5_ticket_get_server.3 | 1 + static/freebsd/man3/krb5_timeofday.3 | 118 + static/freebsd/man3/krb5_unparse_name.3 | 1 + static/freebsd/man3/krb5_unparse_name_fixed.3 | 1 + .../freebsd/man3/krb5_unparse_name_fixed_flags.3 | 1 + .../freebsd/man3/krb5_unparse_name_fixed_short.3 | 1 + static/freebsd/man3/krb5_unparse_name_flags.3 | 1 + static/freebsd/man3/krb5_unparse_name_short.3 | 1 + static/freebsd/man3/krb5_v4compat.3 | 60 + static/freebsd/man3/krb5_verify_checksum_iov.3 | 1 + static/freebsd/man3/krb5_verify_init_creds.3 | 103 + static/freebsd/man3/krb5_verify_user.3 | 241 + static/freebsd/man3/krb5_vset_error_string.3 | 1 + static/freebsd/man3/krb5_vwarn.3 | 1 + static/freebsd/man3/kvm.3 | 169 + static/freebsd/man3/kvm_getcptime.3 | 75 + static/freebsd/man3/kvm_geterr.3 | 84 + static/freebsd/man3/kvm_getloadavg.3 | 59 + static/freebsd/man3/kvm_getpcpu.3 | 167 + static/freebsd/man3/kvm_getprocs.3 | 170 + static/freebsd/man3/kvm_getswapinfo.3 | 109 + static/freebsd/man3/kvm_kerndisp.3 | 55 + static/freebsd/man3/kvm_native.3 | 59 + static/freebsd/man3/kvm_nlist.3 | 120 + static/freebsd/man3/kvm_open.3 | 286 + static/freebsd/man3/kvm_read.3 | 108 + static/freebsd/man3/ldexp.3 | 74 + static/freebsd/man3/length.3 | 1 + static/freebsd/man3/lgamma.3 | 213 + static/freebsd/man3/lib80211.3 | 117 + static/freebsd/man3/libalias.3 | 1499 ++++ static/freebsd/man3/libarchive.3 | 297 + static/freebsd/man3/libarchive_changes.3 | 339 + static/freebsd/man3/libarchive_internals.3 | 363 + static/freebsd/man3/libauditd.3 | 58 + static/freebsd/man3/libbe.3 | 619 ++ static/freebsd/man3/libblacklist.3 | 188 + static/freebsd/man3/libblocklist.3 | 183 + static/freebsd/man3/libbsdxml.3 | 67 + static/freebsd/man3/libbsm.3 | 248 + static/freebsd/man3/libcasper.3 | 317 + static/freebsd/man3/libcasper_service.3 | 119 + static/freebsd/man3/libder.3 | 179 + static/freebsd/man3/libder_obj.3 | 138 + static/freebsd/man3/libder_read.3 | 101 + static/freebsd/man3/libder_type.3 | 71 + static/freebsd/man3/libder_write.3 | 54 + static/freebsd/man3/libgeom.3 | 446 + static/freebsd/man3/libmemstat.3 | 497 + static/freebsd/man3/libmp.3 | 312 + static/freebsd/man3/libprocstat.3 | 600 ++ static/freebsd/man3/libradius.3 | 613 ++ static/freebsd/man3/librss.3 | 133 + static/freebsd/man3/librtld_db.3 | 188 + static/freebsd/man3/libsa.3 | 929 ++ static/freebsd/man3/libstdbuf.3 | 103 + static/freebsd/man3/libtacplus.3 | 533 ++ static/freebsd/man3/libthr.3 | 387 + static/freebsd/man3/libucl.3 | 726 ++ static/freebsd/man3/libufs.3 | 85 + static/freebsd/man3/libugidfw.3 | 113 + static/freebsd/man3/libunbound.3 | 434 + static/freebsd/man3/libusb.3 | 882 ++ static/freebsd/man3/libusb20.3 | 1079 +++ static/freebsd/man3/libusb20_be_device_foreach.3 | 56 + static/freebsd/man3/libusb20_dev_open.3 | 69 + static/freebsd/man3/libuvmem.3 | 71 + static/freebsd/man3/libxo.3 | 414 + static/freebsd/man3/linkaddr.3 | 178 + static/freebsd/man3/lm.3 | 1 + static/freebsd/man3/localeconv.3 | 235 + static/freebsd/man3/lockf.3 | 264 + static/freebsd/man3/log.3 | 146 + static/freebsd/man3/login_auth.3 | 77 + static/freebsd/man3/login_cap.3 | 624 ++ static/freebsd/man3/login_class.3 | 232 + static/freebsd/man3/login_ok.3 | 148 + static/freebsd/man3/login_times.3 | 187 + static/freebsd/man3/login_tty.3 | 68 + static/freebsd/man3/lrint.3 | 102 + static/freebsd/man3/lround.3 | 110 + static/freebsd/man3/lsearch.3 | 144 + static/freebsd/man3/mac.3 | 163 + static/freebsd/man3/mac_free.3 | 91 + static/freebsd/man3/mac_get.3 | 144 + static/freebsd/man3/mac_is_present.3 | 85 + static/freebsd/man3/mac_prepare.3 | 118 + static/freebsd/man3/mac_set.3 | 147 + static/freebsd/man3/mac_text.3 | 111 + static/freebsd/man3/makecontext.3 | 162 + static/freebsd/man3/makedev.3 3.html | 88 + static/freebsd/man3/man.cgi.3 | 310 + static/freebsd/man3/mandoc.3 | 607 ++ static/freebsd/man3/mandoc_dbg_init.3 | 280 + static/freebsd/man3/mandoc_escape.3 | 411 + static/freebsd/man3/mandoc_headers.3 | 773 ++ static/freebsd/man3/mandoc_html.3 | 556 ++ static/freebsd/man3/mandoc_malloc.3 | 210 + static/freebsd/man3/mansearch.3 | 120 + static/freebsd/man3/math.3 | 252 + static/freebsd/man3/mblen.3 | 103 + static/freebsd/man3/mbrlen.3 | 143 + static/freebsd/man3/mbrtowc.3 | 177 + static/freebsd/man3/mbsinit.3 | 65 + static/freebsd/man3/mbsrtowcs.3 | 147 + static/freebsd/man3/mbstowcs.3 | 84 + static/freebsd/man3/mbtowc.3 | 111 + static/freebsd/man3/mchars_alloc.3 | 227 + static/freebsd/man3/mdX.3 | 228 + static/freebsd/man3/memalignment.3 | 53 + static/freebsd/man3/memccpy.3 | 96 + static/freebsd/man3/memchr.3 | 109 + static/freebsd/man3/memcmp.3 | 91 + static/freebsd/man3/memcpy.3 | 96 + static/freebsd/man3/memmem.3 | 94 + static/freebsd/man3/memmove.3 | 72 + static/freebsd/man3/memory.3 | 103 + static/freebsd/man3/memset.3 | 144 + static/freebsd/man3/mixer.3 | 590 ++ static/freebsd/man3/mktemp.3 | 350 + static/freebsd/man3/mlx5dv_init_obj.3 | 130 + static/freebsd/man3/mlx5dv_query_device.3 | 51 + static/freebsd/man3/mntopts.3 | 379 + static/freebsd/man3/modf.3 | 78 + static/freebsd/man3/moncontrol.3 | 114 + static/freebsd/man3/mpool.3 | 251 + static/freebsd/man3/mq_getfd_np.3 | 57 + static/freebsd/man3/mt.3 | 452 + static/freebsd/man3/multibyte.3 | 139 + static/freebsd/man3/nan.3 | 97 + static/freebsd/man3/netgraph.3 | 396 + static/freebsd/man3/newctime.3 | 358 + static/freebsd/man3/newlocale.3 | 122 + static/freebsd/man3/newstrftime.3 | 444 + static/freebsd/man3/newtzset.3 | 426 + static/freebsd/man3/nextafter.3 | 93 + static/freebsd/man3/nextwctype.3 | 65 + static/freebsd/man3/nice.3 | 94 + static/freebsd/man3/nl_langinfo.3 | 186 + static/freebsd/man3/nlist.3 | 74 + static/freebsd/man3/nsdispatch.3 | 252 + static/freebsd/man3/ntlm.3 | 1 + static/freebsd/man3/ntlm_buf.3 | 48 + static/freebsd/man3/ntlm_core.3 | 421 + static/freebsd/man3/ntlm_type1.3 | 68 + static/freebsd/man3/ntlm_type2.3 | 80 + static/freebsd/man3/ntlm_type3.3 | 96 + static/freebsd/man3/o2i_SCT_LIST.3 | 105 + static/freebsd/man3/offsetof.3 4.html | 46 + static/freebsd/man3/ohash_init.3 | 271 + static/freebsd/man3/ohash_interval.3 | 93 + static/freebsd/man3/open_memstream.3 | 153 + static/freebsd/man3/openpam.3 | 133 + static/freebsd/man3/openpam_borrow_cred.3 | 64 + static/freebsd/man3/openpam_free_data.3 | 45 + static/freebsd/man3/openpam_free_envlist.3 | 35 + static/freebsd/man3/openpam_get_feature.3 | 70 + static/freebsd/man3/openpam_get_option.3 | 48 + static/freebsd/man3/openpam_log.3 | 90 + static/freebsd/man3/openpam_nullconv.3 | 71 + static/freebsd/man3/openpam_readline.3 | 88 + static/freebsd/man3/openpam_readlinev.3 | 122 + static/freebsd/man3/openpam_readword.3 | 115 + static/freebsd/man3/openpam_restore_cred.3 | 56 + static/freebsd/man3/openpam_set_feature.3 | 52 + static/freebsd/man3/openpam_set_option.3 | 53 + static/freebsd/man3/openpam_straddch.3 | 102 + static/freebsd/man3/openpam_subst.3 | 105 + static/freebsd/man3/openpam_ttyconv.3 | 66 + static/freebsd/man3/openzfs-2.3 | 45 + static/freebsd/man3/openzfsonosx-1.9.3 | 27 + static/freebsd/man3/os.3 | 1 + static/freebsd/man3/p.3 | 1 + static/freebsd/man3/page_ca.3 | 6 + static/freebsd/man3/page_cert.3 | 10 + static/freebsd/man3/page_cms.3 | 18 + static/freebsd/man3/page_des.3 | 35 + static/freebsd/man3/page_dh.3 | 10 + static/freebsd/man3/page_env.3 | 6 + static/freebsd/man3/page_error.3 | 6 + static/freebsd/man3/page_evp.3 | 9 + static/freebsd/man3/page_keyset.3 | 25 + static/freebsd/man3/page_lock.3 | 6 + static/freebsd/man3/page_name.3 | 18 + static/freebsd/man3/page_peer.3 | 8 + static/freebsd/man3/page_print.3 | 6 + static/freebsd/man3/page_rand.3 | 6 + static/freebsd/man3/page_revoke.3 | 10 + static/freebsd/man3/page_rsa.3 | 12 + static/freebsd/man3/pam.3 | 266 + static/freebsd/man3/pam_acct_mgmt.3 | 83 + static/freebsd/man3/pam_authenticate.3 | 97 + static/freebsd/man3/pam_chauthtok.3 | 89 + static/freebsd/man3/pam_close_session.3 | 79 + static/freebsd/man3/pam_conv.3 | 184 + static/freebsd/man3/pam_end.3 | 55 + static/freebsd/man3/pam_error.3 | 56 + static/freebsd/man3/pam_get_authtok.3 | 163 + static/freebsd/man3/pam_get_data.3 | 68 + static/freebsd/man3/pam_get_item.3 | 104 + static/freebsd/man3/pam_get_user.3 | 107 + static/freebsd/man3/pam_getenv.3 | 52 + static/freebsd/man3/pam_getenvlist.3 | 73 + static/freebsd/man3/pam_info.3 | 56 + static/freebsd/man3/pam_open_session.3 | 80 + static/freebsd/man3/pam_prompt.3 | 68 + static/freebsd/man3/pam_putenv.3 | 59 + static/freebsd/man3/pam_set_data.3 | 69 + static/freebsd/man3/pam_set_item.3 | 61 + static/freebsd/man3/pam_setcred.3 | 92 + static/freebsd/man3/pam_setenv.3 | 58 + static/freebsd/man3/pam_sm_acct_mgmt.3 | 73 + static/freebsd/man3/pam_sm_authenticate.3 | 75 + static/freebsd/man3/pam_sm_chauthtok.3 | 85 + static/freebsd/man3/pam_sm_close_session.3 | 67 + static/freebsd/man3/pam_sm_open_session.3 | 67 + static/freebsd/man3/pam_sm_setcred.3 | 73 + static/freebsd/man3/pam_start.3 | 80 + static/freebsd/man3/pam_strerror.3 | 55 + static/freebsd/man3/pam_verror.3 | 60 + static/freebsd/man3/pam_vinfo.3 | 60 + static/freebsd/man3/pam_vprompt.3 | 97 + static/freebsd/man3/parse_time.3 | 173 + static/freebsd/man3/pause.3 | 91 + static/freebsd/man3/pidfile.3 | 364 + static/freebsd/man3/pkru.3 | 206 + static/freebsd/man3/pmc.3 | 587 ++ static/freebsd/man3/pmc.amd.3 | 794 ++ static/freebsd/man3/pmc.atom.3 | 1188 +++ static/freebsd/man3/pmc.atomsilvermont.3 | 530 ++ static/freebsd/man3/pmc.cmn-600.3 | 590 ++ static/freebsd/man3/pmc.core.3 | 803 ++ static/freebsd/man3/pmc.core2.3 | 1119 +++ static/freebsd/man3/pmc.corei7.3 | 1600 ++++ static/freebsd/man3/pmc.corei7uc.3 | 903 ++ static/freebsd/man3/pmc.dmc-620.3 | 160 + static/freebsd/man3/pmc.haswell.3 | 945 ++ static/freebsd/man3/pmc.haswelluc.3 | 229 + static/freebsd/man3/pmc.haswellxeon.3 | 958 ++ static/freebsd/man3/pmc.iaf.3 | 143 + static/freebsd/man3/pmc.ibs.3 | 155 + static/freebsd/man3/pmc.ivybridge.3 | 857 ++ static/freebsd/man3/pmc.ivybridgexeon.3 | 890 ++ static/freebsd/man3/pmc.sandybridge.3 | 936 ++ static/freebsd/man3/pmc.sandybridgeuc.3 | 227 + static/freebsd/man3/pmc.sandybridgexeon.3 | 1013 +++ static/freebsd/man3/pmc.soft.3 | 112 + static/freebsd/man3/pmc.tsc.3 | 78 + static/freebsd/man3/pmc.ucf.3 | 108 + static/freebsd/man3/pmc.westmere.3 | 1392 +++ static/freebsd/man3/pmc.westmereuc.3 | 1096 +++ static/freebsd/man3/pmc_allocate.3 | 197 + static/freebsd/man3/pmc_attach.3 | 147 + static/freebsd/man3/pmc_capabilities.3 | 228 + static/freebsd/man3/pmc_configure_logfile.3 | 131 + static/freebsd/man3/pmc_disable.3 | 97 + static/freebsd/man3/pmc_event_names_of_class.3 | 73 + static/freebsd/man3/pmc_get_driver_stats.3 | 71 + static/freebsd/man3/pmc_get_msr.3 | 74 + static/freebsd/man3/pmc_init.3 | 61 + static/freebsd/man3/pmc_name_of_capability.3 | 138 + static/freebsd/man3/pmc_read.3 | 82 + static/freebsd/man3/pmc_set.3 | 71 + static/freebsd/man3/pmc_start.3 | 75 + static/freebsd/man3/pmclog.3 | 342 + static/freebsd/man3/popen.3 | 199 + static/freebsd/man3/posix1e.3 | 116 + static/freebsd/man3/posix_spawn.3 | 498 + .../man3/posix_spawn_file_actions_addopen.3 | 280 + .../freebsd/man3/posix_spawn_file_actions_init.3 | 103 + static/freebsd/man3/posix_spawnattr_getexecfd_np.3 | 87 + static/freebsd/man3/posix_spawnattr_getflags.3 | 113 + static/freebsd/man3/posix_spawnattr_getpgroup.3 | 94 + .../freebsd/man3/posix_spawnattr_getprocdescp_np.3 | 94 + .../freebsd/man3/posix_spawnattr_getschedparam.3 | 98 + .../freebsd/man3/posix_spawnattr_getschedpolicy.3 | 96 + .../freebsd/man3/posix_spawnattr_getsigdefault.3 | 96 + static/freebsd/man3/posix_spawnattr_getsigmask.3 | 96 + static/freebsd/man3/posix_spawnattr_init.3 | 121 + static/freebsd/man3/printf.3 | 942 ++ static/freebsd/man3/printf_l.3 | 79 + static/freebsd/man3/property.3 | 94 + static/freebsd/man3/psignal.3 | 185 + static/freebsd/man3/pthread.3 3.html | 466 + static/freebsd/man3/pthread_affinity_np.3 3.html | 138 + static/freebsd/man3/pthread_atfork.3 3.html | 95 + static/freebsd/man3/pthread_attr.3 3.html | 272 + .../freebsd/man3/pthread_attr_affinity_np.3 3.html | 140 + static/freebsd/man3/pthread_attr_get_np.3 3.html | 122 + .../man3/pthread_attr_setcreatesuspend_np.3 3.html | 77 + .../freebsd/man3/pthread_barrier_destroy.3 3.html | 131 + static/freebsd/man3/pthread_barrierattr.3 3.html | 126 + static/freebsd/man3/pthread_cancel.3 3.html | 94 + static/freebsd/man3/pthread_cleanup_pop.3 4.html | 71 + static/freebsd/man3/pthread_cleanup_push.3 4.html | 72 + .../freebsd/man3/pthread_cond_broadcast.3 4.html | 73 + static/freebsd/man3/pthread_cond_destroy.3 4.html | 80 + static/freebsd/man3/pthread_cond_init.3 3.html | 82 + static/freebsd/man3/pthread_cond_signal.3 4.html | 73 + .../freebsd/man3/pthread_cond_timedwait.3 3.html | 93 + static/freebsd/man3/pthread_cond_wait.3 3.html | 92 + static/freebsd/man3/pthread_condattr.3 3.html | 154 + static/freebsd/man3/pthread_create.3 3.html | 118 + static/freebsd/man3/pthread_detach.3 3.html | 77 + static/freebsd/man3/pthread_equal.3 4.html | 65 + static/freebsd/man3/pthread_exit.3 3.html | 94 + .../freebsd/man3/pthread_getconcurrency.3 3.html | 98 + static/freebsd/man3/pthread_getcpuclockid.3 4.html | 83 + static/freebsd/man3/pthread_getspecific.3 3.html | 80 + .../freebsd/man3/pthread_getthreadid_np.3 4.html | 63 + static/freebsd/man3/pthread_join.3 3.html | 155 + static/freebsd/man3/pthread_key_create.3 3.html | 96 + static/freebsd/man3/pthread_key_delete.3 3.html | 86 + static/freebsd/man3/pthread_kill.3 4.html | 74 + static/freebsd/man3/pthread_main_np.3 4.html | 63 + static/freebsd/man3/pthread_multi_np.3 4.html | 68 + .../freebsd/man3/pthread_mutex_consistent.3 3.html | 88 + static/freebsd/man3/pthread_mutex_destroy.3 4.html | 72 + static/freebsd/man3/pthread_mutex_init.3 3.html | 76 + static/freebsd/man3/pthread_mutex_lock.3 3.html | 83 + .../freebsd/man3/pthread_mutex_timedlock.3 3.html | 103 + static/freebsd/man3/pthread_mutex_trylock.3 3.html | 83 + static/freebsd/man3/pthread_mutex_unlock.3 3.html | 81 + static/freebsd/man3/pthread_mutexattr.3 3.html | 307 + .../man3/pthread_mutexattr_getkind_np.3 3.html | 82 + static/freebsd/man3/pthread_np.3 3.html | 179 + static/freebsd/man3/pthread_once.3 3.html | 84 + static/freebsd/man3/pthread_resume_all_np.3 4.html | 54 + static/freebsd/man3/pthread_resume_np.3 3.html | 76 + .../freebsd/man3/pthread_rwlock_destroy.3 4.html | 82 + static/freebsd/man3/pthread_rwlock_init.3 3.html | 96 + static/freebsd/man3/pthread_rwlock_rdlock.3 3.html | 119 + .../man3/pthread_rwlock_timedrdlock.3 3.html | 112 + .../man3/pthread_rwlock_timedwrlock.3 3.html | 104 + static/freebsd/man3/pthread_rwlock_unlock.3 3.html | 82 + static/freebsd/man3/pthread_rwlock_wrlock.3 3.html | 106 + .../man3/pthread_rwlockattr_destroy.3 3.html | 74 + .../man3/pthread_rwlockattr_getpshared.3 3.html | 86 + .../freebsd/man3/pthread_rwlockattr_init.3 4.html | 75 + .../man3/pthread_rwlockattr_setpshared.3 3.html | 89 + static/freebsd/man3/pthread_schedparam.3 3.html | 99 + static/freebsd/man3/pthread_self.3 4.html | 61 + static/freebsd/man3/pthread_set_name_np.3 3.html | 110 + static/freebsd/man3/pthread_setspecific.3 3.html | 91 + static/freebsd/man3/pthread_sigmask.3 3.html | 88 + .../freebsd/man3/pthread_signals_block_np.3 3.html | 94 + static/freebsd/man3/pthread_sigqueue.3 3.html | 85 + static/freebsd/man3/pthread_spin_init.3 3.html | 104 + static/freebsd/man3/pthread_spin_lock.3 3.html | 122 + .../freebsd/man3/pthread_suspend_all_np.3 4.html | 61 + static/freebsd/man3/pthread_suspend_np.3 3.html | 82 + static/freebsd/man3/pthread_testcancel.3 3.html | 302 + static/freebsd/man3/pthread_yield.3 4.html | 51 + static/freebsd/man3/ptsname.3 | 197 + static/freebsd/man3/pty.3 | 158 + static/freebsd/man3/publickey.3 | 51 + static/freebsd/man3/putc.3 | 167 + static/freebsd/man3/putwc.3 | 100 + static/freebsd/man3/pw_util.3 | 303 + static/freebsd/man3/pwcache.3 | 236 + static/freebsd/man3/qmath.3 3.html | 606 ++ static/freebsd/man3/qsort.3 | 446 + static/freebsd/man3/querylocale.3 | 71 + static/freebsd/man3/queue.3 3.html | 1187 +++ static/freebsd/man3/quick_exit.3 | 67 + static/freebsd/man3/quotafile.3 | 288 + static/freebsd/man3/radixsort.3 | 157 + static/freebsd/man3/raise.3 | 70 + static/freebsd/man3/rand.3 | 146 + static/freebsd/man3/rand48.3 | 190 + static/freebsd/man3/random.3 | 175 + static/freebsd/man3/rcmd.3 | 303 + static/freebsd/man3/rcmdsh.3 | 114 + static/freebsd/man3/rdma_accept.3 | 95 + static/freebsd/man3/rdma_ack_cm_event.3 | 22 + static/freebsd/man3/rdma_bind_addr.3 | 33 + static/freebsd/man3/rdma_connect.3 | 91 + static/freebsd/man3/rdma_create_ep.3 | 61 + static/freebsd/man3/rdma_create_event_channel.3 | 32 + static/freebsd/man3/rdma_create_id.3 | 56 + static/freebsd/man3/rdma_create_qp.3 | 49 + static/freebsd/man3/rdma_create_srq.3 | 45 + static/freebsd/man3/rdma_dereg_mr.3 | 29 + static/freebsd/man3/rdma_destroy_ep.3 | 20 + static/freebsd/man3/rdma_destroy_event_channel.3 | 23 + static/freebsd/man3/rdma_destroy_id.3 | 23 + static/freebsd/man3/rdma_destroy_qp.3 | 19 + static/freebsd/man3/rdma_destroy_srq.3 | 22 + static/freebsd/man3/rdma_disconnect.3 | 23 + static/freebsd/man3/rdma_event_str.3 | 18 + static/freebsd/man3/rdma_free_devices.3 | 18 + static/freebsd/man3/rdma_get_cm_event.3 | 168 + static/freebsd/man3/rdma_get_devices.3 | 24 + static/freebsd/man3/rdma_get_dst_port.3 | 21 + static/freebsd/man3/rdma_get_local_addr.3 | 22 + static/freebsd/man3/rdma_get_peer_addr.3 | 21 + static/freebsd/man3/rdma_get_recv_comp.3 | 32 + static/freebsd/man3/rdma_get_request.3 | 35 + static/freebsd/man3/rdma_get_send_comp.3 | 32 + static/freebsd/man3/rdma_get_src_port.3 | 21 + static/freebsd/man3/rdma_getaddrinfo.3 | 105 + static/freebsd/man3/rdma_join_multicast.3 | 39 + static/freebsd/man3/rdma_leave_multicast.3 | 28 + static/freebsd/man3/rdma_listen.3 | 32 + static/freebsd/man3/rdma_migrate_id.3 | 35 + static/freebsd/man3/rdma_notify.3 | 39 + static/freebsd/man3/rdma_post_read.3 | 56 + static/freebsd/man3/rdma_post_readv.3 | 53 + static/freebsd/man3/rdma_post_recv.3 | 51 + static/freebsd/man3/rdma_post_recvv.3 | 48 + static/freebsd/man3/rdma_post_send.3 | 52 + static/freebsd/man3/rdma_post_sendv.3 | 49 + static/freebsd/man3/rdma_post_ud_send.3 | 55 + static/freebsd/man3/rdma_post_write.3 | 56 + static/freebsd/man3/rdma_post_writev.3 | 53 + static/freebsd/man3/rdma_reg_msgs.3 | 43 + static/freebsd/man3/rdma_reg_read.3 | 42 + static/freebsd/man3/rdma_reg_write.3 | 42 + static/freebsd/man3/rdma_reject.3 | 33 + static/freebsd/man3/rdma_resolve_addr.3 | 47 + static/freebsd/man3/rdma_resolve_route.3 | 29 + static/freebsd/man3/rdma_set_option.3 | 34 + static/freebsd/man3/re_comp.3 | 117 + static/freebsd/man3/readpassphrase.3 | 181 + static/freebsd/man3/realhostname.3 | 105 + static/freebsd/man3/realhostname_sa.3 | 130 + static/freebsd/man3/reallocarray.3 | 179 + static/freebsd/man3/reallocf.3 | 79 + static/freebsd/man3/realpath.3 | 120 + static/freebsd/man3/recno.3 | 225 + static/freebsd/man3/regex.3 | 763 ++ static/freebsd/man3/rel2abs.3 | 98 + static/freebsd/man3/remainder.3 | 156 + static/freebsd/man3/remove.3 | 80 + static/freebsd/man3/resolver.3 | 451 + static/freebsd/man3/rexec.3 | 128 + static/freebsd/man3/rfork_thread.3 | 85 + static/freebsd/man3/rint.3 | 100 + static/freebsd/man3/ripemd.3 | 180 + static/freebsd/man3/round.3 | 78 + static/freebsd/man3/rpc.3 | 515 ++ static/freebsd/man3/rpc_clnt_auth.3 | 93 + static/freebsd/man3/rpc_clnt_calls.3 | 313 + static/freebsd/man3/rpc_clnt_create.3 | 511 ++ static/freebsd/man3/rpc_gss_get_error.3 | 56 + static/freebsd/man3/rpc_gss_get_mech_info.3 | 66 + static/freebsd/man3/rpc_gss_get_mechanisms.3 | 53 + static/freebsd/man3/rpc_gss_get_principal_name.3 | 80 + static/freebsd/man3/rpc_gss_get_versions.3 | 62 + static/freebsd/man3/rpc_gss_getcred.3 | 83 + static/freebsd/man3/rpc_gss_is_installed.3 | 63 + static/freebsd/man3/rpc_gss_max_data_length.3 | 62 + static/freebsd/man3/rpc_gss_mech_to_oid.3 | 66 + static/freebsd/man3/rpc_gss_oid_to_mech.3 | 66 + static/freebsd/man3/rpc_gss_qop_to_num.3 | 68 + static/freebsd/man3/rpc_gss_seccreate.3 | 110 + static/freebsd/man3/rpc_gss_set_callback.3 | 114 + static/freebsd/man3/rpc_gss_set_defaults.3 | 68 + static/freebsd/man3/rpc_gss_set_svc_name.3 | 85 + static/freebsd/man3/rpc_gss_svc_max_data_length.3 | 62 + static/freebsd/man3/rpc_secure.3 | 284 + static/freebsd/man3/rpc_soc.3 | 1719 ++++ static/freebsd/man3/rpc_svc_calls.3 | 264 + static/freebsd/man3/rpc_svc_create.3 | 334 + static/freebsd/man3/rpc_svc_err.3 | 94 + static/freebsd/man3/rpc_svc_reg.3 | 180 + static/freebsd/man3/rpc_xdr.3 | 98 + static/freebsd/man3/rpcbind.3 | 192 + static/freebsd/man3/rpcsec_gss.3 | 228 + static/freebsd/man3/rpmatch.3 | 64 + static/freebsd/man3/rs256_pk_new.3 | 160 + static/freebsd/man3/rtbl.3 | 201 + static/freebsd/man3/rtime.3 | 46 + static/freebsd/man3/rtld_get_var.3 | 123 + static/freebsd/man3/s2i_ASN1_IA5STRING.3 | 155 + static/freebsd/man3/sbread.3 | 203 + static/freebsd/man3/scalbn.3 | 88 + static/freebsd/man3/scandir.3 | 300 + static/freebsd/man3/scanf.3 | 562 ++ static/freebsd/man3/scanf_l.3 | 69 + static/freebsd/man3/sched_getcpu.3 | 51 + static/freebsd/man3/sctp_bindx.3 | 121 + static/freebsd/man3/sctp_connectx.3 | 114 + static/freebsd/man3/sctp_freepaddrs.3 | 77 + static/freebsd/man3/sctp_getaddrlen.3 | 80 + static/freebsd/man3/sctp_getassocid.3 | 68 + static/freebsd/man3/sctp_getpaddrs.3 | 109 + static/freebsd/man3/sctp_opt_info.3 | 137 + static/freebsd/man3/sctp_recvmsg.3 | 470 + static/freebsd/man3/sctp_send.3 | 536 ++ static/freebsd/man3/sctp_sendmsg.3 | 326 + static/freebsd/man3/sdp.3 | 434 + static/freebsd/man3/sem_destroy.3 | 85 + static/freebsd/man3/sem_getvalue.3 | 78 + static/freebsd/man3/sem_init.3 | 99 + static/freebsd/man3/sem_open.3 | 222 + static/freebsd/man3/sem_post.3 | 78 + static/freebsd/man3/sem_timedwait.3 | 161 + static/freebsd/man3/sem_wait.3 | 100 + static/freebsd/man3/sessionkey.3 | 1 + static/freebsd/man3/set_constraint_handler_s.3 | 147 + static/freebsd/man3/setbuf.3 | 214 + static/freebsd/man3/setjmp.3 | 175 + static/freebsd/man3/setlocale.3 | 208 + static/freebsd/man3/setmode.3 | 131 + static/freebsd/man3/setproctitle.3 | 139 + static/freebsd/man3/setruid.3 | 77 + static/freebsd/man3/sha.3 | 211 + static/freebsd/man3/sha256.3 | 208 + static/freebsd/man3/sha512.3 | 294 + static/freebsd/man3/sigevent.3 3.html | 134 + static/freebsd/man3/siginfo.3 3.html | 528 ++ static/freebsd/man3/siginterrupt.3 | 116 + static/freebsd/man3/signal.3 | 273 + static/freebsd/man3/signbit.3 | 55 + static/freebsd/man3/sigsetops.3 | 163 + static/freebsd/man3/sin.3 | 82 + static/freebsd/man3/sincos.3 | 80 + static/freebsd/man3/sinh.3 | 75 + static/freebsd/man3/sinpi.3 | 94 + static/freebsd/man3/skein.3 | 264 + static/freebsd/man3/sleep.3 | 80 + static/freebsd/man3/snl.3 3.html | 395 + static/freebsd/man3/snmp_bridge.3 | 117 + static/freebsd/man3/snmp_hast.3 | 68 + static/freebsd/man3/snmp_hostres.3 | 86 + static/freebsd/man3/snmp_lm75.3 | 58 + static/freebsd/man3/snmp_mibII.3 | 368 + static/freebsd/man3/snmp_netgraph.3 | 434 + static/freebsd/man3/snmp_target.3 | 203 + static/freebsd/man3/snmp_usm.3 | 131 + static/freebsd/man3/snmp_vacm.3 | 93 + static/freebsd/man3/snmp_wlan.3 | 159 + static/freebsd/man3/snmpmod.3 | 1184 +++ static/freebsd/man3/sockatmark.3 | 136 + static/freebsd/man3/sourcefilter.3 | 237 + static/freebsd/man3/sqrt.3 | 122 + static/freebsd/man3/ssp.3 | 128 + static/freebsd/man3/stats.3 3.html | 725 ++ static/freebsd/man3/statvfs.3 | 185 + static/freebsd/man3/stdarg.3 3.html | 182 + static/freebsd/man3/stdbit.3 4.html | 136 + static/freebsd/man3/stdc_bit_ceil.3 | 81 + static/freebsd/man3/stdc_bit_floor.3 | 83 + static/freebsd/man3/stdc_bit_width.3 | 104 + static/freebsd/man3/stdc_count_ones.3 | 85 + static/freebsd/man3/stdc_count_zeros.3 | 84 + static/freebsd/man3/stdc_first_leading_one.3 | 93 + static/freebsd/man3/stdc_first_leading_zero.3 | 92 + static/freebsd/man3/stdc_first_trailing_one.3 | 110 + static/freebsd/man3/stdc_first_trailing_zero.3 | 93 + static/freebsd/man3/stdc_has_single_bit.3 | 98 + static/freebsd/man3/stdc_leading_ones.3 | 86 + static/freebsd/man3/stdc_leading_zeros.3 | 86 + static/freebsd/man3/stdc_trailing_ones.3 | 86 + static/freebsd/man3/stdc_trailing_zeros.3 | 87 + static/freebsd/man3/stdckdint.3 3.html | 106 + static/freebsd/man3/stdio.3 | 329 + static/freebsd/man3/strcasecmp.3 | 115 + static/freebsd/man3/strcat.3 | 171 + static/freebsd/man3/strchr.3 | 122 + static/freebsd/man3/strcmp.3 | 107 + static/freebsd/man3/strcoll.3 | 80 + static/freebsd/man3/strcpy.3 | 230 + static/freebsd/man3/strdup.3 | 127 + static/freebsd/man3/strerror.3 | 244 + static/freebsd/man3/strfmon.3 | 226 + static/freebsd/man3/strftime.3 | 287 + static/freebsd/man3/string.3 | 155 + static/freebsd/man3/stringlist.3 | 125 + static/freebsd/man3/strlcpy.3 | 194 + static/freebsd/man3/strlen.3 | 103 + static/freebsd/man3/strmode.3 | 139 + static/freebsd/man3/strpbrk.3 | 74 + static/freebsd/man3/strptime.3 | 185 + static/freebsd/man3/strsep.3 | 132 + static/freebsd/man3/strspn.3 | 108 + static/freebsd/man3/strstr.3 | 158 + static/freebsd/man3/strtod.3 | 195 + static/freebsd/man3/strtofflags.3 | 92 + static/freebsd/man3/strtok.3 | 173 + static/freebsd/man3/strtol.3 | 221 + static/freebsd/man3/strtonum.3 | 194 + static/freebsd/man3/strtoul.3 | 223 + static/freebsd/man3/strverscmp.3 | 56 + static/freebsd/man3/strxfrm.3 | 105 + static/freebsd/man3/swab.3 | 64 + static/freebsd/man3/sysconf.3 | 275 + static/freebsd/man3/sysctl.3 | 971 ++ static/freebsd/man3/sysdecode.3 | 82 + .../freebsd/man3/sysdecode_abi_to_freebsd_errno.3 | 92 + static/freebsd/man3/sysdecode_cap_rights.3 | 66 + static/freebsd/man3/sysdecode_cmsg_type.3 | 50 + static/freebsd/man3/sysdecode_enum.3 | 259 + static/freebsd/man3/sysdecode_fcntl_arg.3 | 117 + static/freebsd/man3/sysdecode_ioctlname.3 | 55 + static/freebsd/man3/sysdecode_kevent.3 | 120 + static/freebsd/man3/sysdecode_mask.3 | 250 + static/freebsd/man3/sysdecode_quotactl_cmd.3 | 88 + static/freebsd/man3/sysdecode_sctp_sinfo_flags.3 | 50 + static/freebsd/man3/sysdecode_sigcode.3 | 78 + static/freebsd/man3/sysdecode_socket_protocol.3 | 49 + static/freebsd/man3/sysdecode_sockopt_name.3 | 56 + static/freebsd/man3/sysdecode_syscallname.3 | 66 + static/freebsd/man3/sysdecode_utrace.3 | 71 + static/freebsd/man3/sysexits.3 3.html | 136 + static/freebsd/man3/syslog.3 | 301 + static/freebsd/man3/system.3 | 110 + static/freebsd/man3/t.3 | 1 + static/freebsd/man3/tan.3 | 80 + static/freebsd/man3/tanh.3 | 84 + static/freebsd/man3/tanpi.3 | 96 + static/freebsd/man3/targetinfo.3 | 1 + static/freebsd/man3/targetname.3 | 1 + static/freebsd/man3/tbl.3 | 349 + static/freebsd/man3/tcgetpgrp.3 | 74 + static/freebsd/man3/tcgetsid.3 | 69 + static/freebsd/man3/tcgetwinsize.3 | 162 + static/freebsd/man3/tcsendbreak.3 | 176 + static/freebsd/man3/tcsetattr.3 | 338 + static/freebsd/man3/tcsetpgrp.3 | 91 + static/freebsd/man3/tcsetsid.3 | 89 + static/freebsd/man3/teken.3 | 247 + static/freebsd/man3/tgmath.3 3.html | 262 + static/freebsd/man3/thrd_create.3 | 258 + static/freebsd/man3/time.3 | 139 + static/freebsd/man3/time2posix.3 | 172 + static/freebsd/man3/timeradd.3 4.html | 152 + static/freebsd/man3/times.3 | 142 + static/freebsd/man3/timespec_get.3 | 97 + static/freebsd/man3/timespec_getres.3 | 51 + static/freebsd/man3/timingsafe_bcmp.3 | 90 + static/freebsd/man3/tmpnam.3 | 245 + static/freebsd/man3/toascii.3 | 66 + static/freebsd/man3/tolower.3 | 95 + static/freebsd/man3/toupper.3 | 95 + static/freebsd/man3/towlower.3 | 63 + static/freebsd/man3/towupper.3 | 63 + static/freebsd/man3/tree.3 3.html | 818 ++ static/freebsd/man3/trimdomain.3 | 86 + static/freebsd/man3/trunc.3 | 78 + static/freebsd/man3/tsearch.3 | 229 + static/freebsd/man3/ttyname.3 | 137 + static/freebsd/man3/tzset.3 | 331 + static/freebsd/man3/ualarm.3 | 94 + static/freebsd/man3/ucontext.3 | 121 + static/freebsd/man3/uexterr_gettext.3 | 71 + static/freebsd/man3/ufs_disk_close.3 | 120 + static/freebsd/man3/ulimit.3 | 96 + static/freebsd/man3/ulog_login.3 | 97 + static/freebsd/man3/uname.3 | 114 + static/freebsd/man3/ungetc.3 | 95 + static/freebsd/man3/ungetwc.3 | 92 + static/freebsd/man3/unvis.3 | 270 + static/freebsd/man3/usbhid.3 | 246 + static/freebsd/man3/uselocale.3 | 57 + static/freebsd/man3/username.3 | 1 + static/freebsd/man3/usleep.3 | 77 + static/freebsd/man3/utempter_add_record.3 | 103 + static/freebsd/man3/utime.3 | 91 + static/freebsd/man3/uucplock.3 | 190 + static/freebsd/man3/uuid.3 | 185 + static/freebsd/man3/valloc.3 | 72 + static/freebsd/man3/veriexec.3 | 63 + static/freebsd/man3/vgl.3 | 469 + static/freebsd/man3/vis.3 | 558 ++ static/freebsd/man3/wcrtomb.3 | 121 + static/freebsd/man3/wcscoll.3 | 105 + static/freebsd/man3/wcsftime.3 | 64 + static/freebsd/man3/wcsrtombs.3 | 132 + static/freebsd/man3/wcstod.3 | 71 + static/freebsd/man3/wcstok.3 | 131 + static/freebsd/man3/wcstol.3 | 92 + static/freebsd/man3/wcstombs.3 | 87 + static/freebsd/man3/wcswidth.3 | 60 + static/freebsd/man3/wcsxfrm.3 | 119 + static/freebsd/man3/wctomb.3 | 105 + static/freebsd/man3/wctrans.3 | 120 + static/freebsd/man3/wctype.3 | 117 + static/freebsd/man3/wcwidth.3 | 85 + static/freebsd/man3/wind.3 | 326 + static/freebsd/man3/wind_profile.3 | 1 + static/freebsd/man3/wind_punycode_label_toascii.3 | 1 + static/freebsd/man3/wind_stringprep.3 | 1 + static/freebsd/man3/wind_ucs2read.3 | 1 + static/freebsd/man3/wind_ucs2utf8.3 | 1 + static/freebsd/man3/wind_ucs2utf8_length.3 | 1 + static/freebsd/man3/wind_ucs2write.3 | 1 + static/freebsd/man3/wind_ucs4utf8.3 | 1 + static/freebsd/man3/wind_ucs4utf8_length.3 | 1 + static/freebsd/man3/wind_utf8ucs2.3 | 1 + static/freebsd/man3/wind_utf8ucs2_length.3 | 1 + static/freebsd/man3/wind_utf8ucs4.3 | 1 + static/freebsd/man3/wind_utf8ucs4_length.3 | 1 + static/freebsd/man3/wmemchr.3 | 174 + static/freebsd/man3/wordexp.3 | 208 + static/freebsd/man3/wprintf.3 | 615 ++ static/freebsd/man3/ws.3 | 1 + static/freebsd/man3/wscanf.3 | 476 + static/freebsd/man3/xdr.3 | 845 ++ static/freebsd/man3/xlocale.3 | 275 + static/freebsd/man3/xo_attr.3 | 70 + static/freebsd/man3/xo_create.3 | 77 + static/freebsd/man3/xo_emit.3 | 116 + static/freebsd/man3/xo_emit_err.3 | 82 + static/freebsd/man3/xo_emit_f.3 | 121 + static/freebsd/man3/xo_emit_field.3 | 113 + static/freebsd/man3/xo_err.3 | 84 + static/freebsd/man3/xo_error.3 | 51 + static/freebsd/man3/xo_finish.3 | 49 + static/freebsd/man3/xo_flush.3 | 45 + static/freebsd/man3/xo_message.3 | 78 + static/freebsd/man3/xo_no_setlocale.3 | 53 + static/freebsd/man3/xo_open_container.3 | 198 + static/freebsd/man3/xo_open_list.3 | 168 + static/freebsd/man3/xo_open_marker.3 | 115 + static/freebsd/man3/xo_parse_args.3 | 80 + static/freebsd/man3/xo_set_allocator.3 | 64 + static/freebsd/man3/xo_set_flags.3 | 149 + static/freebsd/man3/xo_set_info.3 | 112 + static/freebsd/man3/xo_set_options.3 | 41 + static/freebsd/man3/xo_set_style.3 | 63 + static/freebsd/man3/xo_set_syslog_enterprise_id.3 | 46 + static/freebsd/man3/xo_set_version.3 | 44 + static/freebsd/man3/xo_set_writer.3 | 66 + static/freebsd/man3/xo_syslog.3 | 89 + static/freebsd/man3/zlib.3 | 149 + static/freebsd/man3/zopen.3 | 106 + static/freebsd/man3lua/intro.3lua 4.html | 46 + static/freebsd/man4/1.4 | 14 + static/freebsd/man4/2.4 | 1 + static/freebsd/man4/3.4 | 14 + static/freebsd/man4/4.4 | 14 + static/freebsd/man4/5.4 | 14 + static/freebsd/man4/6.4 | 20 + static/freebsd/man4/7.4 | 23 + static/freebsd/man4/8.4 | 14 + static/freebsd/man4/9.4 | 1 + static/freebsd/man4/CPU_ELAN.4 | 157 + static/freebsd/man4/ChangeLog-1.4 | 231 + static/freebsd/man4/aac.4 3.html | 196 + static/freebsd/man4/aacraid.4 3.html | 111 + static/freebsd/man4/abtn.4 | 113 + static/freebsd/man4/acpi.4 3.html | 552 ++ static/freebsd/man4/acpi_asus.4 4.html | 132 + static/freebsd/man4/acpi_asus_wmi.4 3.html | 83 + static/freebsd/man4/acpi_battery.4 3.html | 318 + static/freebsd/man4/acpi_dock.4 4.html | 52 + static/freebsd/man4/acpi_fujitsu.4 3.html | 159 + static/freebsd/man4/acpi_ged.4 4.html | 54 + static/freebsd/man4/acpi_hp.4 3.html | 284 + static/freebsd/man4/acpi_ibm.4 3.html | 455 + static/freebsd/man4/acpi_panasonic.4 3.html | 152 + static/freebsd/man4/acpi_rapidstart.4 3.html | 75 + static/freebsd/man4/acpi_sony.4 4.html | 73 + static/freebsd/man4/acpi_thermal.4 3.html | 129 + static/freebsd/man4/acpi_toshiba.4 3.html | 110 + static/freebsd/man4/acpi_video.4 3.html | 85 + static/freebsd/man4/acpi_wmi.4 3.html | 124 + static/freebsd/man4/ada.4 3.html | 151 + static/freebsd/man4/adb.4 | 67 + static/freebsd/man4/adm6996fc.4 4.html | 66 + static/freebsd/man4/ads111x.4 3.html | 223 + static/freebsd/man4/ae.4 3.html | 134 + static/freebsd/man4/aesni.4 3.html | 87 + static/freebsd/man4/age.4 3.html | 146 + static/freebsd/man4/agp.4 3.html | 171 + static/freebsd/man4/ahc.4 3.html | 372 + static/freebsd/man4/ahci.4 3.html | 189 + static/freebsd/man4/ahd.4 3.html | 192 + static/freebsd/man4/aibs.4 3.html | 139 + static/freebsd/man4/aio.4 3.html | 174 + static/freebsd/man4/akbd.4 | 102 + static/freebsd/man4/alc.4 3.html | 148 + static/freebsd/man4/ale.4 3.html | 134 + static/freebsd/man4/alpm.4 4.html | 57 + static/freebsd/man4/altq.4 3.html | 141 + static/freebsd/man4/am335x_dmtpps.4 | 161 + static/freebsd/man4/amdpm.4 4.html | 62 + static/freebsd/man4/amdsbwd.4 4.html | 71 + static/freebsd/man4/amdsmb.4 4.html | 52 + static/freebsd/man4/amdsmn.4 4.html | 52 + static/freebsd/man4/amdtemp.4 3.html | 95 + static/freebsd/man4/ams.4 | 84 + static/freebsd/man4/aout.4 3.html | 106 + static/freebsd/man4/apic.4 3.html | 64 + static/freebsd/man4/apm.4 | 159 + static/freebsd/man4/appleir.4 3.html | 103 + static/freebsd/man4/aq.4 4.html | 60 + static/freebsd/man4/ar40xx.4 | 35 + static/freebsd/man4/arcmsr.4 3.html | 129 + static/freebsd/man4/armv8crypto.4 | 81 + static/freebsd/man4/arp.4 | 237 + static/freebsd/man4/arswitch.4 3.html | 71 + static/freebsd/man4/asmc.4 3.html | 164 + static/freebsd/man4/at45d.4 3.html | 150 + static/freebsd/man4/ata.4 3.html | 225 + static/freebsd/man4/atf-test-case.4 | 336 + static/freebsd/man4/ath.4 3.html | 233 + static/freebsd/man4/ath10k.4 3.html | 94 + static/freebsd/man4/ath_hal.4 3.html | 334 + static/freebsd/man4/atkbd.4 3.html | 205 + static/freebsd/man4/atkbdc.4 3.html | 100 + static/freebsd/man4/atopcase.4 4.html | 120 + static/freebsd/man4/atp.4 3.html | 118 + static/freebsd/man4/atrtc.4 4.html | 52 + static/freebsd/man4/attimer.4 3.html | 67 + static/freebsd/man4/audit.4 3.html | 122 + static/freebsd/man4/auditpipe.4 3.html | 219 + static/freebsd/man4/aue.4 3.html | 143 + static/freebsd/man4/autofs.4 3.html | 109 + static/freebsd/man4/aw_gpio.4 4.html | 97 + static/freebsd/man4/aw_mmc.4 4.html | 73 + static/freebsd/man4/aw_rtc.4 4.html | 56 + static/freebsd/man4/aw_sid.4 4.html | 67 + static/freebsd/man4/aw_spi.4 4.html | 50 + static/freebsd/man4/aw_syscon.4 4.html | 49 + static/freebsd/man4/axe.4 3.html | 183 + static/freebsd/man4/axge.4 3.html | 125 + static/freebsd/man4/axp.4 3.html | 154 + static/freebsd/man4/bce.4 3.html | 364 + static/freebsd/man4/bcm283x_pwm.4 | 108 + static/freebsd/man4/bcm5974.4 4.html | 79 + static/freebsd/man4/bcma.4 4.html | 62 + static/freebsd/man4/bfe.4 3.html | 96 + static/freebsd/man4/bge.4 3.html | 220 + static/freebsd/man4/bhnd.4 4.html | 63 + static/freebsd/man4/bhnd_chipc.4 3.html | 69 + static/freebsd/man4/bhnd_pmu.4 4.html | 57 + static/freebsd/man4/bhndb.4 4.html | 63 + static/freebsd/man4/bhndb_pci.4 3.html | 63 + static/freebsd/man4/bhyve.4 4.html | 64 + static/freebsd/man4/blackhole.4 3.html | 105 + static/freebsd/man4/bnxt.4 3.html | 211 + static/freebsd/man4/bnxt_re.4 3.html | 80 + static/freebsd/man4/boottrace.4 3.html | 187 + static/freebsd/man4/bpf.4 3.html | 895 ++ static/freebsd/man4/break4.4 | 6 + static/freebsd/man4/break5.4 | 11 + static/freebsd/man4/bridge.4 3.html | 523 ++ static/freebsd/man4/bsd4.4 | 104 + static/freebsd/man4/bwi.4 3.html | 209 + static/freebsd/man4/bwn.4 3.html | 209 + static/freebsd/man4/bxe.4 3.html | 284 + static/freebsd/man4/bytgpio.4 3.html | 52 + static/freebsd/man4/capsicum.4 3.html | 155 + static/freebsd/man4/cardbus.4 4.html | 49 + static/freebsd/man4/carp.4 3.html | 187 + static/freebsd/man4/cas.4 3.html | 93 + static/freebsd/man4/cc_cdg.4 3.html | 129 + static/freebsd/man4/cc_chd.4 3.html | 101 + static/freebsd/man4/cc_cubic.4 3.html | 94 + static/freebsd/man4/cc_dctcp.4 3.html | 113 + static/freebsd/man4/cc_hd.4 3.html | 98 + static/freebsd/man4/cc_htcp.4 3.html | 108 + static/freebsd/man4/cc_newreno.4 3.html | 140 + static/freebsd/man4/cc_vegas.4 3.html | 111 + static/freebsd/man4/ccd.4 3.html | 173 + static/freebsd/man4/ccr.4 3.html | 91 + static/freebsd/man4/cd.4 3.html | 294 + static/freebsd/man4/cd9660.4 4.html | 67 + static/freebsd/man4/cdce.4 3.html | 163 + static/freebsd/man4/cdceem.4 3.html | 100 + static/freebsd/man4/cfi.4 3.html | 80 + static/freebsd/man4/cfiscsi.4 3.html | 88 + static/freebsd/man4/cfumass.4 3.html | 105 + static/freebsd/man4/cgem.4 3.html | 262 + static/freebsd/man4/ch.4 3.html | 278 + static/freebsd/man4/chromebook_platform.4 4.html | 57 + static/freebsd/man4/chvgpio.4 3.html | 57 + static/freebsd/man4/ciss.4 3.html | 164 + static/freebsd/man4/coretemp.4 4.html | 58 + static/freebsd/man4/cp2112.4 3.html | 68 + static/freebsd/man4/cpuctl.4 3.html | 168 + static/freebsd/man4/cpufreq.4 3.html | 279 + static/freebsd/man4/crypto.4 3.html | 275 + static/freebsd/man4/csh.4 | 173 + static/freebsd/man4/ctl.4 3.html | 205 + static/freebsd/man4/cuda.4 | 77 + static/freebsd/man4/cue.4 3.html | 96 + static/freebsd/man4/cxgb.4 3.html | 109 + static/freebsd/man4/cxgbe.4 3.html | 382 + static/freebsd/man4/cxgbev.4 3.html | 244 + static/freebsd/man4/cyapa.4 3.html | 216 + static/freebsd/man4/da.4 3.html | 199 + static/freebsd/man4/dc.4 3.html | 286 + static/freebsd/man4/dcons.4 3.html | 93 + static/freebsd/man4/dcons_crom.4 4.html | 55 + static/freebsd/man4/ddb.4 3.html | 1449 +++ static/freebsd/man4/devcfg.4 | 93 + static/freebsd/man4/devctl.4 3.html | 146 + static/freebsd/man4/devfs.4 3.html | 99 + static/freebsd/man4/disc.4 3.html | 51 + static/freebsd/man4/disk.4 3.html | 177 + static/freebsd/man4/divert.4 3.html | 178 + static/freebsd/man4/dpms.4 3.html | 44 + static/freebsd/man4/ds1307.4 3.html | 103 + static/freebsd/man4/ds3231.4 3.html | 116 + static/freebsd/man4/dtrace_audit.4 3.html | 139 + .../freebsd/man4/dtrace_callout_execute.4 3.html | 85 + static/freebsd/man4/dtrace_cam.4 4.html | 69 + static/freebsd/man4/dtrace_dtrace.4 3.html | 228 + static/freebsd/man4/dtrace_fbt.4 3.html | 352 + static/freebsd/man4/dtrace_io.4 3.html | 109 + static/freebsd/man4/dtrace_ip.4 3.html | 265 + static/freebsd/man4/dtrace_kinst.4 3.html | 89 + static/freebsd/man4/dtrace_lockstat.4 3.html | 254 + static/freebsd/man4/dtrace_pid.4 3.html | 142 + static/freebsd/man4/dtrace_priv.4 4.html | 80 + static/freebsd/man4/dtrace_proc.4 3.html | 213 + static/freebsd/man4/dtrace_profile.4 3.html | 177 + static/freebsd/man4/dtrace_sched.4 3.html | 206 + static/freebsd/man4/dtrace_sctp.4 3.html | 247 + static/freebsd/man4/dtrace_tcp.4 3.html | 482 + static/freebsd/man4/dtrace_udp.4 3.html | 199 + static/freebsd/man4/dtrace_udplite.4 3.html | 204 + static/freebsd/man4/dtrace_vfs.4 3.html | 108 + static/freebsd/man4/dtsec.4 | 117 + static/freebsd/man4/dummymbuf.4 3.html | 182 + static/freebsd/man4/dummynet.4 3.html | 81 + static/freebsd/man4/dwcotg.4 | 29 + static/freebsd/man4/e6000sw.4 3.html | 59 + static/freebsd/man4/e6060sw.4 3.html | 78 + static/freebsd/man4/edsc.4 3.html | 69 + static/freebsd/man4/efidev.4 3.html | 142 + static/freebsd/man4/ehci.4 3.html | 81 + static/freebsd/man4/em.4 3.html | 243 + static/freebsd/man4/ena.4 3.html | 564 ++ static/freebsd/man4/enc.4 3.html | 115 + static/freebsd/man4/enetc.4 | 69 + static/freebsd/man4/enic.4 4.html | 73 + static/freebsd/man4/epair.4 3.html | 109 + static/freebsd/man4/est.4 3.html | 116 + static/freebsd/man4/et.4 3.html | 132 + static/freebsd/man4/etherswitch.4 3.html | 59 + static/freebsd/man4/eventtimers.4 3.html | 130 + static/freebsd/man4/example.4 | 105 + static/freebsd/man4/exca.4 4.html | 30 + static/freebsd/man4/expected.status.4 | 1 + static/freebsd/man4/expected.stderr.4 | 0 static/freebsd/man4/expected.stdout.4 | 1 + static/freebsd/man4/ext2fs.4 3.html | 74 + static/freebsd/man4/fd.4 4.html | 76 + static/freebsd/man4/fdc.4 3.html | 313 + static/freebsd/man4/fdescfs.4 3.html | 141 + static/freebsd/man4/fdt.4 3.html | 176 + static/freebsd/man4/fdt_pinctrl.4 3.html | 111 + static/freebsd/man4/fdtbus.4 3.html | 67 + static/freebsd/man4/felix.4 | 83 + static/freebsd/man4/ffclock.4 3.html | 113 + static/freebsd/man4/ffs.4 3.html | 273 + static/freebsd/man4/filemon.4 3.html | 205 + static/freebsd/man4/firewire.4 3.html | 91 + static/freebsd/man4/ftgpio.4 4.html | 51 + static/freebsd/man4/ftwd.4 3.html | 52 + static/freebsd/man4/full.4 3.html | 43 + static/freebsd/man4/fusefs.4 3.html | 104 + static/freebsd/man4/fwe.4 3.html | 72 + static/freebsd/man4/fwip.4 3.html | 70 + static/freebsd/man4/fwohci.4 3.html | 102 + static/freebsd/man4/fxp.4 3.html | 170 + static/freebsd/man4/gdb.4 3.html | 515 ++ static/freebsd/man4/gem.4 3.html | 86 + static/freebsd/man4/genet.4 3.html | 142 + static/freebsd/man4/genetlink.4 3.html | 147 + static/freebsd/man4/geneve.4 3.html | 279 + static/freebsd/man4/geom.4 3.html | 375 + static/freebsd/man4/geom_linux_lvm.4 3.html | 76 + static/freebsd/man4/geom_uzip.4 3.html | 149 + static/freebsd/man4/geom_zero.4 3.html | 144 + static/freebsd/man4/gif.4 3.html | 239 + static/freebsd/man4/glxiic.4 | 105 + static/freebsd/man4/glxsb.4 | 96 + static/freebsd/man4/gpio.4 3.html | 148 + static/freebsd/man4/gpioiic.4 3.html | 134 + static/freebsd/man4/gpiokeys.4 3.html | 111 + static/freebsd/man4/gpioled.4 3.html | 140 + static/freebsd/man4/gpioths.4 3.html | 143 + static/freebsd/man4/gre.4 3.html | 215 + static/freebsd/man4/gve.4 3.html | 345 + static/freebsd/man4/h_ertt.4 3.html | 121 + static/freebsd/man4/hconf.4 3.html | 79 + static/freebsd/man4/hcons.4 3.html | 88 + static/freebsd/man4/hgame.4 3.html | 111 + static/freebsd/man4/hidbus.4 3.html | 78 + static/freebsd/man4/hidquirk.4 3.html | 120 + static/freebsd/man4/hidraw.4 3.html | 239 + static/freebsd/man4/hkbd.4 3.html | 174 + static/freebsd/man4/hms.4 4.html | 94 + static/freebsd/man4/hmt.4 3.html | 73 + static/freebsd/man4/hpen.4 4.html | 99 + static/freebsd/man4/hpet.4 3.html | 90 + static/freebsd/man4/hpt27xx.4 3.html | 80 + static/freebsd/man4/hptiop.4 3.html | 100 + static/freebsd/man4/hptmv.4 3.html | 80 + static/freebsd/man4/hptnr.4 4.html | 74 + static/freebsd/man4/hptrr.4 3.html | 105 + static/freebsd/man4/hsctrl.4 4.html | 88 + static/freebsd/man4/htu21.4 3.html | 106 + static/freebsd/man4/hv_kvp.4 3.html | 72 + static/freebsd/man4/hv_netvsc.4 3.html | 64 + static/freebsd/man4/hv_storvsc.4 3.html | 68 + static/freebsd/man4/hv_utils.4 3.html | 65 + static/freebsd/man4/hv_vmbus.4 3.html | 75 + static/freebsd/man4/hv_vss.4 3.html | 348 + static/freebsd/man4/hwpmc.4 3.html | 755 ++ static/freebsd/man4/hwpstate_intel.4 3.html | 92 + static/freebsd/man4/hwt.4 3.html | 156 + static/freebsd/man4/i2ctinyusb.4 4.html | 69 + static/freebsd/man4/iavf.4 3.html | 310 + static/freebsd/man4/ice.4 3.html | 969 ++ static/freebsd/man4/ichsmb.4 4.html | 47 + static/freebsd/man4/ichwd.4 3.html | 77 + static/freebsd/man4/icmp.4 3.html | 477 + static/freebsd/man4/icmp6.4 3.html | 398 + static/freebsd/man4/ida.4 3.html | 85 + static/freebsd/man4/ietp.4 4.html | 76 + static/freebsd/man4/if_ipsec.4 3.html | 102 + static/freebsd/man4/if_ntb.4 4.html | 75 + static/freebsd/man4/iflib.4 3.html | 242 + static/freebsd/man4/ifmib.4 3.html | 139 + static/freebsd/man4/ig4.4 3.html | 72 + static/freebsd/man4/igc.4 3.html | 134 + static/freebsd/man4/igmp.4 3.html | 117 + static/freebsd/man4/iic.4 3.html | 171 + static/freebsd/man4/iic_gpiomux.4 4.html | 63 + static/freebsd/man4/iicbb.4 4.html | 53 + static/freebsd/man4/iicbus.4 3.html | 174 + static/freebsd/man4/iichid.4 3.html | 84 + static/freebsd/man4/iicmux.4 3.html | 113 + static/freebsd/man4/iicsmb.4 4.html | 49 + static/freebsd/man4/imcsmb.4 3.html | 108 + static/freebsd/man4/imx6_ahci.4 | 63 + static/freebsd/man4/imx6_snvs.4 | 76 + static/freebsd/man4/imx_spi.4 | 88 + static/freebsd/man4/imx_wdog.4 | 110 + static/freebsd/man4/inet.4 3.html | 271 + static/freebsd/man4/inet6.4 3.html | 301 + static/freebsd/man4/intpm.4 4.html | 75 + static/freebsd/man4/intro.4 3.html | 164 + static/freebsd/man4/io.4 3.html | 95 + static/freebsd/man4/ioat.4 4.html | 297 + static/freebsd/man4/ip.4 3.html | 581 ++ static/freebsd/man4/ip17x.4 4.html | 56 + static/freebsd/man4/ip6.4 3.html | 559 ++ static/freebsd/man4/ipf.4 | 252 + static/freebsd/man4/ipfilter.4 | 239 + static/freebsd/man4/ipfirewall.4 3.html | 112 + static/freebsd/man4/ipheth.4 3.html | 158 + static/freebsd/man4/ipl.4 | 80 + static/freebsd/man4/ipmi.4 3.html | 200 + static/freebsd/man4/ipnat.4 | 95 + static/freebsd/man4/ips.4 3.html | 201 + static/freebsd/man4/ipsec.4 3.html | 423 + static/freebsd/man4/ipv6.4 | 522 ++ static/freebsd/man4/ipw.4 4.html | 137 + static/freebsd/man4/ipwfw.4 4.html | 66 + static/freebsd/man4/irdma.4 3.html | 253 + static/freebsd/man4/isci.4 4.html | 87 + static/freebsd/man4/iscsi.4 3.html | 94 + static/freebsd/man4/iser.4 3.html | 79 + static/freebsd/man4/isl.4 3.html | 132 + static/freebsd/man4/ismt.4 4.html | 51 + static/freebsd/man4/isp.4 3.html | 266 + static/freebsd/man4/ispfw.4 4.html | 53 + static/freebsd/man4/itwd.4 4.html | 57 + static/freebsd/man4/iwi.4 3.html | 146 + static/freebsd/man4/iwifw.4 4.html | 66 + static/freebsd/man4/iwlwifi.4 3.html | 208 + static/freebsd/man4/iwlwififw.4 3.html | 9490 ++++++++++++++++++++ static/freebsd/man4/iwm.4 4.html | 161 + static/freebsd/man4/iwmfw.4 4.html | 71 + static/freebsd/man4/iwn.4 4.html | 187 + static/freebsd/man4/iwnfw.4 4.html | 83 + static/freebsd/man4/iwx.4 3.html | 131 + static/freebsd/man4/ix.4 3.html | 205 + static/freebsd/man4/ixl.4 3.html | 261 + static/freebsd/man4/jedec_dimm.4 3.html | 193 + static/freebsd/man4/jme.4 3.html | 168 + static/freebsd/man4/kbdmux.4 4.html | 63 + static/freebsd/man4/kcov.4 3.html | 172 + static/freebsd/man4/keyboard.4 3.html | 149 + static/freebsd/man4/kld.4 3.html | 121 + static/freebsd/man4/ksyms.4 3.html | 114 + static/freebsd/man4/ksz8995ma.4 4.html | 67 + static/freebsd/man4/ktls.4 3.html | 192 + static/freebsd/man4/ktr.4 3.html | 161 + static/freebsd/man4/kue.4 4.html | 113 + static/freebsd/man4/kvmclock.4 3.html | 76 + static/freebsd/man4/lagg.4 3.html | 198 + static/freebsd/man4/led.4 4.html | 179 + static/freebsd/man4/lge.4 3.html | 125 + static/freebsd/man4/lindebugfs.4 3.html | 76 + static/freebsd/man4/linprocfs.4 3.html | 164 + static/freebsd/man4/linsysfs.4 4.html | 95 + static/freebsd/man4/linux.4 3.html | 152 + static/freebsd/man4/linuxkpi.4 4.html | 44 + static/freebsd/man4/linuxkpi_wlan.4 3.html | 112 + static/freebsd/man4/liquidio.4 3.html | 117 + static/freebsd/man4/llan.4 | 59 + static/freebsd/man4/lm75.4 3.html | 144 + static/freebsd/man4/lo.4 3.html | 69 + static/freebsd/man4/longrun.4 | 65 + static/freebsd/man4/lp.4 3.html | 231 + static/freebsd/man4/lpbb.4 4.html | 77 + static/freebsd/man4/lpt.4 3.html | 81 + static/freebsd/man4/ltc430x.4 3.html | 117 + static/freebsd/man4/mac.4 3.html | 287 + static/freebsd/man4/mac_biba.4 3.html | 197 + static/freebsd/man4/mac_bsdextended.4 3.html | 111 + static/freebsd/man4/mac_ddb.4 3.html | 80 + static/freebsd/man4/mac_do.4 3.html | 380 + static/freebsd/man4/mac_ifoff.4 3.html | 88 + static/freebsd/man4/mac_ipacl.4 3.html | 148 + static/freebsd/man4/mac_lomac.4 3.html | 177 + static/freebsd/man4/mac_mls.4 3.html | 212 + static/freebsd/man4/mac_none.4 4.html | 79 + static/freebsd/man4/mac_ntpd.4 3.html | 96 + static/freebsd/man4/mac_partition.4 3.html | 95 + static/freebsd/man4/mac_portacl.4 3.html | 144 + static/freebsd/man4/mac_priority.4 3.html | 101 + static/freebsd/man4/mac_seeotheruids.4 3.html | 93 + static/freebsd/man4/mac_stub.4 3.html | 81 + static/freebsd/man4/mac_test.4 3.html | 82 + static/freebsd/man4/malo.4 3.html | 112 + .../freebsd/man4/man4.aarch64/armv8crypto.4 3.html | 63 + static/freebsd/man4/man4.aarch64/enetc.4 3.html | 63 + static/freebsd/man4/man4.aarch64/felix.4 3.html | 83 + static/freebsd/man4/man4.aarch64/rk_gpio.4 3.html | 54 + static/freebsd/man4/man4.aarch64/rk_grf.4 3.html | 50 + .../freebsd/man4/man4.aarch64/rk_grf_gpio.4 3.html | 53 + static/freebsd/man4/man4.aarch64/rk_i2c.4 3.html | 55 + .../freebsd/man4/man4.aarch64/rk_pinctrl.4 3.html | 55 + .../freebsd/man4/man4.arm/am335x_dmtpps.4 3.html | 133 + static/freebsd/man4/man4.arm/ar40xx.4 3.html | 55 + static/freebsd/man4/man4.arm/bcm283x_pwm.4 3.html | 95 + static/freebsd/man4/man4.arm/devcfg.4 3.html | 84 + static/freebsd/man4/man4.arm/dwcotg.4 3.html | 47 + static/freebsd/man4/man4.arm/imx6_ahci.4 3.html | 48 + static/freebsd/man4/man4.arm/imx6_snvs.4 3.html | 57 + static/freebsd/man4/man4.arm/imx_spi.4 3.html | 69 + static/freebsd/man4/man4.arm/imx_wdog.4 3.html | 77 + static/freebsd/man4/man4.arm/mge.4 3.html | 121 + static/freebsd/man4/man4.arm/ti_adc.4 3.html | 115 + static/freebsd/man4/man4.i386/CPU_ELAN.4 3.html | 102 + static/freebsd/man4/man4.i386/apm.4 3.html | 187 + static/freebsd/man4/man4.i386/glxiic.4 3.html | 89 + static/freebsd/man4/man4.i386/glxsb.4 3.html | 76 + static/freebsd/man4/man4.i386/longrun.4 3.html | 106 + static/freebsd/man4/man4.i386/npx.4 3.html | 72 + static/freebsd/man4/man4.i386/pae.4 3.html | 88 + static/freebsd/man4/man4.i386/pbio.4 3.html | 136 + static/freebsd/man4/man4.i386/pnp.4 3.html | 66 + static/freebsd/man4/man4.i386/pnpbios.4 3.html | 67 + static/freebsd/man4/man4.i386/sbni.4 3.html | 113 + static/freebsd/man4/man4.i386/smapi.4 3.html | 92 + static/freebsd/man4/man4.i386/vpd.4 3.html | 69 + static/freebsd/man4/man4.powerpc/abtn.4 3.html | 79 + static/freebsd/man4/man4.powerpc/adb.4 3.html | 55 + static/freebsd/man4/man4.powerpc/akbd.4 3.html | 84 + static/freebsd/man4/man4.powerpc/ams.4 3.html | 74 + static/freebsd/man4/man4.powerpc/cuda.4 3.html | 65 + static/freebsd/man4/man4.powerpc/dtsec.4 3.html | 100 + static/freebsd/man4/man4.powerpc/llan.4 3.html | 50 + .../freebsd/man4/man4.powerpc/ofw_console.4 3.html | 98 + static/freebsd/man4/man4.powerpc/pmu.4 3.html | 98 + .../man4/man4.powerpc/powermac_nvram.4 3.html | 55 + static/freebsd/man4/man4.powerpc/smu.4 3.html | 113 + static/freebsd/man4/man4.powerpc/snd_ai2s.4 3.html | 75 + .../freebsd/man4/man4.powerpc/snd_davbus.4 3.html | 68 + static/freebsd/man4/man4.powerpc/tsec.4 3.html | 122 + static/freebsd/man4/max44009.4 4.html | 71 + static/freebsd/man4/mca.4 3.html | 229 + static/freebsd/man4/md.4 3.html | 143 + static/freebsd/man4/mdio.4 4.html | 59 + static/freebsd/man4/me.4 4.html | 65 + static/freebsd/man4/mem.4 3.html | 270 + static/freebsd/man4/mfi.4 3.html | 120 + static/freebsd/man4/mgb.4 4.html | 70 + static/freebsd/man4/mge.4 | 158 + static/freebsd/man4/miibus.4 3.html | 163 + static/freebsd/man4/mld.4 3.html | 90 + static/freebsd/man4/mlx.4 3.html | 305 + static/freebsd/man4/mlx4en.4 4.html | 85 + static/freebsd/man4/mlx4ib.4 3.html | 85 + static/freebsd/man4/mlx5en.4 3.html | 115 + static/freebsd/man4/mlx5ib.4 3.html | 100 + static/freebsd/man4/mlx5io.4 3.html | 153 + static/freebsd/man4/mmc.4 4.html | 46 + static/freebsd/man4/mmcsd.4 4.html | 43 + static/freebsd/man4/mod_cc.4 3.html | 182 + static/freebsd/man4/mos.4 3.html | 89 + static/freebsd/man4/mouse.4 3.html | 292 + static/freebsd/man4/mpi3mr.4 3.html | 78 + static/freebsd/man4/mpr.4 3.html | 351 + static/freebsd/man4/mps.4 3.html | 335 + static/freebsd/man4/mpt.4 3.html | 115 + static/freebsd/man4/mqueuefs.4 3.html | 82 + static/freebsd/man4/mrsas.4 3.html | 365 + static/freebsd/man4/msdosfs.4 3.html | 73 + static/freebsd/man4/msk.4 3.html | 177 + static/freebsd/man4/mt7915.4 3.html | 84 + static/freebsd/man4/mt7921.4 3.html | 84 + static/freebsd/man4/mtio.4 3.html | 381 + static/freebsd/man4/mtkswitch.4 4.html | 58 + static/freebsd/man4/mtw.4 4.html | 94 + static/freebsd/man4/muge.4 4.html | 58 + static/freebsd/man4/multicast.4 3.html | 750 ++ static/freebsd/man4/mvs.4 3.html | 141 + static/freebsd/man4/mwl.4 3.html | 151 + static/freebsd/man4/mwlfw.4 4.html | 42 + static/freebsd/man4/mx25l.4 4.html | 152 + static/freebsd/man4/mxge.4 3.html | 151 + static/freebsd/man4/my.4 4.html | 74 + static/freebsd/man4/nctgpio.4 4.html | 69 + static/freebsd/man4/ncthwm.4 4.html | 71 + static/freebsd/man4/nda.4 3.html | 164 + static/freebsd/man4/net80211.4 3.html | 987 ++ static/freebsd/man4/netdump.4 3.html | 124 + static/freebsd/man4/netfpga10g_nf10bmac.4 4.html | 56 + static/freebsd/man4/netgdb.4 3.html | 121 + static/freebsd/man4/netgraph.4 3.html | 1023 +++ static/freebsd/man4/netintro.4 3.html | 334 + static/freebsd/man4/netlink.4 3.html | 307 + static/freebsd/man4/netmap.4 3.html | 1015 +++ static/freebsd/man4/nfe.4 3.html | 157 + static/freebsd/man4/nfslockd.4 4.html | 54 + static/freebsd/man4/nfsmb.4 4.html | 49 + static/freebsd/man4/nfsv4.4 | 509 ++ static/freebsd/man4/ng_UI.4 4.html | 75 + static/freebsd/man4/ng_async.4 3.html | 139 + static/freebsd/man4/ng_bluetooth.4 3.html | 97 + static/freebsd/man4/ng_bpf.4 3.html | 211 + static/freebsd/man4/ng_bridge.4 3.html | 230 + static/freebsd/man4/ng_btsocket.4 3.html | 313 + static/freebsd/man4/ng_car.4 3.html | 218 + static/freebsd/man4/ng_checksum.4 3.html | 138 + static/freebsd/man4/ng_cisco.4 3.html | 152 + static/freebsd/man4/ng_deflate.4 3.html | 143 + static/freebsd/man4/ng_device.4 3.html | 84 + static/freebsd/man4/ng_echo.4 4.html | 64 + static/freebsd/man4/ng_eiface.4 3.html | 96 + static/freebsd/man4/ng_etf.4 3.html | 146 + static/freebsd/man4/ng_ether.4 3.html | 193 + static/freebsd/man4/ng_ether_echo.4 4.html | 67 + static/freebsd/man4/ng_frame_relay.4 3.html | 84 + static/freebsd/man4/ng_gif.4 3.html | 92 + static/freebsd/man4/ng_gif_demux.4 4.html | 84 + static/freebsd/man4/ng_hci.4 3.html | 370 + static/freebsd/man4/ng_hole.4 3.html | 82 + static/freebsd/man4/ng_hub.4 3.html | 74 + static/freebsd/man4/ng_iface.4 3.html | 137 + static/freebsd/man4/ng_ip_input.4 4.html | 67 + static/freebsd/man4/ng_ipfw.4 3.html | 89 + static/freebsd/man4/ng_ksocket.4 3.html | 187 + static/freebsd/man4/ng_l2cap.4 3.html | 378 + static/freebsd/man4/ng_l2tp.4 3.html | 246 + static/freebsd/man4/ng_lmi.4 3.html | 120 + static/freebsd/man4/ng_macfilter.4 3.html | 209 + static/freebsd/man4/ng_mppc.4 3.html | 155 + static/freebsd/man4/ng_nat.4 3.html | 348 + static/freebsd/man4/ng_netflow.4 3.html | 304 + static/freebsd/man4/ng_one2many.4 3.html | 227 + static/freebsd/man4/ng_patch.4 3.html | 237 + static/freebsd/man4/ng_pipe.4 3.html | 211 + static/freebsd/man4/ng_ppp.4 3.html | 358 + static/freebsd/man4/ng_pppoe.4 3.html | 533 ++ static/freebsd/man4/ng_pptpgre.4 3.html | 179 + static/freebsd/man4/ng_pred1.4 3.html | 138 + static/freebsd/man4/ng_rfc1490.4 3.html | 121 + static/freebsd/man4/ng_socket.4 3.html | 134 + static/freebsd/man4/ng_source.4 3.html | 281 + static/freebsd/man4/ng_split.4 4.html | 77 + static/freebsd/man4/ng_tag.4 3.html | 260 + static/freebsd/man4/ng_tcpmss.4 3.html | 129 + static/freebsd/man4/ng_tee.4 3.html | 101 + static/freebsd/man4/ng_tty.4 3.html | 114 + static/freebsd/man4/ng_ubt.4 3.html | 127 + static/freebsd/man4/ng_vjc.4 3.html | 179 + static/freebsd/man4/ng_vlan.4 3.html | 127 + static/freebsd/man4/ng_vlan_rotate.4 3.html | 209 + static/freebsd/man4/nge.4 3.html | 168 + static/freebsd/man4/nlsysevent.4 3.html | 184 + static/freebsd/man4/nmdm.4 4.html | 72 + static/freebsd/man4/npx.4 | 110 + static/freebsd/man4/ntb.4 3.html | 76 + static/freebsd/man4/ntb_hw_amd.4 3.html | 83 + static/freebsd/man4/ntb_hw_intel.4 3.html | 89 + static/freebsd/man4/ntb_hw_plx.4 3.html | 109 + static/freebsd/man4/ntb_transport.4 3.html | 93 + static/freebsd/man4/null.4 4.html | 43 + static/freebsd/man4/nullfs.4 4.html | 67 + static/freebsd/man4/numa.4 3.html | 121 + static/freebsd/man4/nvd.4 3.html | 82 + static/freebsd/man4/nvdimm.4 3.html | 87 + static/freebsd/man4/nvme.4 3.html | 220 + static/freebsd/man4/nvmf.4 3.html | 93 + static/freebsd/man4/nvmf_che.4 3.html | 88 + static/freebsd/man4/nvmf_tcp.4 3.html | 69 + static/freebsd/man4/nvmft.4 3.html | 76 + static/freebsd/man4/nvram.4 3.html | 78 + static/freebsd/man4/oce.4 3.html | 100 + static/freebsd/man4/ocs_fc.4 3.html | 168 + static/freebsd/man4/ofw_console.4 | 110 + static/freebsd/man4/ohci.4 4.html | 74 + static/freebsd/man4/openfirm.4 3.html | 178 + static/freebsd/man4/openzfs-2.4 | 48 + static/freebsd/man4/orm.4 4.html | 46 + static/freebsd/man4/ossl.4 4.html | 82 + static/freebsd/man4/otus.4 3.html | 162 + static/freebsd/man4/otusfw.4 4.html | 44 + static/freebsd/man4/ovpn.4 4.html | 40 + static/freebsd/man4/ow.4 4.html | 51 + static/freebsd/man4/ow_temp.4 3.html | 140 + static/freebsd/man4/owc.4 3.html | 94 + static/freebsd/man4/p.4 | 1 + static/freebsd/man4/p9fs.4 3.html | 103 + static/freebsd/man4/padlock.4 3.html | 74 + static/freebsd/man4/pae.4 | 125 + static/freebsd/man4/pass.4 3.html | 167 + static/freebsd/man4/pbio.4 | 185 + static/freebsd/man4/pca954x.4 3.html | 94 + static/freebsd/man4/pccbb.4 4.html | 121 + static/freebsd/man4/pcf.4 4.html | 64 + static/freebsd/man4/pcf8574.4 3.html | 79 + static/freebsd/man4/pcf8591.4 4.html | 95 + static/freebsd/man4/pchtherm.4 3.html | 103 + static/freebsd/man4/pci.4 3.html | 580 ++ static/freebsd/man4/pcib.4 3.html | 35 + static/freebsd/man4/pcm.4 3.html | 541 ++ static/freebsd/man4/pf.4 3.html | 1055 +++ static/freebsd/man4/pflog.4 3.html | 91 + static/freebsd/man4/pflow.4 3.html | 93 + static/freebsd/man4/pfsync.4 3.html | 208 + static/freebsd/man4/pim.4 3.html | 177 + static/freebsd/man4/pms.4 3.html | 86 + static/freebsd/man4/pmu.4 | 114 + static/freebsd/man4/pnfs.4 | 228 + static/freebsd/man4/pnfsserver.4 | 444 + static/freebsd/man4/pnp.4 | 83 + static/freebsd/man4/pnpbios.4 | 83 + static/freebsd/man4/polling.4 3.html | 184 + static/freebsd/man4/powermac_nvram.4 | 65 + static/freebsd/man4/ppbus.4 3.html | 355 + static/freebsd/man4/ppc.4 3.html | 118 + static/freebsd/man4/ppi.4 4.html | 111 + static/freebsd/man4/procdesc.4 3.html | 61 + static/freebsd/man4/procfs.4 3.html | 266 + static/freebsd/man4/proto.4 3.html | 349 + static/freebsd/man4/ps4dshock.4 3.html | 95 + static/freebsd/man4/psm.4 3.html | 663 ++ static/freebsd/man4/pst.4 3.html | 63 + static/freebsd/man4/pt.4 3.html | 69 + static/freebsd/man4/ptnet.4 3.html | 98 + static/freebsd/man4/pts.4 3.html | 116 + static/freebsd/man4/pty.4 3.html | 79 + static/freebsd/man4/puc.4 4.html | 192 + static/freebsd/man4/pvscsi.4 3.html | 83 + static/freebsd/man4/pwmc.4 3.html | 176 + static/freebsd/man4/qat.4 3.html | 174 + static/freebsd/man4/qat_c2xxx.4 3.html | 82 + static/freebsd/man4/qlnxe.4 3.html | 73 + static/freebsd/man4/qlxgb.4 3.html | 73 + static/freebsd/man4/qlxgbe.4 3.html | 73 + static/freebsd/man4/qlxge.4 3.html | 72 + static/freebsd/man4/ral.4 3.html | 616 ++ static/freebsd/man4/random.4 3.html | 203 + static/freebsd/man4/rccgpio.4 4.html | 54 + static/freebsd/man4/rctl.4 3.html | 65 + static/freebsd/man4/re.4 3.html | 217 + static/freebsd/man4/return6.4 | 2 + static/freebsd/man4/return7.4 | 5 + static/freebsd/man4/rge.4 3.html | 162 + static/freebsd/man4/rgephy.4 3.html | 72 + static/freebsd/man4/rights.4 3.html | 411 + static/freebsd/man4/rk_gpio.4 | 60 + static/freebsd/man4/rk_grf.4 | 57 + static/freebsd/man4/rk_grf_gpio.4 | 42 + static/freebsd/man4/rk_i2c.4 | 62 + static/freebsd/man4/rk_pinctrl.4 | 59 + static/freebsd/man4/rl.4 3.html | 221 + static/freebsd/man4/rndtest.4 4.html | 53 + static/freebsd/man4/route.4 3.html | 246 + static/freebsd/man4/rsu.4 3.html | 183 + static/freebsd/man4/rsufw.4 4.html | 44 + static/freebsd/man4/rtnetlink.4 3.html | 540 ++ static/freebsd/man4/rtsx.4 3.html | 125 + static/freebsd/man4/rtw88.4 3.html | 101 + static/freebsd/man4/rtw89.4 3.html | 102 + static/freebsd/man4/rtwn.4 3.html | 239 + static/freebsd/man4/rtwn_pci.4 4.html | 56 + static/freebsd/man4/rtwn_usb.4 3.html | 347 + static/freebsd/man4/rtwnfw.4 3.html | 87 + static/freebsd/man4/rue.4 3.html | 125 + static/freebsd/man4/rum.4 3.html | 281 + static/freebsd/man4/run.4 3.html | 233 + static/freebsd/man4/runfw.4 4.html | 45 + static/freebsd/man4/sa.4 3.html | 425 + static/freebsd/man4/safe.4 3.html | 118 + static/freebsd/man4/safexcel.4 4.html | 71 + static/freebsd/man4/sbni.4 | 130 + static/freebsd/man4/sbp.4 3.html | 82 + static/freebsd/man4/sbp_targ.4 4.html | 77 + static/freebsd/man4/scc.4 4.html | 60 + static/freebsd/man4/sched_4bsd.4 3.html | 66 + static/freebsd/man4/sched_ule.4 4.html | 63 + static/freebsd/man4/screen.4 3.html | 238 + static/freebsd/man4/scsi.4 3.html | 436 + static/freebsd/man4/sctp.4 3.html | 497 + static/freebsd/man4/sdhci.4 3.html | 74 + static/freebsd/man4/sem.4 3.html | 60 + static/freebsd/man4/send.4 3.html | 203 + static/freebsd/man4/ses.4 3.html | 128 + static/freebsd/man4/sfxge.4 3.html | 155 + static/freebsd/man4/sg.4 4.html | 76 + static/freebsd/man4/sge.4 3.html | 95 + static/freebsd/man4/siba.4 3.html | 75 + static/freebsd/man4/siftr.4 3.html | 717 ++ static/freebsd/man4/siis.4 3.html | 116 + static/freebsd/man4/simplebus.4 4.html | 65 + static/freebsd/man4/sis.4 3.html | 170 + static/freebsd/man4/sk.4 3.html | 182 + static/freebsd/man4/smapi.4 | 151 + static/freebsd/man4/smartpqi.4 3.html | 198 + static/freebsd/man4/smb.4 3.html | 185 + static/freebsd/man4/smbfs.4 3.html | 74 + static/freebsd/man4/smbios.4 4.html | 59 + static/freebsd/man4/smbus.4 3.html | 72 + static/freebsd/man4/smp.4 3.html | 148 + static/freebsd/man4/smsc.4 4.html | 78 + static/freebsd/man4/smu.4 | 124 + static/freebsd/man4/snd_ai2s.4 | 86 + static/freebsd/man4/snd_als4000.4 4.html | 63 + static/freebsd/man4/snd_atiixp.4 3.html | 90 + static/freebsd/man4/snd_cmi.4 4.html | 66 + static/freebsd/man4/snd_cs4281.4 4.html | 64 + static/freebsd/man4/snd_csa.4 4.html | 76 + static/freebsd/man4/snd_davbus.4 | 78 + static/freebsd/man4/snd_dummy.4 4.html | 67 + static/freebsd/man4/snd_emu10k1.4 3.html | 78 + static/freebsd/man4/snd_emu10kx.4 3.html | 267 + static/freebsd/man4/snd_envy24.4 4.html | 71 + static/freebsd/man4/snd_envy24ht.4 4.html | 83 + static/freebsd/man4/snd_es137x.4 3.html | 105 + static/freebsd/man4/snd_fm801.4 4.html | 71 + static/freebsd/man4/snd_hda.4 3.html | 532 ++ static/freebsd/man4/snd_hdsp.4 3.html | 179 + static/freebsd/man4/snd_hdspe.4 3.html | 181 + static/freebsd/man4/snd_ich.4 4.html | 84 + static/freebsd/man4/snd_maestro3.4 3.html | 86 + static/freebsd/man4/snd_neomagic.4 4.html | 65 + static/freebsd/man4/snd_solo.4 4.html | 57 + static/freebsd/man4/snd_spicds.4 3.html | 70 + static/freebsd/man4/snd_t4dwave.4 3.html | 66 + static/freebsd/man4/snd_uaudio.4 3.html | 149 + static/freebsd/man4/snd_via8233.4 4.html | 92 + static/freebsd/man4/snd_via82c686.4 3.html | 63 + static/freebsd/man4/snd_vibes.4 4.html | 63 + static/freebsd/man4/sndstat.4 3.html | 382 + static/freebsd/man4/snp.4 3.html | 91 + static/freebsd/man4/spigen.4 3.html | 186 + static/freebsd/man4/spkr.4 3.html | 191 + static/freebsd/man4/spl.4 | 183 + static/freebsd/man4/splash.4 3.html | 260 + static/freebsd/man4/ste.4 3.html | 154 + static/freebsd/man4/stf.4 3.html | 226 + static/freebsd/man4/stge.4 3.html | 142 + static/freebsd/man4/sume.4 3.html | 77 + static/freebsd/man4/superio.4 3.html | 104 + static/freebsd/man4/sym.4 3.html | 389 + static/freebsd/man4/syncache.4 3.html | 268 + static/freebsd/man4/syncer.4 3.html | 86 + static/freebsd/man4/syscons.4 3.html | 519 ++ static/freebsd/man4/sysmouse.4 3.html | 371 + static/freebsd/man4/t.4 | 1 + static/freebsd/man4/tap.4 3.html | 201 + static/freebsd/man4/tarfs.4 3.html | 125 + static/freebsd/man4/targ.4 3.html | 112 + static/freebsd/man4/tcp.4 3.html | 837 ++ static/freebsd/man4/tcp_bbr.4 3.html | 145 + static/freebsd/man4/tcp_rack.4 3.html | 139 + static/freebsd/man4/tdfx.4 3.html | 104 + static/freebsd/man4/termios.4 3.html | 1050 +++ static/freebsd/man4/textdump.4 3.html | 149 + static/freebsd/man4/thunderbolt.4 4.html | 34 + static/freebsd/man4/ti.4 3.html | 317 + static/freebsd/man4/ti_adc.4 | 126 + static/freebsd/man4/timecounters.4 3.html | 97 + static/freebsd/man4/tmpfs.4 3.html | 158 + static/freebsd/man4/tpm.4 4.html | 104 + static/freebsd/man4/tsec.4 | 157 + static/freebsd/man4/tslog.4 3.html | 116 + static/freebsd/man4/tty.4 3.html | 337 + static/freebsd/man4/tun.4 3.html | 225 + static/freebsd/man4/tws.4 3.html | 104 + static/freebsd/man4/u2f.4 4.html | 87 + static/freebsd/man4/u3g.4 3.html | 149 + static/freebsd/man4/uark.4 3.html | 97 + static/freebsd/man4/uart.4 3.html | 345 + static/freebsd/man4/uath.4 3.html | 247 + static/freebsd/man4/ubsa.4 4.html | 101 + static/freebsd/man4/ubser.4 4.html | 70 + static/freebsd/man4/ubtbcmfw.4 3.html | 85 + static/freebsd/man4/uchcom.4 4.html | 104 + static/freebsd/man4/ucom.4 3.html | 130 + static/freebsd/man4/ucycom.4 4.html | 91 + static/freebsd/man4/udav.4 4.html | 82 + static/freebsd/man4/udbc.4 3.html | 128 + static/freebsd/man4/udbp.4 3.html | 128 + static/freebsd/man4/udl.4 4.html | 72 + static/freebsd/man4/udp.4 3.html | 128 + static/freebsd/man4/udplite.4 3.html | 86 + static/freebsd/man4/uep.4 3.html | 81 + static/freebsd/man4/ufintek.4 4.html | 105 + static/freebsd/man4/ufoma.4 3.html | 117 + static/freebsd/man4/ufshci.4 3.html | 217 + static/freebsd/man4/uftdi.4 4.html | 234 + static/freebsd/man4/ugen.4 3.html | 258 + static/freebsd/man4/ugold.4 3.html | 56 + static/freebsd/man4/uhci.4 4.html | 70 + static/freebsd/man4/uhid.4 3.html | 139 + static/freebsd/man4/uhso.4 3.html | 118 + static/freebsd/man4/uipaq.4 4.html | 92 + static/freebsd/man4/ukbd.4 3.html | 174 + static/freebsd/man4/uled.4 4.html | 81 + static/freebsd/man4/ulpt.4 3.html | 88 + static/freebsd/man4/umass.4 3.html | 110 + static/freebsd/man4/umb.4 3.html | 95 + static/freebsd/man4/umcs.4 4.html | 99 + static/freebsd/man4/umct.4 4.html | 98 + static/freebsd/man4/umodem.4 3.html | 104 + static/freebsd/man4/umoscom.4 4.html | 73 + static/freebsd/man4/ums.4 4.html | 107 + static/freebsd/man4/unionfs.4 3.html | 75 + static/freebsd/man4/unix.4 3.html | 302 + static/freebsd/man4/upgt.4 3.html | 153 + static/freebsd/man4/uplcom.4 3.html | 155 + static/freebsd/man4/ural.4 3.html | 242 + static/freebsd/man4/ure.4 3.html | 129 + static/freebsd/man4/urio.4 4.html | 101 + static/freebsd/man4/urndis.4 3.html | 89 + static/freebsd/man4/urtw.4 3.html | 153 + static/freebsd/man4/usb.4 4.html | 154 + static/freebsd/man4/usb_quirk.4 3.html | 255 + static/freebsd/man4/usb_template.4 3.html | 142 + static/freebsd/man4/usbhid.4 3.html | 77 + static/freebsd/man4/usfs.4 3.html | 55 + static/freebsd/man4/uslcom.4 3.html | 165 + static/freebsd/man4/uvisor.4 4.html | 117 + static/freebsd/man4/uvscom.4 4.html | 89 + static/freebsd/man4/vale.4 3.html | 94 + static/freebsd/man4/veriexec.4 4.html | 88 + static/freebsd/man4/vga.4 3.html | 153 + static/freebsd/man4/vge.4 3.html | 173 + static/freebsd/man4/viapm.4 3.html | 68 + static/freebsd/man4/viawd.4 3.html | 60 + static/freebsd/man4/virtio.4 3.html | 105 + static/freebsd/man4/virtio_balloon.4 4.html | 52 + static/freebsd/man4/virtio_blk.4 3.html | 87 + static/freebsd/man4/virtio_console.4 4.html | 57 + static/freebsd/man4/virtio_gpu.4 4.html | 42 + static/freebsd/man4/virtio_random.4 4.html | 49 + static/freebsd/man4/virtio_scsi.4 4.html | 82 + static/freebsd/man4/vkbd.4 3.html | 128 + static/freebsd/man4/vlan.4 3.html | 117 + static/freebsd/man4/vmci.4 3.html | 76 + static/freebsd/man4/vmd.4 4.html | 71 + static/freebsd/man4/vmgenc.4 3.html | 73 + static/freebsd/man4/vmm.4 3.html | 155 + static/freebsd/man4/vmx.4 3.html | 135 + static/freebsd/man4/vpd.4 | 88 + static/freebsd/man4/vr.4 3.html | 165 + static/freebsd/man4/vt.4 3.html | 465 + static/freebsd/man4/vte.4 3.html | 127 + static/freebsd/man4/vtnet.4 3.html | 305 + static/freebsd/man4/vxlan.4 3.html | 180 + static/freebsd/man4/watchdog.4 3.html | 186 + static/freebsd/man4/wbwd.4 3.html | 107 + static/freebsd/man4/wdatwd.4 3.html | 80 + static/freebsd/man4/wg.4 3.html | 202 + static/freebsd/man4/witness.4 3.html | 155 + static/freebsd/man4/wlan.4 3.html | 163 + static/freebsd/man4/wlan_acl.4 4.html | 46 + static/freebsd/man4/wlan_amrr.4 4.html | 50 + static/freebsd/man4/wlan_ccmp.4 4.html | 54 + static/freebsd/man4/wlan_gcmp.4 3.html | 55 + static/freebsd/man4/wlan_tkip.4 4.html | 54 + static/freebsd/man4/wlan_wep.4 3.html | 51 + static/freebsd/man4/wlan_xauth.4 3.html | 52 + static/freebsd/man4/wmt.4 4.html | 72 + static/freebsd/man4/wpi.4 3.html | 180 + static/freebsd/man4/wsp.4 3.html | 179 + static/freebsd/man4/xb360gp.4 4.html | 89 + static/freebsd/man4/xdma.4 3.html | 65 + static/freebsd/man4/xen.4 3.html | 126 + static/freebsd/man4/xhci.4 3.html | 84 + static/freebsd/man4/xl.4 3.html | 194 + static/freebsd/man4/xnb.4 3.html | 111 + static/freebsd/man4/xpt.4 4.html | 104 + static/freebsd/man4/zero.4 3.html | 44 + static/freebsd/man4/zfs.4 | 3097 +++++++ static/freebsd/man4/zol-0.6.4 | 10 + static/freebsd/man4/zyd.4 4.html | 166 + static/freebsd/man5/1.5 | 28 + static/freebsd/man5/2.5 | 0 static/freebsd/man5/4.5 | 1 + static/freebsd/man5/5.5 | 5 + static/freebsd/man5/6.5 | 14 + static/freebsd/man5/7.5 | 14 + static/freebsd/man5/8.5 | 14 + static/freebsd/man5/9.5 | 1 + static/freebsd/man5/a.out.5 3.html | 354 + static/freebsd/man5/acct.5 3.html | 101 + static/freebsd/man5/adduser.conf.5 | 225 + static/freebsd/man5/aliases.5 | 131 + static/freebsd/man5/ar.5 3.html | 240 + static/freebsd/man5/audit.log.5 | 670 ++ static/freebsd/man5/audit_class.5 | 78 + static/freebsd/man5/audit_control.5 | 314 + static/freebsd/man5/audit_event.5 | 82 + static/freebsd/man5/audit_user.5 | 118 + static/freebsd/man5/audit_warn.5 | 74 + static/freebsd/man5/auditdistd.conf.5 | 364 + static/freebsd/man5/auto_master.5 | 376 + static/freebsd/man5/bhyve_config.5 | 782 ++ static/freebsd/man5/big5.5 | 59 + static/freebsd/man5/blacklistd.conf.5 | 242 + static/freebsd/man5/blocklistd.conf.5 | 237 + static/freebsd/man5/bluetooth.device.conf.5 3.html | 133 + static/freebsd/man5/bluetooth.hosts.5 4.html | 55 + static/freebsd/man5/bluetooth.protocols.5 4.html | 56 + static/freebsd/man5/boot.config.5 3.html | 83 + static/freebsd/man5/bootparams.5 | 85 + static/freebsd/man5/bootptab.5 | 428 + static/freebsd/man5/config.5 | 652 ++ static/freebsd/man5/core.5 3.html | 153 + static/freebsd/man5/cpio.5 | 389 + static/freebsd/man5/crontab.5 | 405 + static/freebsd/man5/ctf.5 | 1244 +++ static/freebsd/man5/ctl.conf.5 | 831 ++ static/freebsd/man5/devd.conf.5 | 923 ++ static/freebsd/man5/devfs.conf.5 3.html | 101 + static/freebsd/man5/devfs.rules.5 3.html | 102 + static/freebsd/man5/device.hints.5 3.html | 122 + static/freebsd/man5/dhclient.conf.5 | 562 ++ static/freebsd/man5/dhclient.leases.5 | 93 + static/freebsd/man5/dhcp-options.5 | 611 ++ static/freebsd/man5/dir.5 3.html | 141 + static/freebsd/man5/disktab.5 3.html | 333 + static/freebsd/man5/dot.k5identity.5 | 1 + static/freebsd/man5/dot.k5login.5 | 1 + static/freebsd/man5/editrc.5 | 326 + static/freebsd/man5/elf.5 3.html | 1172 +++ static/freebsd/man5/ethers.5 4.html | 67 + static/freebsd/man5/euc.5 | 131 + static/freebsd/man5/eui64.5 4.html | 60 + static/freebsd/man5/example.5 | 25 + static/freebsd/man5/expected.status.5 | 1 + static/freebsd/man5/expected.stderr.5 | 0 static/freebsd/man5/expected.stdout.5 | 1 + static/freebsd/man5/exports.5 | 692 ++ static/freebsd/man5/fbtab.5 4.html | 55 + static/freebsd/man5/finger.conf.5 | 89 + static/freebsd/man5/fips_config.5 | 245 + static/freebsd/man5/forward.5 4.html | 65 + static/freebsd/man5/freebsd-update.conf.5 3.html | 198 + static/freebsd/man5/fs.5 3.html | 336 + static/freebsd/man5/fstab.5 3.html | 272 + static/freebsd/man5/ftpusers.5 | 37 + static/freebsd/man5/gb18030.5 | 76 + static/freebsd/man5/gb2312.5 | 55 + static/freebsd/man5/gbk.5 | 61 + static/freebsd/man5/gettytab.5 | 515 ++ static/freebsd/man5/group.5 3.html | 103 + static/freebsd/man5/hast.conf.5 | 439 + static/freebsd/man5/hcsecd.conf.5 | 130 + static/freebsd/man5/hesiod.conf.5 4.html | 59 + static/freebsd/man5/hostapd.conf.5 | 210 + static/freebsd/man5/hosts.5 3.html | 66 + static/freebsd/man5/hosts.equiv.5 3.html | 92 + static/freebsd/man5/hosts.lpd.5 4.html | 42 + static/freebsd/man5/hosts_access.5 | 399 + static/freebsd/man5/hosts_options.5 | 172 + static/freebsd/man5/intro.5 4.html | 52 + static/freebsd/man5/iovctl.conf.5 | 172 + static/freebsd/man5/ipf.5 | 1660 ++++ static/freebsd/man5/ipfilter.5 | 9 + static/freebsd/man5/ipmon.5 | 222 + static/freebsd/man5/ipnat.5 | 718 ++ static/freebsd/man5/ippool.5 | 313 + static/freebsd/man5/ipscan.5 | 50 + static/freebsd/man5/ipsend.5 | 400 + static/freebsd/man5/ipv6.5 | 14 + static/freebsd/man5/iscsi.conf.5 | 214 + static/freebsd/man5/jail.conf.5 | 273 + static/freebsd/man5/kbdmap.5 | 333 + static/freebsd/man5/krb5.conf.5 | 575 ++ static/freebsd/man5/libarchive-formats.5 | 478 + static/freebsd/man5/libmap.conf.5 3.html | 153 + static/freebsd/man5/link.5 3.html | 493 + static/freebsd/man5/loader.conf.5 | 547 ++ static/freebsd/man5/loader.conf.lua.5 | 75 + static/freebsd/man5/login.access.5 | 66 + static/freebsd/man5/login.conf.5 | 504 ++ static/freebsd/man5/mac.conf.5 | 111 + static/freebsd/man5/mailer.conf.5 3.html | 127 + static/freebsd/man5/make.conf.5 3.html | 468 + static/freebsd/man5/man.conf.5 | 132 + static/freebsd/man5/mandoc.db.5 | 228 + static/freebsd/man5/mech.5 | 99 + static/freebsd/man5/moduli.5 3.html | 105 + static/freebsd/man5/motd.5 4.html | 68 + static/freebsd/man5/mount.conf.5 3.html | 185 + static/freebsd/man5/moused.conf.5 | 422 + static/freebsd/man5/mskanji.5 | 68 + static/freebsd/man5/mtree.5 | 261 + static/freebsd/man5/netconfig.5 | 131 + static/freebsd/man5/netgroup.5 | 187 + static/freebsd/man5/netid.5 | 89 + static/freebsd/man5/networks.5 4.html | 65 + static/freebsd/man5/newsyslog.conf.5 | 500 ++ static/freebsd/man5/nologin.5 | 93 + static/freebsd/man5/nscd.conf.5 | 153 + static/freebsd/man5/nsmb.conf.5 3.html | 179 + static/freebsd/man5/nsswitch.conf.5 3.html | 306 + static/freebsd/man5/os-release.5 3.html | 115 + static/freebsd/man5/p.5 | 3 + static/freebsd/man5/pam.conf.5 | 226 + static/freebsd/man5/passwd.5 3.html | 282 + static/freebsd/man5/pbm.5 3.html | 78 + static/freebsd/man5/pc.5 | 178 + static/freebsd/man5/periodic.conf.5 3.html | 744 ++ static/freebsd/man5/pf.conf.5 3.html | 3028 +++++++ static/freebsd/man5/pf.os.5 3.html | 168 + static/freebsd/man5/phones.5 4.html | 55 + static/freebsd/man5/pkgconf-personality.5 | 100 + static/freebsd/man5/portindex.5 3.html | 89 + static/freebsd/man5/printcap.5 | 434 + static/freebsd/man5/profile.5 | 72 + static/freebsd/man5/protocols.5 4.html | 67 + static/freebsd/man5/publickey.5 | 40 + static/freebsd/man5/pw.conf.5 | 316 + static/freebsd/man5/quota.user.5 3.html | 80 + static/freebsd/man5/radius.conf.5 | 198 + static/freebsd/man5/rc.conf.5 3.html | 3187 +++++++ static/freebsd/man5/rctl.conf.5 4.html | 59 + static/freebsd/man5/regdomain.5 4.html | 40 + static/freebsd/man5/remote.5 3.html | 148 + static/freebsd/man5/resolver.5 3.html | 218 + static/freebsd/man5/rpc.5 | 57 + static/freebsd/man5/rrenumd.conf.5 | 367 + static/freebsd/man5/rtadvd.conf.5 | 563 ++ static/freebsd/man5/scr_dump.5 | 490 + static/freebsd/man5/services.5 3.html | 77 + static/freebsd/man5/shells.5 4.html | 47 + static/freebsd/man5/src.conf.5 3.html | 1550 ++++ static/freebsd/man5/ssh_config.5 | 2440 +++++ static/freebsd/man5/sshd_config.5 | 2282 +++++ static/freebsd/man5/stab.5 3.html | 163 + static/freebsd/man5/stablerestart.5 | 94 + static/freebsd/man5/style.Makefile.5 3.html | 168 + static/freebsd/man5/style.mdoc.5 3.html | 224 + static/freebsd/man5/sysctl.conf.5 4.html | 85 + static/freebsd/man5/syslog.conf.5 | 629 ++ static/freebsd/man5/tacplus.conf.5 | 126 + static/freebsd/man5/tar.5 | 947 ++ static/freebsd/man5/term.5 | 581 ++ static/freebsd/man5/termcap.5 | 2153 +++++ static/freebsd/man5/ttys.5 | 177 + static/freebsd/man5/tzfile.5 | 523 ++ static/freebsd/man5/unbound.conf.5 | 3239 +++++++ static/freebsd/man5/user_caps.5 | 678 ++ static/freebsd/man5/utf8.5 | 99 + static/freebsd/man5/uuencode.format.5 | 99 + static/freebsd/man5/vdev_id.conf.5 | 258 + static/freebsd/man5/vgrindefs.5 | 167 + static/freebsd/man5/wpa_supplicant.conf.5 | 586 ++ static/freebsd/man5/x509v3_config.5 | 696 ++ static/freebsd/man5/xo_format.5 | 984 ++ static/freebsd/man5/ypldap.conf.5 | 169 + static/freebsd/man5/zol-0.6.5 | 12 + static/freebsd/man6/1.6 | 28 + static/freebsd/man6/2.6 | 1 + static/freebsd/man6/4.6 | 1 + static/freebsd/man6/5.6 | 5 + static/freebsd/man6/6.6 | 0 static/freebsd/man6/7.6 | 14 + static/freebsd/man6/8.6 | 14 + static/freebsd/man6/9.6 | 1 + static/freebsd/man6/banner.6 | 80 + static/freebsd/man6/caesar.6 | 70 + static/freebsd/man6/example.6 | 5 + static/freebsd/man6/expected.status.6 | 1 + static/freebsd/man6/expected.stderr.6 | 1 + static/freebsd/man6/expected.stdout.6 | 0 static/freebsd/man6/factor.6 | 128 + static/freebsd/man6/fortune.6 | 201 + static/freebsd/man6/grdc.6 | 61 + static/freebsd/man6/intro.6 4.html | 49 + static/freebsd/man6/ipv6.6 | 31 + static/freebsd/man6/morse.6 | 210 + static/freebsd/man6/number.6 | 55 + static/freebsd/man6/p.6 | 1 + static/freebsd/man6/pom.6 | 69 + static/freebsd/man6/random.6 | 117 + static/freebsd/man6/t.6 | 8 + static/freebsd/man7/1.7 | 28 + static/freebsd/man7/2.7 | 0 static/freebsd/man7/4.7 | 1 + static/freebsd/man7/5.7 | 6 + static/freebsd/man7/7.7 | 2814 ++++++ static/freebsd/man7/8.7 | 14 + static/freebsd/man7/9.7 | 1 + static/freebsd/man7/EVP_ASYM_CIPHER-RSA.7 | 169 + static/freebsd/man7/EVP_ASYM_CIPHER-SM2.7 | 95 + static/freebsd/man7/EVP_CIPHER-AES.7 | 139 + static/freebsd/man7/EVP_CIPHER-ARIA.7 | 106 + static/freebsd/man7/EVP_CIPHER-BLOWFISH.7 | 98 + static/freebsd/man7/EVP_CIPHER-CAMELLIA.7 | 102 + static/freebsd/man7/EVP_CIPHER-CAST.7 | 98 + static/freebsd/man7/EVP_CIPHER-CHACHA.7 | 94 + static/freebsd/man7/EVP_CIPHER-DES.7 | 127 + static/freebsd/man7/EVP_CIPHER-IDEA.7 | 98 + static/freebsd/man7/EVP_CIPHER-NULL.7 | 119 + static/freebsd/man7/EVP_CIPHER-RC2.7 | 102 + static/freebsd/man7/EVP_CIPHER-RC4.7 | 96 + static/freebsd/man7/EVP_CIPHER-RC5.7 | 100 + static/freebsd/man7/EVP_CIPHER-SEED.7 | 98 + static/freebsd/man7/EVP_CIPHER-SM4.7 | 114 + static/freebsd/man7/EVP_KDF-ARGON2.7 | 239 + static/freebsd/man7/EVP_KDF-HKDF.7 | 221 + static/freebsd/man7/EVP_KDF-HMAC-DRBG.7 | 120 + static/freebsd/man7/EVP_KDF-KB.7 | 248 + static/freebsd/man7/EVP_KDF-KRB5KDF.7 | 165 + static/freebsd/man7/EVP_KDF-PBKDF1.7 | 135 + static/freebsd/man7/EVP_KDF-PBKDF2.7 | 165 + static/freebsd/man7/EVP_KDF-PKCS12KDF.7 | 138 + static/freebsd/man7/EVP_KDF-PVKKDF.7 | 121 + static/freebsd/man7/EVP_KDF-SCRYPT.7 | 202 + static/freebsd/man7/EVP_KDF-SS.7 | 258 + static/freebsd/man7/EVP_KDF-SSHKDF.7 | 234 + static/freebsd/man7/EVP_KDF-TLS13_KDF.7 | 206 + static/freebsd/man7/EVP_KDF-TLS1_PRF.7 | 200 + static/freebsd/man7/EVP_KDF-X942-ASN1.7 | 212 + static/freebsd/man7/EVP_KDF-X942-CONCAT.7 | 91 + static/freebsd/man7/EVP_KDF-X963.7 | 188 + static/freebsd/man7/EVP_KEM-EC.7 | 131 + static/freebsd/man7/EVP_KEM-ML-KEM.7 | 111 + static/freebsd/man7/EVP_KEM-RSA.7 | 125 + static/freebsd/man7/EVP_KEM-X25519.7 | 130 + static/freebsd/man7/EVP_KEYEXCH-DH.7 | 192 + static/freebsd/man7/EVP_KEYEXCH-ECDH.7 | 184 + static/freebsd/man7/EVP_KEYEXCH-X25519.7 | 108 + static/freebsd/man7/EVP_MAC-BLAKE2.7 | 134 + static/freebsd/man7/EVP_MAC-CMAC.7 | 139 + static/freebsd/man7/EVP_MAC-GMAC.7 | 121 + static/freebsd/man7/EVP_MAC-HMAC.7 | 142 + static/freebsd/man7/EVP_MAC-KMAC.7 | 211 + static/freebsd/man7/EVP_MAC-Poly1305.7 | 113 + static/freebsd/man7/EVP_MAC-Siphash.7 | 110 + static/freebsd/man7/EVP_MD-BLAKE2.7 | 121 + static/freebsd/man7/EVP_MD-KECCAK.7 | 99 + static/freebsd/man7/EVP_MD-MD2.7 | 89 + static/freebsd/man7/EVP_MD-MD4.7 | 89 + static/freebsd/man7/EVP_MD-MD5-SHA1.7 | 105 + static/freebsd/man7/EVP_MD-MD5.7 | 89 + static/freebsd/man7/EVP_MD-MDC2.7 | 99 + static/freebsd/man7/EVP_MD-NULL.7 | 93 + static/freebsd/man7/EVP_MD-RIPEMD160.7 | 93 + static/freebsd/man7/EVP_MD-SHA1.7 | 104 + static/freebsd/man7/EVP_MD-SHA2.7 | 121 + static/freebsd/man7/EVP_MD-SHA3.7 | 99 + static/freebsd/man7/EVP_MD-SHAKE.7 | 140 + static/freebsd/man7/EVP_MD-SM3.7 | 89 + static/freebsd/man7/EVP_MD-WHIRLPOOL.7 | 89 + static/freebsd/man7/EVP_MD-common.7 | 105 + static/freebsd/man7/EVP_PKEY-DH.7 | 372 + static/freebsd/man7/EVP_PKEY-DSA.7 | 194 + static/freebsd/man7/EVP_PKEY-EC.7 | 342 + static/freebsd/man7/EVP_PKEY-FFC.7 | 246 + static/freebsd/man7/EVP_PKEY-HMAC.7 | 126 + static/freebsd/man7/EVP_PKEY-ML-DSA.7 | 352 + static/freebsd/man7/EVP_PKEY-ML-KEM.7 | 370 + static/freebsd/man7/EVP_PKEY-RSA.7 | 317 + static/freebsd/man7/EVP_PKEY-SLH-DSA.7 | 199 + static/freebsd/man7/EVP_PKEY-SM2.7 | 151 + static/freebsd/man7/EVP_PKEY-X25519.7 | 164 + static/freebsd/man7/EVP_RAND-CRNG-TEST.7 | 123 + static/freebsd/man7/EVP_RAND-CTR-DRBG.7 | 165 + static/freebsd/man7/EVP_RAND-HASH-DRBG.7 | 189 + static/freebsd/man7/EVP_RAND-HMAC-DRBG.7 | 191 + static/freebsd/man7/EVP_RAND-JITTER.7 | 156 + static/freebsd/man7/EVP_RAND-SEED-SRC.7 | 142 + static/freebsd/man7/EVP_RAND-TEST-RAND.7 | 176 + static/freebsd/man7/EVP_RAND.7 | 332 + static/freebsd/man7/EVP_SIGNATURE-DSA.7 | 171 + static/freebsd/man7/EVP_SIGNATURE-ECDSA.7 | 160 + static/freebsd/man7/EVP_SIGNATURE-ED25519.7 | 232 + static/freebsd/man7/EVP_SIGNATURE-HMAC.7 | 108 + static/freebsd/man7/EVP_SIGNATURE-ML-DSA.7 | 183 + static/freebsd/man7/EVP_SIGNATURE-RSA.7 | 237 + static/freebsd/man7/EVP_SIGNATURE-SLH-DSA.7 | 179 + static/freebsd/man7/OSSL_PROVIDER-FIPS.7 | 606 ++ static/freebsd/man7/OSSL_PROVIDER-base.7 | 282 + static/freebsd/man7/OSSL_PROVIDER-default.7 | 562 ++ static/freebsd/man7/OSSL_PROVIDER-legacy.7 | 158 + static/freebsd/man7/OSSL_PROVIDER-null.7 | 93 + static/freebsd/man7/OSSL_STORE-winstore.7 | 126 + static/freebsd/man7/RAND.7 | 146 + static/freebsd/man7/RSA-PSS.7 | 114 + static/freebsd/man7/X25519.7 | 135 + static/freebsd/man7/alpine-3.7 | 26 + static/freebsd/man7/arch.7 3.html | 967 ++ static/freebsd/man7/ascii.7 3.html | 173 + static/freebsd/man7/bio.7 | 166 + static/freebsd/man7/bsd.snmpmod.mk.7 3.html | 85 + static/freebsd/man7/build.7 3.html | 863 ++ static/freebsd/man7/c.7 3.html | 363 + static/freebsd/man7/clocks.7 3.html | 105 + static/freebsd/man7/crypto.7 3.html | 327 + static/freebsd/man7/ct.7 | 110 + static/freebsd/man7/d.7 3.html | 377 + static/freebsd/man7/des_modes.7 | 220 + static/freebsd/man7/development.7 3.html | 128 + static/freebsd/man7/dracut.zfs.7 | 283 + static/freebsd/man7/editline.7 | 941 ++ static/freebsd/man7/environ.7 3.html | 217 + static/freebsd/man7/eqn.7 | 507 ++ static/freebsd/man7/eval8.7 | 6 + static/freebsd/man7/evp.7 | 162 + static/freebsd/man7/example.7 | 12 + static/freebsd/man7/expected.status.7 | 1 + static/freebsd/man7/expected.stderr.7 | 1 + static/freebsd/man7/expected.stdout.7 | 0 static/freebsd/man7/fips_module.7 | 644 ++ static/freebsd/man7/firewall.7 3.html | 377 + static/freebsd/man7/freebsd-base.7 3.html | 236 + static/freebsd/man7/growfs.7 3.html | 122 + static/freebsd/man7/hier.7 3.html | 823 ++ static/freebsd/man7/hostname.7 3.html | 68 + static/freebsd/man7/intro.7 4.html | 84 + static/freebsd/man7/libxo-csv.7 | 274 + static/freebsd/man7/life_cycle-cipher.7 | 208 + static/freebsd/man7/life_cycle-digest.7 | 187 + static/freebsd/man7/life_cycle-kdf.7 | 144 + static/freebsd/man7/life_cycle-mac.7 | 163 + static/freebsd/man7/life_cycle-pkey.7 | 247 + static/freebsd/man7/life_cycle-rand.7 | 156 + static/freebsd/man7/maclabel.7 3.html | 66 + static/freebsd/man7/man.7 | 672 ++ static/freebsd/man7/mandoc_char.7 | 834 ++ static/freebsd/man7/mdoc.7 | 3293 +++++++ static/freebsd/man7/mitigations.7 3.html | 451 + static/freebsd/man7/mlx5dv.7 | 44 + static/freebsd/man7/named_attribute.7 3.html | 220 + static/freebsd/man7/networking.7 4.html | 110 + static/freebsd/man7/nuageinit.7 | 442 + static/freebsd/man7/openssl-core.h.7 | 109 + static/freebsd/man7/openssl-core_dispatch.h.7 | 107 + static/freebsd/man7/openssl-core_names.h.7 | 105 + static/freebsd/man7/openssl-env.7 | 240 + static/freebsd/man7/openssl-glossary.7 | 262 + static/freebsd/man7/openssl-qlog.7 | 277 + static/freebsd/man7/openssl-quic-concurrency.7 | 319 + static/freebsd/man7/openssl-quic.7 | 793 ++ static/freebsd/man7/openssl-threads.7 | 161 + static/freebsd/man7/openssl_user_macros.7 | 158 + static/freebsd/man7/operator.7 4.html | 110 + static/freebsd/man7/orders.7 3.html | 370 + static/freebsd/man7/ossl-guide-introduction.7 | 163 + .../man7/ossl-guide-libcrypto-introduction.7 | 446 + .../man7/ossl-guide-libraries-introduction.7 | 375 + .../freebsd/man7/ossl-guide-libssl-introduction.7 | 163 + static/freebsd/man7/ossl-guide-migration.7 | 2121 +++++ static/freebsd/man7/ossl-guide-quic-client-block.7 | 464 + .../man7/ossl-guide-quic-client-non-block.7 | 531 ++ static/freebsd/man7/ossl-guide-quic-introduction.7 | 235 + static/freebsd/man7/ossl-guide-quic-multi-stream.7 | 456 + static/freebsd/man7/ossl-guide-quic-server-block.7 | 358 + .../man7/ossl-guide-quic-server-non-block.7 | 450 + static/freebsd/man7/ossl-guide-tls-client-block.7 | 655 ++ .../freebsd/man7/ossl-guide-tls-client-non-block.7 | 438 + static/freebsd/man7/ossl-guide-tls-introduction.7 | 379 + static/freebsd/man7/ossl-guide-tls-server-block.7 | 408 + static/freebsd/man7/ossl_store-file.7 | 116 + static/freebsd/man7/ossl_store.7 | 145 + static/freebsd/man7/p.7 | 1 + static/freebsd/man7/passphrase-encoding.7 | 213 + static/freebsd/man7/pkg.7 | 336 + static/freebsd/man7/pkg.m4.7 | 143 + static/freebsd/man7/ports.7 3.html | 585 ++ static/freebsd/man7/property.7 | 239 + static/freebsd/man7/provider-asym_cipher.7 | 333 + static/freebsd/man7/provider-base.7 | 1033 +++ static/freebsd/man7/provider-cipher.7 | 359 + static/freebsd/man7/provider-decoder.7 | 344 + static/freebsd/man7/provider-digest.7 | 339 + static/freebsd/man7/provider-encoder.7 | 353 + static/freebsd/man7/provider-kdf.7 | 379 + static/freebsd/man7/provider-kem.7 | 307 + static/freebsd/man7/provider-keyexch.7 | 308 + static/freebsd/man7/provider-keymgmt.7 | 555 ++ static/freebsd/man7/provider-mac.7 | 318 + static/freebsd/man7/provider-object.7 | 211 + static/freebsd/man7/provider-rand.7 | 360 + static/freebsd/man7/provider-signature.7 | 716 ++ static/freebsd/man7/provider-skeymgmt.7 | 235 + static/freebsd/man7/provider-storemgmt.7 | 272 + static/freebsd/man7/provider.7 | 325 + static/freebsd/man7/proxy-certificates.7 | 401 + static/freebsd/man7/rdma_cm.7 | 230 + static/freebsd/man7/re_format.7 | 489 + static/freebsd/man7/release.7 3.html | 562 ++ static/freebsd/man7/roff.7 | 2464 +++++ static/freebsd/man7/sdoc.7 3.html | 192 + static/freebsd/man7/security.7 3.html | 725 ++ static/freebsd/man7/simd.7 4.html | 458 + static/freebsd/man7/sizeof.7 3.html | 304 + static/freebsd/man7/sprog.7 3.html | 146 + static/freebsd/man7/stats.7 4.html | 107 + static/freebsd/man7/stdint.7 3.html | 87 + static/freebsd/man7/sticky.7 4.html | 53 + static/freebsd/man7/symlink.7 | 498 + static/freebsd/man7/tbl.7 | 455 + static/freebsd/man7/term.7 | 238 + static/freebsd/man7/tests.7 3.html | 258 + static/freebsd/man7/tracing.7 3.html | 95 + static/freebsd/man7/tuning.7 3.html | 478 + static/freebsd/man7/vdevprops.7 | 273 + static/freebsd/man7/x509.7 | 131 + static/freebsd/man7/xo_options.7 | 156 + static/freebsd/man7/zfsconcepts.7 | 246 + static/freebsd/man7/zfsprops.7 | 2393 +++++ static/freebsd/man7/zol-0.7 | 18 + static/freebsd/man7/zpool-features.7 | 1129 +++ static/freebsd/man7/zpoolconcepts.7 | 556 ++ static/freebsd/man7/zpoolprops.7 | 687 ++ static/freebsd/man8/1.8 | 28 + static/freebsd/man8/2.8 | 0 static/freebsd/man8/4.8 | 0 static/freebsd/man8/5.8 | 14 + static/freebsd/man8/7.8 | 1 + static/freebsd/man8/8.8 | 14 + static/freebsd/man8/9.8 | 1 + static/freebsd/man8/ac.8 | 156 + static/freebsd/man8/accton.8 | 41 + static/freebsd/man8/acpiconf.8 | 119 + static/freebsd/man8/acpidb.8 | 165 + static/freebsd/man8/acpidump.8 | 262 + static/freebsd/man8/adduser.8 | 487 + static/freebsd/man8/adjkerntz.8 | 195 + static/freebsd/man8/apm.8 | 144 + static/freebsd/man8/apmd.8 | 319 + static/freebsd/man8/arp.8 | 194 + static/freebsd/man8/ath3kfw.8 | 92 + static/freebsd/man8/audit.8 | 105 + static/freebsd/man8/auditd.8 | 139 + static/freebsd/man8/auditdistd.8 | 106 + static/freebsd/man8/auditfilterd.8 | 84 + static/freebsd/man8/authpf.8 | 584 ++ static/freebsd/man8/automount.8 | 111 + static/freebsd/man8/automountd.8 | 103 + static/freebsd/man8/autounmountd.8 | 88 + static/freebsd/man8/backlight.8 | 100 + static/freebsd/man8/bcmfw.8 | 105 + static/freebsd/man8/beastie.4th.8 | 175 + static/freebsd/man8/bectl.8 | 529 ++ static/freebsd/man8/beinstall.8 3.html | 107 + static/freebsd/man8/bhyve.8 | 1365 +++ static/freebsd/man8/bhyvectl.8 | 120 + static/freebsd/man8/bhyveload.8 | 213 + static/freebsd/man8/binmiscctl.8 | 331 + static/freebsd/man8/blacklistctl.8 | 135 + static/freebsd/man8/blacklistd.8 | 308 + static/freebsd/man8/blocklistctl.8 | 134 + static/freebsd/man8/blocklistd.8 | 303 + static/freebsd/man8/bluetooth-config.8 | 111 + static/freebsd/man8/boot0cfg.8 | 202 + static/freebsd/man8/boot1.efi.8 | 109 + static/freebsd/man8/boot_i386.8 | 353 + static/freebsd/man8/bootparamd.8 | 74 + static/freebsd/man8/bootpd.8 | 310 + static/freebsd/man8/bootpef.8 | 63 + static/freebsd/man8/bootptest.8 | 76 + static/freebsd/man8/boottrace.8 | 85 + static/freebsd/man8/brand.4th.8 | 126 + static/freebsd/man8/bridge.8 | 95 + static/freebsd/man8/bsdconfig.8 | 254 + static/freebsd/man8/bsdinstall.8 | 769 ++ static/freebsd/man8/bsdlabel.8 | 523 ++ static/freebsd/man8/bthidcontrol.8 | 101 + static/freebsd/man8/bthidd.8 | 132 + static/freebsd/man8/btpand.8 | 239 + static/freebsd/man8/btxld.8 | 96 + static/freebsd/man8/camcontrol.8 | 2986 ++++++ static/freebsd/man8/camdd.8 | 281 + static/freebsd/man8/catman.8 | 374 + static/freebsd/man8/ccdconfig.8 | 216 + static/freebsd/man8/cdboot.8 | 21 + static/freebsd/man8/certctl.8 | 168 + static/freebsd/man8/chat.8 | 644 ++ static/freebsd/man8/check-password.4th.8 | 165 + static/freebsd/man8/check_lft_balance.8 | 68 + static/freebsd/man8/chkgrp.8 | 91 + static/freebsd/man8/chkprintcap.8 | 100 + static/freebsd/man8/chown.8 | 180 + static/freebsd/man8/chroot.8 | 128 + static/freebsd/man8/clear_locks.8 | 49 + static/freebsd/man8/cli.lua.8 | 160 + static/freebsd/man8/clri.8 | 78 + static/freebsd/man8/color.4th.8 | 114 + static/freebsd/man8/color.lua.8 | 130 + static/freebsd/man8/comcontrol.8 | 59 + static/freebsd/man8/comsat.8 | 108 + static/freebsd/man8/config.8 | 277 + static/freebsd/man8/config.lua.8 | 246 + static/freebsd/man8/conscontrol.8 | 115 + static/freebsd/man8/core.lua.8 | 247 + static/freebsd/man8/cpucontrol.8 | 204 + static/freebsd/man8/crash.8 3.html | 125 + static/freebsd/man8/crashinfo.8 | 116 + static/freebsd/man8/cron.8 | 239 + static/freebsd/man8/ctladm.8 | 1169 +++ static/freebsd/man8/ctld.8 | 131 + static/freebsd/man8/ctlstat.8 | 142 + static/freebsd/man8/cxgbetool.8 | 849 ++ static/freebsd/man8/daemon.8 | 301 + static/freebsd/man8/dconschat.8 | 327 + static/freebsd/man8/ddb.8 | 167 + static/freebsd/man8/debug.sh.8 3.html | 150 + static/freebsd/man8/decryptcore.8 | 120 + static/freebsd/man8/delay.4th.8 | 124 + static/freebsd/man8/devctl.8 | 250 + static/freebsd/man8/devd.8 | 172 + static/freebsd/man8/devfs.8 | 388 + static/freebsd/man8/devinfo.8 | 108 + static/freebsd/man8/devmatch.8 | 104 + static/freebsd/man8/dhclient-script.8 | 295 + static/freebsd/man8/dhclient.8 | 211 + static/freebsd/man8/diskinfo.8 | 112 + static/freebsd/man8/diskless.8 3.html | 290 + static/freebsd/man8/dma.8 | 376 + static/freebsd/man8/dmesg.8 | 101 + static/freebsd/man8/drawer.lua.8 | 177 + static/freebsd/man8/dump.8 | 579 ++ static/freebsd/man8/dump_fts.8 | 235 + static/freebsd/man8/dumpcis.8 | 44 + static/freebsd/man8/dumpfs.8 | 114 + static/freebsd/man8/dumpon.8 | 466 + static/freebsd/man8/editmap.8 | 110 + static/freebsd/man8/edquota.8 | 261 + static/freebsd/man8/efibootmgr.8 | 289 + static/freebsd/man8/efidp.8 | 79 + static/freebsd/man8/efitable.8 | 71 + static/freebsd/man8/efivar.8 | 204 + static/freebsd/man8/efiwake.8 | 99 + static/freebsd/man8/etcupdate.8 | 933 ++ static/freebsd/man8/etherswitchcfg.8 | 208 + static/freebsd/man8/example.8 | 10 + static/freebsd/man8/exit2.8 | 6 + static/freebsd/man8/extattrctl.8 | 179 + static/freebsd/man8/fdcontrol.8 | 313 + static/freebsd/man8/fdformat.8 | 208 + static/freebsd/man8/fdisk.8 | 538 ++ static/freebsd/man8/ffsinfo.8 | 144 + static/freebsd/man8/fingerd.8 | 158 + static/freebsd/man8/flowctl.8 | 88 + static/freebsd/man8/freebsd-update.8 | 278 + static/freebsd/man8/fsck.8 | 245 + static/freebsd/man8/fsck.zfs.8 | 79 + static/freebsd/man8/fsck_ffs.8 | 441 + static/freebsd/man8/fsck_msdosfs.8 | 142 + static/freebsd/man8/fsdb.8 | 268 + static/freebsd/man8/fsirand.8 | 115 + static/freebsd/man8/fstyp.8 | 134 + static/freebsd/man8/ftp-proxy.8 | 202 + static/freebsd/man8/ftpd.8 | 503 ++ static/freebsd/man8/fwcontrol.8 | 218 + static/freebsd/man8/fwget.8 | 75 + static/freebsd/man8/gcache.8 | 190 + static/freebsd/man8/gconcat.8 | 229 + static/freebsd/man8/geli.8 | 1289 +++ static/freebsd/man8/geom.8 | 212 + static/freebsd/man8/getfmac.8 | 58 + static/freebsd/man8/getpmac.8 | 57 + static/freebsd/man8/getty.8 | 122 + static/freebsd/man8/gfx.lua.8 | 106 + static/freebsd/man8/ggatec.8 | 196 + static/freebsd/man8/ggated.8 | 172 + static/freebsd/man8/ggatel.8 | 151 + static/freebsd/man8/gjournal.8 | 344 + static/freebsd/man8/glabel.8 | 311 + static/freebsd/man8/gmirror.8 | 454 + static/freebsd/man8/gmountver.8 | 130 + static/freebsd/man8/gmultipath.8 | 375 + static/freebsd/man8/gnop.8 | 211 + static/freebsd/man8/gpart.8 | 1552 ++++ static/freebsd/man8/gpioctl.8 | 168 + static/freebsd/man8/gptboot.8 | 262 + static/freebsd/man8/gptboot.efi.8 | 280 + static/freebsd/man8/gptzfsboot.8 | 190 + static/freebsd/man8/graid.8 | 318 + static/freebsd/man8/graid3.8 | 254 + static/freebsd/man8/growfs.8 | 133 + static/freebsd/man8/gshsec.8 | 130 + static/freebsd/man8/gssd.8 | 112 + static/freebsd/man8/gstat.8 | 137 + static/freebsd/man8/gstripe.8 | 240 + static/freebsd/man8/gunion.8 | 318 + static/freebsd/man8/gvirstor.8 | 297 + static/freebsd/man8/hastctl.8 | 230 + static/freebsd/man8/hastd.8 | 234 + static/freebsd/man8/hccontrol.8 | 216 + static/freebsd/man8/hcsecd.8 | 126 + static/freebsd/man8/hook.lua.8 | 94 + static/freebsd/man8/hostapd.8 | 59 + static/freebsd/man8/hostapd_cli.8 | 110 + static/freebsd/man8/hprop.8 | 130 + static/freebsd/man8/hpropd.8 | 90 + static/freebsd/man8/hv_kvp_daemon.8 | 100 + static/freebsd/man8/hv_vss_daemon.8 | 88 + static/freebsd/man8/i2c.8 | 224 + static/freebsd/man8/iasl.8 | 177 + static/freebsd/man8/ibaddr.8 | 214 + static/freebsd/man8/ibcacheedit.8 | 80 + static/freebsd/man8/ibccconfig.8 | 198 + static/freebsd/man8/ibccquery.8 | 194 + static/freebsd/man8/ibfindnodesusing.8 | 127 + static/freebsd/man8/ibhosts.8 | 184 + static/freebsd/man8/ibidsverify.8 | 80 + static/freebsd/man8/iblinkinfo.8 | 319 + static/freebsd/man8/ibnetdiscover.8 | 399 + static/freebsd/man8/ibnodes.8 | 176 + static/freebsd/man8/ibping.8 | 177 + static/freebsd/man8/ibportstate.8 | 259 + static/freebsd/man8/ibqueryerrors.8 | 339 + static/freebsd/man8/ibroute.8 | 291 + static/freebsd/man8/ibrouters.8 | 184 + static/freebsd/man8/ibstat.8 | 118 + static/freebsd/man8/ibstatus.8 | 73 + static/freebsd/man8/ibswitches.8 | 184 + static/freebsd/man8/ibsysstat.8 | 188 + static/freebsd/man8/ibtracert.8 | 268 + static/freebsd/man8/ifconfig.8 | 3616 ++++++++ static/freebsd/man8/ifmcstat.8 | 84 + static/freebsd/man8/inetd.8 | 949 ++ static/freebsd/man8/infiniband-diags.8 | 452 + static/freebsd/man8/init.8 | 467 + static/freebsd/man8/intro.8 4.html | 52 + static/freebsd/man8/ioatcontrol.8 | 190 + static/freebsd/man8/iostat.8 | 546 ++ static/freebsd/man8/iovctl.8 | 121 + static/freebsd/man8/ip6addrctl.8 | 139 + static/freebsd/man8/ipf.8 | 181 + static/freebsd/man8/ipfs.8 | 123 + static/freebsd/man8/ipfstat.8 | 198 + static/freebsd/man8/ipfw.8 | 5174 +++++++++++ static/freebsd/man8/ipfwpcap.8 | 129 + static/freebsd/man8/ipmon.8 | 193 + static/freebsd/man8/ipnat.8 | 74 + static/freebsd/man8/ippool.8 | 132 + static/freebsd/man8/iprop-log.8 | 141 + static/freebsd/man8/iprop.8 | 183 + static/freebsd/man8/ipscan.8 | 42 + static/freebsd/man8/iscsictl.8 | 207 + static/freebsd/man8/iscsid.8 | 115 + static/freebsd/man8/isoboot.8 | 67 + static/freebsd/man8/iwmbtfw.8 | 104 + static/freebsd/man8/jail.8 | 1660 ++++ static/freebsd/man8/jexec.8 | 146 + static/freebsd/man8/jls.8 | 142 + static/freebsd/man8/kadmin.8 | 372 + static/freebsd/man8/kadmin.local.8 | 1 + static/freebsd/man8/kadmind.8 | 160 + static/freebsd/man8/kcm.8 | 174 + static/freebsd/man8/kdc.8 | 230 + static/freebsd/man8/kdigest.8 | 256 + static/freebsd/man8/kerberos.8 | 110 + static/freebsd/man8/kfd.8 | 85 + static/freebsd/man8/kimpersonate.8 | 107 + static/freebsd/man8/kldconfig.8 | 169 + static/freebsd/man8/kldload.8 | 135 + static/freebsd/man8/kldstat.8 | 157 + static/freebsd/man8/kldunload.8 | 79 + static/freebsd/man8/kldxref.8 | 101 + static/freebsd/man8/kpasswdd.8 | 110 + static/freebsd/man8/kstash.8 | 92 + static/freebsd/man8/ktrdump.8 | 93 + static/freebsd/man8/ktutil.8 | 124 + static/freebsd/man8/l2control.8 | 96 + static/freebsd/man8/l2ping.8 | 113 + static/freebsd/man8/lastlogin.8 | 107 + static/freebsd/man8/lb.8 | 128 + static/freebsd/man8/ldconfig.8 | 186 + static/freebsd/man8/loader.4th.8 | 231 + static/freebsd/man8/loader.8 | 174 + static/freebsd/man8/loader.efi.8 | 531 ++ static/freebsd/man8/loader.lua.8 | 196 + static/freebsd/man8/loader_4th.8 | 586 ++ static/freebsd/man8/loader_lua.8 | 268 + static/freebsd/man8/loader_simp.8 | 761 ++ static/freebsd/man8/locate.updatedb.8 | 73 + static/freebsd/man8/lpc.8 | 309 + static/freebsd/man8/lpd.8 | 360 + static/freebsd/man8/lptcontrol.8 | 88 + static/freebsd/man8/mail.local.8 | 159 + static/freebsd/man8/mailstats.8 | 118 + static/freebsd/man8/mailwrapper.8 | 191 + static/freebsd/man8/makefs.8 | 648 ++ static/freebsd/man8/makemap.8 | 194 + static/freebsd/man8/makeroot.8 | 132 + static/freebsd/man8/makewhatis.8 | 226 + static/freebsd/man8/makewhatis.local.8 | 67 + static/freebsd/man8/man.cgi.8 | 428 + static/freebsd/man8/manctl.8 | 52 + static/freebsd/man8/mandocd.8 | 212 + static/freebsd/man8/mdconfig.8 | 384 + static/freebsd/man8/mdmfs.8 | 449 + static/freebsd/man8/memcontrol.8 | 109 + static/freebsd/man8/menu.4th.8 | 350 + static/freebsd/man8/menu.lua.8 | 300 + static/freebsd/man8/menusets.4th.8 | 370 + static/freebsd/man8/mfiutil.8 | 826 ++ static/freebsd/man8/mixer.8 | 280 + static/freebsd/man8/mknetid.8 | 150 + static/freebsd/man8/mknod.8 | 149 + static/freebsd/man8/mksnap_ffs.8 | 108 + static/freebsd/man8/mkuzip.8 | 272 + static/freebsd/man8/mld6query.8 | 93 + static/freebsd/man8/mlx5tool.8 | 120 + static/freebsd/man8/mlxcontrol.8 | 146 + static/freebsd/man8/mount.8 | 648 ++ static/freebsd/man8/mount.zfs.8 | 93 + static/freebsd/man8/mount_cd9660.8 | 195 + static/freebsd/man8/mount_fusefs.8 | 403 + static/freebsd/man8/mount_msdosfs.8 | 220 + static/freebsd/man8/mount_nfs.8 | 715 ++ static/freebsd/man8/mount_nullfs.8 | 299 + static/freebsd/man8/mount_smbfs.8 | 204 + static/freebsd/man8/mount_udf.8 | 74 + static/freebsd/man8/mount_unionfs.8 | 392 + static/freebsd/man8/mountd.8 | 264 + static/freebsd/man8/moused.8 | 561 ++ static/freebsd/man8/mpsutil.8 | 171 + static/freebsd/man8/mptutil.8 | 395 + static/freebsd/man8/msconvd.8 | 602 ++ static/freebsd/man8/mtest.8 | 172 + static/freebsd/man8/mtree.8 | 886 ++ static/freebsd/man8/nanobsd.8 3.html | 278 + static/freebsd/man8/natd.8 | 855 ++ static/freebsd/man8/ndp.8 | 311 + static/freebsd/man8/newfs.8 | 403 + static/freebsd/man8/newfs_msdos.8 | 264 + static/freebsd/man8/newsyslog.8 | 312 + static/freebsd/man8/nextboot.8 | 137 + static/freebsd/man8/nfscbd.8 | 84 + static/freebsd/man8/nfsd.8 | 454 + static/freebsd/man8/nfsdumpstate.8 | 72 + static/freebsd/man8/nfsiod.8 | 97 + static/freebsd/man8/nfsrevoke.8 | 62 + static/freebsd/man8/nfsuserd.8 | 139 + static/freebsd/man8/ngctl.8 | 159 + static/freebsd/man8/nghook.8 | 143 + static/freebsd/man8/nmreplay.8 | 126 + static/freebsd/man8/nologin.8 | 71 + static/freebsd/man8/nos-tun.8 | 95 + static/freebsd/man8/nscd.8 | 160 + static/freebsd/man8/nss_tacplus.8 | 89 + static/freebsd/man8/ntpdate.8 | 277 + static/freebsd/man8/ntptime.8 | 65 + static/freebsd/man8/ntptrace.8 | 91 + static/freebsd/man8/nvmecontrol.8 | 1091 +++ static/freebsd/man8/nvmfd.8 | 131 + static/freebsd/man8/nvram.8 | 110 + static/freebsd/man8/ofwdump.8 | 105 + static/freebsd/man8/opensm.8 | 1561 ++++ static/freebsd/man8/p.8 | 1 + static/freebsd/man8/pac.8 | 105 + static/freebsd/man8/pam-krb5.8 | 1356 +++ static/freebsd/man8/pam_chroot.8 | 92 + static/freebsd/man8/pam_deny.8 | 78 + static/freebsd/man8/pam_echo.8 | 91 + static/freebsd/man8/pam_exec.8 | 169 + static/freebsd/man8/pam_ftpusers.8 | 97 + static/freebsd/man8/pam_group.8 | 100 + static/freebsd/man8/pam_guest.8 | 96 + static/freebsd/man8/pam_krb5.8 | 235 + static/freebsd/man8/pam_ksu.8 | 120 + static/freebsd/man8/pam_lastlog.8 | 99 + static/freebsd/man8/pam_login_access.8 | 120 + static/freebsd/man8/pam_nologin.8 | 88 + static/freebsd/man8/pam_passwdqc.8 | 265 + static/freebsd/man8/pam_permit.8 | 73 + static/freebsd/man8/pam_radius.8 | 148 + static/freebsd/man8/pam_rhosts.8 | 93 + static/freebsd/man8/pam_rootok.8 | 73 + static/freebsd/man8/pam_securetty.8 | 90 + static/freebsd/man8/pam_self.8 | 94 + static/freebsd/man8/pam_ssh.8 | 157 + static/freebsd/man8/pam_tacplus.8 | 125 + static/freebsd/man8/pam_unix.8 | 215 + static/freebsd/man8/pam_xdg.8 | 64 + static/freebsd/man8/pam_zfs_key.8 | 221 + static/freebsd/man8/password.lua.8 | 72 + static/freebsd/man8/pciconf.8 | 432 + static/freebsd/man8/perfquery.8 | 291 + static/freebsd/man8/periodic.8 | 265 + static/freebsd/man8/pfctl.8 | 879 ++ static/freebsd/man8/pfilctl.8 | 115 + static/freebsd/man8/pflogd.8 | 237 + static/freebsd/man8/pflowctl.8 | 97 + static/freebsd/man8/phttpget.8 | 82 + static/freebsd/man8/ping.8 | 828 ++ static/freebsd/man8/pkg-serve.8 | 107 + static/freebsd/man8/pkt-gen.8 | 297 + static/freebsd/man8/pmcannotate.8 | 120 + static/freebsd/man8/pmccontrol.8 | 125 + static/freebsd/man8/pmcstat.8 | 568 ++ static/freebsd/man8/pmcstudy.8 | 143 + static/freebsd/man8/pnfsdscopymr.8 | 98 + static/freebsd/man8/pnfsdsfile.8 | 143 + static/freebsd/man8/pnfsdskill.8 | 75 + static/freebsd/man8/pnpinfo.8 | 57 + static/freebsd/man8/powerd.8 | 179 + static/freebsd/man8/ppp.8 | 6116 +++++++++++++ static/freebsd/man8/pppctl.8 | 231 + static/freebsd/man8/pppoed.8 | 217 + static/freebsd/man8/praliases.8 | 57 + static/freebsd/man8/prometheus_sysctl_exporter.8 | 120 + static/freebsd/man8/pstat.8 | 268 + static/freebsd/man8/push.8 | 132 + static/freebsd/man8/pw.8 | 1119 +++ static/freebsd/man8/pwd_mkdb.8 | 181 + static/freebsd/man8/pwm.8 | 123 + static/freebsd/man8/pxeboot.8 | 152 + static/freebsd/man8/qtool.8 | 228 + static/freebsd/man8/quot.8 | 123 + static/freebsd/man8/quotacheck.8 | 200 + static/freebsd/man8/quotaon.8 | 134 + static/freebsd/man8/rarpd.8 | 158 + static/freebsd/man8/rbootd.8 | 150 + static/freebsd/man8/rc.8 3.html | 472 + static/freebsd/man8/rc.subr.8 3.html | 806 ++ static/freebsd/man8/rcorder.8 | 265 + static/freebsd/man8/rctl.8 | 298 + static/freebsd/man8/reboot.8 | 268 + static/freebsd/man8/renice.8 | 125 + static/freebsd/man8/repquota.8 | 108 + static/freebsd/man8/rescue.8 3.html | 112 + static/freebsd/man8/restore.8 | 502 ++ static/freebsd/man8/revnetgroup.8 | 157 + static/freebsd/man8/rfcomm_pppd.8 | 353 + static/freebsd/man8/rip6query.8 | 69 + static/freebsd/man8/rmail.8 | 61 + static/freebsd/man8/rmextattr.8 | 141 + static/freebsd/man8/rmt.8 | 218 + static/freebsd/man8/rmuser.8 | 208 + static/freebsd/man8/route.8 | 554 ++ static/freebsd/man8/route6d.8 | 300 + static/freebsd/man8/routed.8 | 748 ++ static/freebsd/man8/rpc.lockd.8 | 157 + static/freebsd/man8/rpc.rquotad.8 | 65 + static/freebsd/man8/rpc.rstatd.8 | 59 + static/freebsd/man8/rpc.rusersd.8 | 62 + static/freebsd/man8/rpc.rwalld.8 | 77 + static/freebsd/man8/rpc.sprayd.8 | 54 + static/freebsd/man8/rpc.statd.8 | 147 + static/freebsd/man8/rpc.tlsclntd.8 | 218 + static/freebsd/man8/rpc.tlsservd.8 | 388 + static/freebsd/man8/rpc.umntall.8 | 124 + static/freebsd/man8/rpc.yppasswdd.8 | 357 + static/freebsd/man8/rpc.ypxfrd.8 | 151 + static/freebsd/man8/rpcbind.8 | 189 + static/freebsd/man8/rpcinfo.8 | 339 + static/freebsd/man8/rrenumd.8 | 101 + static/freebsd/man8/rshd.8 | 161 + static/freebsd/man8/rtadvctl.8 | 104 + static/freebsd/man8/rtadvd.8 | 240 + static/freebsd/man8/rtlbtfw.8 | 99 + static/freebsd/man8/rtquery.8 | 135 + static/freebsd/man8/rtsold.8 | 346 + static/freebsd/man8/rwhod.8 | 227 + static/freebsd/man8/sa.8 | 268 + static/freebsd/man8/sade.8 | 71 + static/freebsd/man8/saquery.8 | 380 + static/freebsd/man8/save-entropy.8 | 97 + static/freebsd/man8/savecore.8 | 213 + static/freebsd/man8/screen.lua.8 | 100 + static/freebsd/man8/scsi_target.8 | 156 + static/freebsd/man8/sdpcontrol.8 | 117 + static/freebsd/man8/sdpd.8 | 139 + static/freebsd/man8/sendmail.8 | 761 ++ static/freebsd/man8/service.8 | 221 + static/freebsd/man8/services_mkdb.8 | 109 + static/freebsd/man8/sesutil.8 | 163 + static/freebsd/man8/setaudit.8 | 88 + static/freebsd/man8/setfmac.8 | 64 + static/freebsd/man8/setfsmac.8 | 127 + static/freebsd/man8/setkey.8 | 779 ++ static/freebsd/man8/setpmac.8 | 63 + static/freebsd/man8/sftp-server.8 | 170 + static/freebsd/man8/showmount.8 | 106 + static/freebsd/man8/shutdown.8 | 301 + static/freebsd/man8/smbmsg.8 | 284 + static/freebsd/man8/sminfo.8 | 215 + static/freebsd/man8/smpdump.8 | 207 + static/freebsd/man8/smpquery.8 | 310 + static/freebsd/man8/smrsh.8 | 98 + static/freebsd/man8/snapinfo.8 | 64 + static/freebsd/man8/sndctl.8 | 196 + static/freebsd/man8/spi.8 | 221 + static/freebsd/man8/spkrtest.8 | 60 + static/freebsd/man8/spray.8 | 74 + static/freebsd/man8/ssh-keysign.8 | 91 + static/freebsd/man8/ssh-pkcs11-helper.8 | 71 + static/freebsd/man8/ssh-sk-helper.8 | 71 + static/freebsd/man8/sshd.8 | 1053 +++ static/freebsd/man8/strfile.8 | 156 + static/freebsd/man8/string2key.8 | 85 + static/freebsd/man8/swapon.8 | 240 + static/freebsd/man8/sync.8 | 99 + static/freebsd/man8/sysctl.8 | 361 + static/freebsd/man8/syslogd.8 | 490 + static/freebsd/man8/sysrc.8 | 478 + static/freebsd/man8/talkd.8 | 73 + static/freebsd/man8/tcpd.8 | 178 + static/freebsd/man8/tcpdchk.8 | 66 + static/freebsd/man8/tcpdmatch.8 | 98 + static/freebsd/man8/tcpdrop.8 | 201 + static/freebsd/man8/tcpsso.8 | 259 + static/freebsd/man8/telnetd.8 | 536 ++ static/freebsd/man8/tftp-proxy.8 | 140 + static/freebsd/man8/tftpd.8 | 333 + static/freebsd/man8/traceroute.8 | 458 + static/freebsd/man8/traceroute6.8 | 217 + static/freebsd/man8/trim.8 | 188 + static/freebsd/man8/tunefs.8 | 253 + static/freebsd/man8/tzselect.8 | 123 + static/freebsd/man8/tzsetup.8 | 163 + static/freebsd/man8/uathload.8 | 67 + static/freebsd/man8/uefi.8 3.html | 132 + static/freebsd/man8/uefisign.8 | 90 + static/freebsd/man8/ugidfw.8 | 358 + static/freebsd/man8/umbctl.8 | 161 + static/freebsd/man8/umount.8 | 196 + static/freebsd/man8/unbound-anchor.8 | 189 + static/freebsd/man8/unbound-checkconf.8 | 56 + static/freebsd/man8/unbound-control.8 | 982 ++ static/freebsd/man8/unbound.8 | 88 + static/freebsd/man8/usbconfig.8 | 207 + static/freebsd/man8/usbdump.8 | 186 + static/freebsd/man8/utx.8 | 95 + static/freebsd/man8/valectl.8 | 161 + static/freebsd/man8/vdev_id.8 | 96 + static/freebsd/man8/vendstat.8 | 221 + static/freebsd/man8/veriexec.8 | 242 + static/freebsd/man8/verify_krb5_conf.8 | 95 + static/freebsd/man8/version.4th.8 | 126 + static/freebsd/man8/vigr.8 | 69 + static/freebsd/man8/vimage.8 | 192 + static/freebsd/man8/vipw.8 | 132 + static/freebsd/man8/virtual_bt_speaker.8 | 71 + static/freebsd/man8/virtual_equalizer.8 | 127 + static/freebsd/man8/virtual_oss.8 | 344 + static/freebsd/man8/virtual_oss_cmd.8 | 103 + static/freebsd/man8/vmstat.8 | 394 + static/freebsd/man8/vtfontcvt.8 | 99 + static/freebsd/man8/wake.8 | 66 + static/freebsd/man8/watch.8 | 117 + static/freebsd/man8/watchdog.8 | 71 + static/freebsd/man8/watchdogd.8 | 323 + static/freebsd/man8/wg.8 | 262 + static/freebsd/man8/wlandebug.8 | 177 + static/freebsd/man8/wlanstat.8 | 66 + static/freebsd/man8/wpa_cli.8 | 337 + static/freebsd/man8/wpa_passphrase.8 | 63 + static/freebsd/man8/wpa_supplicant.8 | 179 + static/freebsd/man8/yp.8 3.html | 289 + static/freebsd/man8/yp_mkdb.8 | 207 + static/freebsd/man8/ypbind.8 | 200 + static/freebsd/man8/ypinit.8 | 198 + static/freebsd/man8/ypldap.8 | 83 + static/freebsd/man8/yppoll.8 | 77 + static/freebsd/man8/yppush.8 | 178 + static/freebsd/man8/ypserv.8 | 461 + static/freebsd/man8/ypset.8 | 86 + static/freebsd/man8/ypxfr.8 | 306 + static/freebsd/man8/zdb.8 | 634 ++ static/freebsd/man8/zdump.8 | 236 + static/freebsd/man8/zfs-allow.8 | 495 + static/freebsd/man8/zfs-bookmark.8 | 76 + static/freebsd/man8/zfs-clone.8 | 103 + static/freebsd/man8/zfs-create.8 | 288 + static/freebsd/man8/zfs-destroy.8 | 236 + static/freebsd/man8/zfs-diff.8 | 122 + static/freebsd/man8/zfs-hold.8 | 115 + static/freebsd/man8/zfs-jail.8 | 144 + static/freebsd/man8/zfs-list.8 | 363 + static/freebsd/man8/zfs-load-key.8 | 312 + static/freebsd/man8/zfs-mount.8 | 146 + static/freebsd/man8/zfs-program.8 | 673 ++ static/freebsd/man8/zfs-project.8 | 143 + static/freebsd/man8/zfs-promote.8 | 86 + static/freebsd/man8/zfs-receive.8 | 466 + static/freebsd/man8/zfs-rename.8 | 165 + static/freebsd/man8/zfs-rewrite.8 | 123 + static/freebsd/man8/zfs-rollback.8 | 87 + static/freebsd/man8/zfs-send.8 | 756 ++ static/freebsd/man8/zfs-set.8 | 391 + static/freebsd/man8/zfs-share.8 | 101 + static/freebsd/man8/zfs-snapshot.8 | 143 + static/freebsd/man8/zfs-upgrade.8 | 104 + static/freebsd/man8/zfs-userspace.8 | 189 + static/freebsd/man8/zfs-wait.8 | 66 + static/freebsd/man8/zfs-zone.8 | 130 + static/freebsd/man8/zfs.8 | 846 ++ static/freebsd/man8/zfs_ids_to_path.8 | 52 + static/freebsd/man8/zfsbootcfg.8 | 137 + static/freebsd/man8/zfsd.8 | 183 + static/freebsd/man8/zgenhostid.8 | 101 + static/freebsd/man8/zic.8 | 904 ++ static/freebsd/man8/zinject.8 | 329 + static/freebsd/man8/zol-0.8 | 27 + static/freebsd/man8/zonectl.8 | 230 + static/freebsd/man8/zpool-add.8 | 139 + static/freebsd/man8/zpool-attach.8 | 142 + static/freebsd/man8/zpool-checkpoint.8 | 73 + static/freebsd/man8/zpool-clear.8 | 72 + static/freebsd/man8/zpool-create.8 | 280 + static/freebsd/man8/zpool-ddtprune.8 | 49 + static/freebsd/man8/zpool-destroy.8 | 58 + static/freebsd/man8/zpool-detach.8 | 59 + static/freebsd/man8/zpool-events.8 | 585 ++ static/freebsd/man8/zpool-export.8 | 83 + static/freebsd/man8/zpool-get.8 | 205 + static/freebsd/man8/zpool-history.8 | 59 + static/freebsd/man8/zpool-import.8 | 436 + static/freebsd/man8/zpool-initialize.8 | 87 + static/freebsd/man8/zpool-iostat.8 | 307 + static/freebsd/man8/zpool-labelclear.8 | 62 + static/freebsd/man8/zpool-list.8 | 256 + static/freebsd/man8/zpool-offline.8 | 108 + static/freebsd/man8/zpool-prefetch.8 | 52 + static/freebsd/man8/zpool-reguid.8 | 61 + static/freebsd/man8/zpool-remove.8 | 190 + static/freebsd/man8/zpool-reopen.8 | 53 + static/freebsd/man8/zpool-replace.8 | 100 + static/freebsd/man8/zpool-resilver.8 | 61 + static/freebsd/man8/zpool-scrub.8 | 210 + static/freebsd/man8/zpool-split.8 | 118 + static/freebsd/man8/zpool-status.8 | 374 + static/freebsd/man8/zpool-sync.8 | 54 + static/freebsd/man8/zpool-trim.8 | 118 + static/freebsd/man8/zpool-upgrade.8 | 122 + static/freebsd/man8/zpool-wait.8 | 119 + static/freebsd/man8/zpool.8 | 657 ++ static/freebsd/man8/zpool_influxdb.8 | 99 + static/freebsd/man8/zstream.8 | 235 + static/freebsd/man8/zzz.8 | 63 + static/freebsd/man9/1.9 | 14 + static/freebsd/man9/2.9 | 1 + static/freebsd/man9/8.9 | 42 + static/freebsd/man9/9.9 | 1 + static/freebsd/man9/BUF_ISLOCKED.9 4.html | 68 + static/freebsd/man9/BUF_LOCK.9 4.html | 71 + static/freebsd/man9/BUF_LOCKFREE.9 4.html | 61 + static/freebsd/man9/BUF_LOCKINIT.9 4.html | 60 + static/freebsd/man9/BUF_RECURSED.9 4.html | 63 + static/freebsd/man9/BUF_TIMELOCK.9 4.html | 80 + static/freebsd/man9/BUF_UNLOCK.9 4.html | 62 + static/freebsd/man9/BUS_ADD_CHILD.9 3.html | 77 + static/freebsd/man9/BUS_BIND_INTR.9 3.html | 85 + static/freebsd/man9/BUS_CHILD_DELETED.9 4.html | 52 + static/freebsd/man9/BUS_CHILD_DETACHED.9 4.html | 48 + static/freebsd/man9/BUS_CHILD_LOCATION.9 4.html | 59 + static/freebsd/man9/BUS_CHILD_PNPINFO.9 3.html | 64 + static/freebsd/man9/BUS_CONFIG_INTR.9 3.html | 103 + static/freebsd/man9/BUS_DESCRIBE_INTR.9 3.html | 91 + static/freebsd/man9/BUS_GET_CPUS.9 3.html | 88 + static/freebsd/man9/BUS_GET_PROPERTY.9 4.html | 74 + static/freebsd/man9/BUS_HINTED_CHILD.9 4.html | 57 + static/freebsd/man9/BUS_NEW_PASS.9 4.html | 50 + static/freebsd/man9/BUS_PRINT_CHILD.9 4.html | 58 + static/freebsd/man9/BUS_READ_IVAR.9 4.html | 67 + static/freebsd/man9/BUS_RESCAN.9 4.html | 48 + static/freebsd/man9/BUS_SETUP_INTR.9 3.html | 169 + static/freebsd/man9/CTASSERT.9 4.html | 65 + static/freebsd/man9/DB_COMMAND.9 3.html | 180 + static/freebsd/man9/DECLARE_GEOM_CLASS.9 3.html | 167 + static/freebsd/man9/DECLARE_MODULE.9 3.html | 105 + static/freebsd/man9/DEFINE_IFUNC.9 3.html | 118 + static/freebsd/man9/DELAY.9 4.html | 46 + static/freebsd/man9/DEVICE_ATTACH.9 4.html | 64 + static/freebsd/man9/DEVICE_DETACH.9 4.html | 58 + static/freebsd/man9/DEVICE_IDENTIFY.9 3.html | 86 + static/freebsd/man9/DEVICE_PROBE.9 3.html | 115 + static/freebsd/man9/DEVICE_SHUTDOWN.9 4.html | 55 + static/freebsd/man9/DEV_MODULE.9 4.html | 99 + static/freebsd/man9/DRIVER_MODULE.9 3.html | 139 + static/freebsd/man9/EVENTHANDLER.9 3.html | 231 + static/freebsd/man9/KASSERT.9 3.html | 161 + static/freebsd/man9/LOCK_PROFILING.9 3.html | 150 + static/freebsd/man9/MODULE_DEPEND.9 4.html | 74 + static/freebsd/man9/MODULE_PNP_INFO.9 4.html | 177 + static/freebsd/man9/MODULE_VERSION.9 4.html | 55 + static/freebsd/man9/OF_child.9 4.html | 76 + static/freebsd/man9/OF_device_from_xref.9 3.html | 101 + static/freebsd/man9/OF_finddevice.9 4.html | 73 + static/freebsd/man9/OF_getprop.9 4.html | 293 + static/freebsd/man9/OF_node_from_xref.9 3.html | 94 + static/freebsd/man9/OF_package_to_path.9 4.html | 52 + static/freebsd/man9/PCI_IOV_ADD_VF.9 3.html | 98 + static/freebsd/man9/PCI_IOV_INIT.9 4.html | 82 + static/freebsd/man9/PCI_IOV_UNINIT.9 4.html | 58 + static/freebsd/man9/PHOLD.9 4.html | 64 + static/freebsd/man9/SDT.9 4.html | 460 + static/freebsd/man9/SYSCALL_MODULE.9 4.html | 89 + static/freebsd/man9/SYSINIT.9 3.html | 138 + static/freebsd/man9/VFS.9 4.html | 45 + static/freebsd/man9/VFS_CHECKEXP.9 4.html | 88 + static/freebsd/man9/VFS_FHTOVP.9 3.html | 81 + static/freebsd/man9/VFS_MOUNT.9 4.html | 70 + static/freebsd/man9/VFS_QUOTACTL.9 4.html | 64 + static/freebsd/man9/VFS_ROOT.9 4.html | 62 + static/freebsd/man9/VFS_SET.9 4.html | 103 + static/freebsd/man9/VFS_STATFS.9 4.html | 105 + static/freebsd/man9/VFS_SYNC.9 4.html | 74 + static/freebsd/man9/VFS_UNMOUNT.9 4.html | 67 + static/freebsd/man9/VFS_VGET.9 4.html | 74 + static/freebsd/man9/VNET.9 4.html | 353 + static/freebsd/man9/VOP_ACCESS.9 4.html | 102 + static/freebsd/man9/VOP_ACLCHECK.9 4.html | 100 + static/freebsd/man9/VOP_ADVISE.9 4.html | 87 + static/freebsd/man9/VOP_ADVLOCK.9 4.html | 89 + static/freebsd/man9/VOP_ALLOCATE.9 4.html | 86 + static/freebsd/man9/VOP_ATTRIB.9 4.html | 139 + static/freebsd/man9/VOP_BMAP.9 4.html | 90 + static/freebsd/man9/VOP_BWRITE.9 4.html | 57 + static/freebsd/man9/VOP_COPY_FILE_RANGE.9 3.html | 115 + static/freebsd/man9/VOP_CREATE.9 4.html | 118 + static/freebsd/man9/VOP_DEALLOCATE.9 4.html | 99 + static/freebsd/man9/VOP_FSYNC.9 4.html | 105 + static/freebsd/man9/VOP_GETACL.9 4.html | 100 + static/freebsd/man9/VOP_GETEXTATTR.9 4.html | 119 + static/freebsd/man9/VOP_GETPAGES.9 3.html | 160 + static/freebsd/man9/VOP_INACTIVE.9 4.html | 74 + static/freebsd/man9/VOP_INOTIFY.9 4.html | 78 + static/freebsd/man9/VOP_IOCTL.9 4.html | 77 + static/freebsd/man9/VOP_LINK.9 4.html | 83 + static/freebsd/man9/VOP_LISTEXTATTR.9 4.html | 111 + static/freebsd/man9/VOP_LOCK.9 4.html | 128 + static/freebsd/man9/VOP_LOOKUP.9 4.html | 148 + static/freebsd/man9/VOP_OPENCLOSE.9 4.html | 108 + static/freebsd/man9/VOP_PATHCONF.9 4.html | 88 + static/freebsd/man9/VOP_PRINT.9 4.html | 54 + static/freebsd/man9/VOP_RDWR.9 4.html | 112 + static/freebsd/man9/VOP_READDIR.9 4.html | 109 + static/freebsd/man9/VOP_READLINK.9 4.html | 78 + static/freebsd/man9/VOP_READ_PGCACHE.9 4.html | 98 + static/freebsd/man9/VOP_REALLOCBLKS.9 4.html | 58 + static/freebsd/man9/VOP_REMOVE.9 4.html | 83 + static/freebsd/man9/VOP_RENAME.9 4.html | 93 + static/freebsd/man9/VOP_REVOKE.9 4.html | 58 + static/freebsd/man9/VOP_SETACL.9 4.html | 107 + static/freebsd/man9/VOP_SETEXTATTR.9 4.html | 121 + static/freebsd/man9/VOP_SETLABEL.9 3.html | 127 + static/freebsd/man9/VOP_STRATEGY.9 4.html | 67 + static/freebsd/man9/VOP_VPTOCNP.9 4.html | 97 + static/freebsd/man9/VOP_VPTOFH.9 4.html | 56 + static/freebsd/man9/accept_filter.9 3.html | 129 + static/freebsd/man9/accf_data.9 4.html | 73 + static/freebsd/man9/accf_dns.9 3.html | 74 + static/freebsd/man9/accf_http.9 3.html | 89 + static/freebsd/man9/accf_tls.9 3.html | 86 + static/freebsd/man9/acl.9 3.html | 207 + static/freebsd/man9/alq.9 3.html | 300 + static/freebsd/man9/altq.9 3.html | 510 ++ static/freebsd/man9/atomic.9 3.html | 613 ++ static/freebsd/man9/backlight.9 3.html | 97 + static/freebsd/man9/bhnd.9 3.html | 2322 +++++ static/freebsd/man9/bhnd_erom.9 3.html | 355 + static/freebsd/man9/bios.9 3.html | 158 + static/freebsd/man9/bitset.9 3.html | 487 + static/freebsd/man9/bpf.9 3.html | 196 + static/freebsd/man9/buf.9 3.html | 111 + static/freebsd/man9/buf_ring.9 3.html | 130 + static/freebsd/man9/bus_activate_resource.9 3.html | 115 + static/freebsd/man9/bus_adjust_resource.9 4.html | 93 + static/freebsd/man9/bus_alloc_resource.9 3.html | 168 + static/freebsd/man9/bus_attach_children.9 3.html | 138 + static/freebsd/man9/bus_child_present.9 3.html | 86 + static/freebsd/man9/bus_dma.9 3.html | 1154 +++ static/freebsd/man9/bus_generic_detach.9 4.html | 62 + static/freebsd/man9/bus_generic_new_pass.9 4.html | 49 + .../freebsd/man9/bus_generic_print_child.9 3.html | 99 + static/freebsd/man9/bus_generic_read_ivar.9 4.html | 56 + static/freebsd/man9/bus_generic_shutdown.9 4.html | 55 + static/freebsd/man9/bus_get_resource.9 4.html | 87 + static/freebsd/man9/bus_map_resource.9 3.html | 150 + static/freebsd/man9/bus_release_resource.9 4.html | 85 + static/freebsd/man9/bus_set_pass.9 4.html | 45 + static/freebsd/man9/bus_set_resource.9 4.html | 95 + static/freebsd/man9/bus_space.9 3.html | 1712 ++++ static/freebsd/man9/byteorder.9 4.html | 219 + static/freebsd/man9/callout.9 3.html | 614 ++ static/freebsd/man9/casuword.9 3.html | 88 + static/freebsd/man9/cd.9 3.html | 95 + static/freebsd/man9/cdefs.9 3.html | 937 ++ static/freebsd/man9/cnv.9 4.html | 278 + static/freebsd/man9/condvar.9 4.html | 216 + static/freebsd/man9/config_intrhook.9 3.html | 127 + static/freebsd/man9/contigmalloc.9 3.html | 118 + static/freebsd/man9/copy.9 3.html | 130 + static/freebsd/man9/coredumper_register.9 3.html | 181 + static/freebsd/man9/counter.9 4.html | 282 + static/freebsd/man9/cpu_machdep.9 3.html | 334 + static/freebsd/man9/cpuset.9 4.html | 323 + static/freebsd/man9/cr_bsd_visible.9 3.html | 97 + static/freebsd/man9/cr_cansee.9 3.html | 72 + static/freebsd/man9/cr_canseejailproc.9 4.html | 69 + static/freebsd/man9/cr_canseeothergids.9 4.html | 64 + static/freebsd/man9/cr_canseeotheruids.9 4.html | 61 + static/freebsd/man9/critical_enter.9 3.html | 94 + static/freebsd/man9/crypto.9 3.html | 182 + static/freebsd/man9/crypto_buffer.9 3.html | 256 + static/freebsd/man9/crypto_driver.9 4.html | 269 + static/freebsd/man9/crypto_request.9 4.html | 505 ++ static/freebsd/man9/crypto_session.9 3.html | 230 + static/freebsd/man9/deadfs.9 4.html | 47 + static/freebsd/man9/dev_clone.9 4.html | 67 + static/freebsd/man9/dev_refthread.9 3.html | 125 + static/freebsd/man9/devclass.9 4.html | 55 + static/freebsd/man9/devclass_find.9 4.html | 52 + static/freebsd/man9/devclass_get_count.9 4.html | 46 + static/freebsd/man9/devclass_get_device.9 4.html | 52 + static/freebsd/man9/devclass_get_devices.9 4.html | 59 + static/freebsd/man9/devclass_get_drivers.9 4.html | 59 + static/freebsd/man9/devclass_get_maxunit.9 4.html | 64 + static/freebsd/man9/devclass_get_name.9 4.html | 45 + static/freebsd/man9/devclass_get_softc.9 4.html | 53 + static/freebsd/man9/devctl_notify.9 4.html | 64 + .../freebsd/man9/devctl_process_running.9 4.html | 50 + static/freebsd/man9/devctl_safe_quote_sb.9 4.html | 51 + static/freebsd/man9/devfs_set_cdevpriv.9 3.html | 127 + static/freebsd/man9/device.9 3.html | 76 + static/freebsd/man9/device_add_child.9 3.html | 110 + static/freebsd/man9/device_delete_child.9 4.html | 60 + .../freebsd/man9/device_delete_children.9 4.html | 57 + static/freebsd/man9/device_enable.9 4.html | 63 + static/freebsd/man9/device_find_child.9 4.html | 56 + static/freebsd/man9/device_get_children.9 3.html | 78 + static/freebsd/man9/device_get_devclass.9 4.html | 46 + static/freebsd/man9/device_get_driver.9 4.html | 46 + static/freebsd/man9/device_get_ivars.9 4.html | 60 + static/freebsd/man9/device_get_name.9 4.html | 55 + static/freebsd/man9/device_get_parent.9 4.html | 47 + static/freebsd/man9/device_get_property.9 3.html | 92 + static/freebsd/man9/device_get_softc.9 4.html | 62 + static/freebsd/man9/device_get_state.9 3.html | 90 + static/freebsd/man9/device_get_sysctl.9 4.html | 56 + static/freebsd/man9/device_get_unit.9 4.html | 45 + static/freebsd/man9/device_printf.9 4.html | 53 + .../freebsd/man9/device_probe_and_attach.9 3.html | 117 + static/freebsd/man9/device_quiet.9 4.html | 64 + static/freebsd/man9/device_set_desc.9 4.html | 72 + static/freebsd/man9/device_set_driver.9 4.html | 50 + static/freebsd/man9/device_set_flags.9 4.html | 55 + static/freebsd/man9/devstat.9 3.html | 401 + static/freebsd/man9/devtoname.9 4.html | 45 + static/freebsd/man9/disk.9 3.html | 258 + static/freebsd/man9/dnv.9 3.html | 153 + static/freebsd/man9/domain.9 3.html | 194 + static/freebsd/man9/domainset.9 3.html | 160 + static/freebsd/man9/dpcpu.9 4.html | 160 + static/freebsd/man9/drbr.9 3.html | 127 + static/freebsd/man9/driver.9 3.html | 98 + static/freebsd/man9/ecn.9 3.html | 174 + static/freebsd/man9/efirt.9 3.html | 208 + static/freebsd/man9/epoch.9 4.html | 284 + static/freebsd/man9/ether_gen_addr.9 4.html | 65 + static/freebsd/man9/eventtimers.9 4.html | 252 + static/freebsd/man9/example.9 | 322 + static/freebsd/man9/extattr.9 3.html | 87 + static/freebsd/man9/exterror.9 3.html | 185 + static/freebsd/man9/fail.9 3.html | 263 + static/freebsd/man9/fdt_pinctrl.9 3.html | 174 + static/freebsd/man9/fetch.9 3.html | 130 + static/freebsd/man9/firmware.9 3.html | 319 + static/freebsd/man9/fpu_kern.9 3.html | 192 + static/freebsd/man9/g_access.9 3.html | 151 + static/freebsd/man9/g_attach.9 3.html | 139 + static/freebsd/man9/g_bio.9 3.html | 270 + static/freebsd/man9/g_consumer.9 3.html | 128 + static/freebsd/man9/g_data.9 3.html | 104 + static/freebsd/man9/g_event.9 3.html | 176 + static/freebsd/man9/g_geom.9 3.html | 197 + static/freebsd/man9/g_provider.9 3.html | 130 + static/freebsd/man9/g_provider_by_name.9 4.html | 66 + static/freebsd/man9/g_wither_geom.9 3.html | 73 + static/freebsd/man9/get_cyclecount.9 4.html | 67 + static/freebsd/man9/getenv.9 4.html | 231 + static/freebsd/man9/getnewvnode.9 4.html | 72 + static/freebsd/man9/gone_in.9 4.html | 81 + static/freebsd/man9/groupmember.9 4.html | 74 + static/freebsd/man9/hardclock.9 3.html | 69 + static/freebsd/man9/hash.9 3.html | 211 + static/freebsd/man9/hashalloc.9 3.html | 253 + static/freebsd/man9/hashinit.9 3.html | 174 + static/freebsd/man9/hexdump.9 4.html | 79 + static/freebsd/man9/hhook.9 3.html | 292 + static/freebsd/man9/hz.9 3.html | 115 + static/freebsd/man9/ieee80211.9 3.html | 568 ++ static/freebsd/man9/ieee80211_amrr.9 3.html | 159 + static/freebsd/man9/ieee80211_beacon.9 3.html | 102 + static/freebsd/man9/ieee80211_bmiss.9 3.html | 72 + static/freebsd/man9/ieee80211_crypto.9 3.html | 221 + static/freebsd/man9/ieee80211_ddb.9 4.html | 56 + static/freebsd/man9/ieee80211_input.9 3.html | 83 + static/freebsd/man9/ieee80211_node.9 3.html | 190 + static/freebsd/man9/ieee80211_output.9 3.html | 141 + static/freebsd/man9/ieee80211_proto.9 3.html | 198 + static/freebsd/man9/ieee80211_radiotap.9 3.html | 248 + static/freebsd/man9/ieee80211_regdomain.9 3.html | 118 + static/freebsd/man9/ieee80211_scan.9 3.html | 291 + static/freebsd/man9/ieee80211_vap.9 3.html | 116 + static/freebsd/man9/iflib.9 4.html | 55 + static/freebsd/man9/iflibdd.9 4.html | 367 + static/freebsd/man9/iflibdi.9 4.html | 250 + static/freebsd/man9/iflibtxrx.9 3.html | 258 + static/freebsd/man9/ifnet.9 3.html | 1731 ++++ static/freebsd/man9/inittodr.9 3.html | 76 + static/freebsd/man9/insmntque.9 3.html | 84 + static/freebsd/man9/intr_event.9 3.html | 341 + static/freebsd/man9/intro.9 3.html | 387 + static/freebsd/man9/kasan.9 3.html | 137 + static/freebsd/man9/kern_reboot.9 3.html | 228 + static/freebsd/man9/kern_testfrwk.9 3.html | 150 + static/freebsd/man9/kern_yield.9 3.html | 114 + static/freebsd/man9/kernacc.9 4.html | 71 + static/freebsd/man9/kernel_mount.9 3.html | 160 + static/freebsd/man9/khelp.9 3.html | 309 + static/freebsd/man9/kmsan.9 3.html | 314 + static/freebsd/man9/kobj.9 3.html | 142 + static/freebsd/man9/kproc.9 3.html | 294 + static/freebsd/man9/kqueue.9 4.html | 299 + static/freebsd/man9/kstack_contains.9 4.html | 57 + static/freebsd/man9/kthread.9 3.html | 271 + static/freebsd/man9/ktr.9 4.html | 182 + static/freebsd/man9/lock.9 4.html | 431 + static/freebsd/man9/locking.9 3.html | 458 + static/freebsd/man9/mac.9 3.html | 200 + static/freebsd/man9/make_dev.9 4.html | 415 + static/freebsd/man9/malloc.9 4.html | 332 + static/freebsd/man9/mbchain.9 4.html | 229 + static/freebsd/man9/mbuf.9 4.html | 1032 +++ static/freebsd/man9/mbuf_tags.9 4.html | 262 + static/freebsd/man9/mdchain.9 4.html | 229 + static/freebsd/man9/memcchr.9 4.html | 55 + static/freebsd/man9/memguard.9 3.html | 135 + static/freebsd/man9/mi_switch.9 3.html | 134 + static/freebsd/man9/microseq.9 4.html | 524 ++ static/freebsd/man9/microtime.9 4.html | 104 + static/freebsd/man9/microuptime.9 4.html | 110 + static/freebsd/man9/mod_cc.9 3.html | 281 + static/freebsd/man9/module.9 3.html | 88 + static/freebsd/man9/mtx_pool.9 3.html | 162 + static/freebsd/man9/mutex.9 4.html | 456 + static/freebsd/man9/namei.9 3.html | 423 + static/freebsd/man9/netisr.9 4.html | 235 + static/freebsd/man9/nv.9 4.html | 1177 +++ static/freebsd/man9/nvmem.9 3.html | 192 + static/freebsd/man9/ofw_bus_is_compatible.9 3.html | 138 + static/freebsd/man9/ofw_bus_status_okay.9 4.html | 72 + static/freebsd/man9/ofw_graph.9 4.html | 99 + static/freebsd/man9/osd.9 4.html | 307 + static/freebsd/man9/owll.9 4.html | 95 + static/freebsd/man9/own.9 4.html | 216 + static/freebsd/man9/p.9 | 1 + static/freebsd/man9/p_candebug.9 4.html | 106 + static/freebsd/man9/p_cansee.9 4.html | 63 + static/freebsd/man9/panic.9 3.html | 114 + static/freebsd/man9/pci.9 4.html | 897 ++ static/freebsd/man9/pci_iov_schema.9 3.html | 233 + static/freebsd/man9/pfil.9 3.html | 135 + static/freebsd/man9/pfind.9 4.html | 83 + static/freebsd/man9/pget.9 4.html | 87 + static/freebsd/man9/pgfind.9 4.html | 59 + static/freebsd/man9/physio.9 4.html | 100 + static/freebsd/man9/pmap.9 4.html | 98 + static/freebsd/man9/pmap_activate.9 4.html | 52 + static/freebsd/man9/pmap_clear_modify.9 4.html | 52 + static/freebsd/man9/pmap_copy.9 4.html | 78 + static/freebsd/man9/pmap_enter.9 3.html | 134 + static/freebsd/man9/pmap_extract.9 4.html | 88 + static/freebsd/man9/pmap_growkernel.9 4.html | 52 + static/freebsd/man9/pmap_init.9 4.html | 53 + static/freebsd/man9/pmap_is_modified.9 4.html | 70 + static/freebsd/man9/pmap_is_prefaultable.9 4.html | 56 + static/freebsd/man9/pmap_kextract.9 4.html | 83 + static/freebsd/man9/pmap_map.9 4.html | 74 + static/freebsd/man9/pmap_mincore.9 4.html | 66 + static/freebsd/man9/pmap_object_init_pt.9 4.html | 66 + .../freebsd/man9/pmap_page_exists_quick.9 4.html | 68 + static/freebsd/man9/pmap_page_init.9 4.html | 52 + static/freebsd/man9/pmap_pinit.9 4.html | 62 + static/freebsd/man9/pmap_protect.9 4.html | 54 + static/freebsd/man9/pmap_qenter.9 4.html | 78 + static/freebsd/man9/pmap_quick_enter_page.9 4.html | 93 + static/freebsd/man9/pmap_release.9 4.html | 60 + static/freebsd/man9/pmap_remove.9 4.html | 78 + static/freebsd/man9/pmap_resident_count.9 4.html | 75 + static/freebsd/man9/pmap_unwire.9 4.html | 61 + static/freebsd/man9/pmap_zero_page.9 4.html | 67 + static/freebsd/man9/printf.9 3.html | 162 + static/freebsd/man9/prison_check.9 4.html | 52 + static/freebsd/man9/priv.9 3.html | 102 + static/freebsd/man9/prng.9 4.html | 93 + static/freebsd/man9/proc_rwmem.9 4.html | 95 + static/freebsd/man9/pseudofs.9 4.html | 56 + static/freebsd/man9/psignal.9 3.html | 110 + static/freebsd/man9/pwmbus.9 3.html | 135 + static/freebsd/man9/random.9 4.html | 160 + static/freebsd/man9/random_harvest.9 4.html | 88 + static/freebsd/man9/ratecheck.9 4.html | 71 + static/freebsd/man9/redzone.9 4.html | 118 + static/freebsd/man9/refcount.9 3.html | 156 + static/freebsd/man9/regulator.9 4.html | 193 + static/freebsd/man9/resettodr.9 4.html | 49 + static/freebsd/man9/resource_int_value.9 4.html | 94 + static/freebsd/man9/rijndael.9 3.html | 99 + static/freebsd/man9/rman.9 4.html | 411 + static/freebsd/man9/rmlock.9 4.html | 366 + static/freebsd/man9/rtentry.9 3.html | 206 + static/freebsd/man9/runqueue.9 3.html | 107 + static/freebsd/man9/rwlock.9 4.html | 324 + static/freebsd/man9/sbuf.9 4.html | 525 ++ static/freebsd/man9/scheduler.9 4.html | 208 + static/freebsd/man9/securelevel_gt.9 4.html | 65 + static/freebsd/man9/selrecord.9 4.html | 94 + static/freebsd/man9/sema.9 4.html | 126 + static/freebsd/man9/seqc.9 4.html | 124 + static/freebsd/man9/sf_buf.9 3.html | 110 + static/freebsd/man9/sglist.9 4.html | 471 + static/freebsd/man9/shm_map.9 4.html | 163 + static/freebsd/man9/signal.9 4.html | 356 + static/freebsd/man9/sleep.9 4.html | 307 + static/freebsd/man9/sleepqueue.9 4.html | 326 + static/freebsd/man9/smr.9 3.html | 234 + static/freebsd/man9/socket.9 4.html | 563 ++ static/freebsd/man9/stack.9 4.html | 174 + static/freebsd/man9/store.9 4.html | 92 + static/freebsd/man9/style.9 3.html | 783 ++ static/freebsd/man9/style.lua.9 3.html | 101 + static/freebsd/man9/superio.9 4.html | 195 + static/freebsd/man9/swi.9 3.html | 172 + static/freebsd/man9/sx.9 4.html | 301 + .../freebsd/man9/syscall_helper_register.9 4.html | 129 + static/freebsd/man9/sysctl.9 3.html | 1148 +++ static/freebsd/man9/sysctl_add_oid.9 3.html | 151 + static/freebsd/man9/sysctl_ctx_init.9 3.html | 200 + static/freebsd/man9/taskqueue.9 4.html | 494 + static/freebsd/man9/tcp_functions.9 3.html | 316 + static/freebsd/man9/thread_exit.9 4.html | 50 + static/freebsd/man9/time.9 4.html | 82 + static/freebsd/man9/tvtohz.9 4.html | 60 + static/freebsd/man9/ucred.9 4.html | 188 + static/freebsd/man9/uidinfo.9 4.html | 88 + static/freebsd/man9/uio.9 3.html | 212 + static/freebsd/man9/unr.9 4.html | 186 + static/freebsd/man9/usbdi.9 3.html | 477 + static/freebsd/man9/vaccess.9 3.html | 99 + static/freebsd/man9/vaccess_acl_nfs4.9 3.html | 111 + static/freebsd/man9/vaccess_acl_posix1e.9 3.html | 109 + static/freebsd/man9/vflush.9 4.html | 81 + static/freebsd/man9/vfs_busy.9 4.html | 84 + static/freebsd/man9/vfs_getnewfsid.9 4.html | 72 + static/freebsd/man9/vfs_getopt.9 4.html | 176 + static/freebsd/man9/vfs_getvfs.9 4.html | 71 + static/freebsd/man9/vfs_mountedfrom.9 4.html | 48 + static/freebsd/man9/vfs_rootmountalloc.9 4.html | 60 + static/freebsd/man9/vfs_suser.9 4.html | 70 + static/freebsd/man9/vfs_timestamp.9 4.html | 55 + static/freebsd/man9/vfs_unbusy.9 4.html | 54 + static/freebsd/man9/vfs_unmountall.9 4.html | 41 + static/freebsd/man9/vfsconf.9 3.html | 121 + static/freebsd/man9/vget.9 4.html | 64 + static/freebsd/man9/vgone.9 4.html | 57 + static/freebsd/man9/vhold.9 4.html | 76 + static/freebsd/man9/vinvalbuf.9 4.html | 111 + static/freebsd/man9/vm_fault_prefault.9 4.html | 71 + static/freebsd/man9/vm_map.9 4.html | 290 + .../freebsd/man9/vm_map_check_protection.9 4.html | 70 + static/freebsd/man9/vm_map_delete.9 4.html | 68 + .../freebsd/man9/vm_map_entry_resize_free.9 3.html | 176 + static/freebsd/man9/vm_map_find.9 3.html | 122 + static/freebsd/man9/vm_map_findspace.9 4.html | 74 + static/freebsd/man9/vm_map_inherit.9 4.html | 75 + static/freebsd/man9/vm_map_init.9 4.html | 61 + static/freebsd/man9/vm_map_insert.9 4.html | 82 + static/freebsd/man9/vm_map_lock.9 4.html | 118 + static/freebsd/man9/vm_map_lookup.9 3.html | 83 + static/freebsd/man9/vm_map_madvise.9 4.html | 66 + static/freebsd/man9/vm_map_max.9 4.html | 66 + static/freebsd/man9/vm_map_protect.9 3.html | 105 + static/freebsd/man9/vm_map_remove.9 4.html | 69 + static/freebsd/man9/vm_map_stack.9 3.html | 102 + static/freebsd/man9/vm_map_submap.9 3.html | 78 + static/freebsd/man9/vm_map_sync.9 4.html | 71 + static/freebsd/man9/vm_map_wire.9 3.html | 99 + static/freebsd/man9/vm_page_aflag.9 4.html | 92 + static/freebsd/man9/vm_page_alloc.9 4.html | 248 + static/freebsd/man9/vm_page_bits.9 4.html | 141 + static/freebsd/man9/vm_page_busy.9 4.html | 178 + static/freebsd/man9/vm_page_deactivate.9 4.html | 50 + static/freebsd/man9/vm_page_dontneed.9 4.html | 57 + static/freebsd/man9/vm_page_free.9 3.html | 93 + static/freebsd/man9/vm_page_grab.9 4.html | 76 + static/freebsd/man9/vm_page_insert.9 4.html | 88 + static/freebsd/man9/vm_page_lookup.9 4.html | 59 + static/freebsd/man9/vm_page_rename.9 4.html | 62 + static/freebsd/man9/vm_page_wire.9 4.html | 77 + static/freebsd/man9/vm_set_page_size.9 4.html | 51 + static/freebsd/man9/vmem.9 3.html | 261 + static/freebsd/man9/vn_deallocate.9 4.html | 99 + static/freebsd/man9/vn_fullpath.9 3.html | 156 + static/freebsd/man9/vn_isdisk.9 4.html | 67 + static/freebsd/man9/vnode.9 3.html | 153 + .../freebsd/man9/vnode_pager_purge_range.9 4.html | 71 + static/freebsd/man9/vnode_pager_setsize.9 4.html | 72 + static/freebsd/man9/vref.9 4.html | 68 + static/freebsd/man9/vrefcnt.9 4.html | 48 + static/freebsd/man9/vrele.9 4.html | 85 + static/freebsd/man9/vslock.9 4.html | 79 + static/freebsd/man9/watchdog.9 4.html | 71 + static/freebsd/man9/zero_region.9 4.html | 85 + static/freebsd/man9/zone.9 3.html | 596 ++ 6080 files changed, 1125426 insertions(+) create mode 100644 static/freebsd/man1/1.1 create mode 100644 static/freebsd/man1/1.4.1 create mode 100644 static/freebsd/man1/2.1 create mode 100644 static/freebsd/man1/3.1 create mode 100644 static/freebsd/man1/4.1 create mode 100644 static/freebsd/man1/5.1 create mode 100644 static/freebsd/man1/6.1 create mode 100644 static/freebsd/man1/7.1 create mode 100644 static/freebsd/man1/8.1 create mode 100644 static/freebsd/man1/9.1 create mode 100644 static/freebsd/man1/A.1 create mode 100644 static/freebsd/man1/CA.pl.1 create mode 100644 static/freebsd/man1/E.1 create mode 100644 static/freebsd/man1/EH.1 create mode 100644 static/freebsd/man1/EHN.1 create mode 100644 static/freebsd/man1/EN.1 create mode 100644 static/freebsd/man1/H.1 create mode 100644 static/freebsd/man1/HN.1 create mode 100644 static/freebsd/man1/N.1 create mode 100644 static/freebsd/man1/addr2line.1 create mode 100644 static/freebsd/man1/afslog.1 create mode 100644 static/freebsd/man1/alias.1 create mode 100644 static/freebsd/man1/and2.1 create mode 100644 static/freebsd/man1/apply.1 create mode 100644 static/freebsd/man1/apropos.1 create mode 100644 static/freebsd/man1/ar.1 create mode 100644 static/freebsd/man1/asa.1 create mode 100644 static/freebsd/man1/atf-check.1 create mode 100644 static/freebsd/man1/atf-sh.1 create mode 100644 static/freebsd/man1/atf-test-program.1 create mode 100644 static/freebsd/man1/athrd.1 create mode 100644 static/freebsd/man1/auditreduce.1 create mode 100644 static/freebsd/man1/awk.1 create mode 100644 static/freebsd/man1/basename.1 create mode 100644 static/freebsd/man1/beep.1 create mode 100644 static/freebsd/man1/biff.1 create mode 100644 static/freebsd/man1/bintrans.1 create mode 100644 static/freebsd/man1/bmake.1 create mode 100644 static/freebsd/man1/bomtool.1 create mode 100644 static/freebsd/man1/brandelf.1 create mode 100644 static/freebsd/man1/bsdcat.1 create mode 100644 static/freebsd/man1/bsdcpio.1 create mode 100644 static/freebsd/man1/bsddialog.1 create mode 100644 static/freebsd/man1/bsdiff.1 create mode 100644 static/freebsd/man1/bsdtar.1 create mode 100644 static/freebsd/man1/bsdunzip.1 create mode 100644 static/freebsd/man1/bsnmpd.1 create mode 100644 static/freebsd/man1/bsnmpget.1 create mode 100644 static/freebsd/man1/bspatch.1 create mode 100644 static/freebsd/man1/bthost.1 create mode 100644 static/freebsd/man1/btsockstat.1 create mode 100644 static/freebsd/man1/bugpoint.1 create mode 100644 static/freebsd/man1/builtin.1 3.html create mode 100644 static/freebsd/man1/bzip2.1 create mode 100644 static/freebsd/man1/c++filt.1 create mode 100644 static/freebsd/man1/c89.1 create mode 100644 static/freebsd/man1/c99.1 create mode 100644 static/freebsd/man1/calendar.1 create mode 100644 static/freebsd/man1/cap_mkdb.1 create mode 100644 static/freebsd/man1/cat.1 create mode 100644 static/freebsd/man1/cdcontrol.1 create mode 100644 static/freebsd/man1/chflags.1 create mode 100644 static/freebsd/man1/chgrp.1 create mode 100644 static/freebsd/man1/chio.1 create mode 100644 static/freebsd/man1/chmod.1 create mode 100644 static/freebsd/man1/chpass.1 create mode 100644 static/freebsd/man1/ckdist.1 create mode 100644 static/freebsd/man1/cksum.1 create mode 100644 static/freebsd/man1/clang.1 create mode 100644 static/freebsd/man1/clear.1 create mode 100644 static/freebsd/man1/cmd2.1 create mode 100644 static/freebsd/man1/cmp.1 create mode 100644 static/freebsd/man1/cmtime.1 create mode 100644 static/freebsd/man1/col.1 create mode 100644 static/freebsd/man1/colrm.1 create mode 100644 static/freebsd/man1/column.1 create mode 100644 static/freebsd/man1/comm.1 create mode 100644 static/freebsd/man1/compile_et.1 create mode 100644 static/freebsd/man1/compress.1 create mode 100644 static/freebsd/man1/copy_cred_cache.1 create mode 100644 static/freebsd/man1/cp.1 create mode 100644 static/freebsd/man1/cpuset.1 create mode 100644 static/freebsd/man1/crontab.1 create mode 100644 static/freebsd/man1/crunchgen.1 create mode 100644 static/freebsd/man1/crunchide.1 create mode 100644 static/freebsd/man1/csh.1 create mode 100644 static/freebsd/man1/csplit.1 create mode 100644 static/freebsd/man1/cstyle.1 create mode 100644 static/freebsd/man1/ctags.1 create mode 100644 static/freebsd/man1/ctfconvert.1 create mode 100644 static/freebsd/man1/ctfdump.1 create mode 100644 static/freebsd/man1/ctfmerge.1 create mode 100644 static/freebsd/man1/cu.1 create mode 100644 static/freebsd/man1/cut.1 create mode 100644 static/freebsd/man1/date.1 create mode 100644 static/freebsd/man1/dbufstat.1 create mode 100644 static/freebsd/man1/dd.1 create mode 100644 static/freebsd/man1/demandoc.1 create mode 100644 static/freebsd/man1/derdump.1 create mode 100644 static/freebsd/man1/df.1 create mode 100644 static/freebsd/man1/dialog.1 create mode 100644 static/freebsd/man1/diff.1 create mode 100644 static/freebsd/man1/diff3.1 create mode 100644 static/freebsd/man1/domainname.1 create mode 100644 static/freebsd/man1/dpv.1 create mode 100644 static/freebsd/man1/drill.1 create mode 100644 static/freebsd/man1/dtc.1 create mode 100644 static/freebsd/man1/dtrace.1 create mode 100644 static/freebsd/man1/du.1 create mode 100644 static/freebsd/man1/dwatch.1 create mode 100644 static/freebsd/man1/echo.1 create mode 100644 static/freebsd/man1/ed.1 create mode 100644 static/freebsd/man1/ee.1 create mode 100644 static/freebsd/man1/elfcopy.1 create mode 100644 static/freebsd/man1/elfctl.1 create mode 100644 static/freebsd/man1/elfdump.1 create mode 100644 static/freebsd/man1/enigma.1 create mode 100644 static/freebsd/man1/env.1 create mode 100644 static/freebsd/man1/etdump.1 create mode 100644 static/freebsd/man1/ether_reflect.1 create mode 100644 static/freebsd/man1/eval2.1 create mode 100644 static/freebsd/man1/example.1 create mode 100644 static/freebsd/man1/expand.1 create mode 100644 static/freebsd/man1/expected.status.1 create mode 100644 static/freebsd/man1/expected.stderr.1 create mode 100644 static/freebsd/man1/expected.stdout.1 create mode 100644 static/freebsd/man1/expr.1 create mode 100644 static/freebsd/man1/false.1 create mode 100644 static/freebsd/man1/fdread.1 create mode 100644 static/freebsd/man1/fdwrite.1 create mode 100644 static/freebsd/man1/fetch.1 create mode 100644 static/freebsd/man1/fido2-assert.1 create mode 100644 static/freebsd/man1/fido2-cred.1 create mode 100644 static/freebsd/man1/fido2-token.1 create mode 100644 static/freebsd/man1/fifolog.1 create mode 100644 static/freebsd/man1/file2c.1 create mode 100644 static/freebsd/man1/find.1 create mode 100644 static/freebsd/man1/finger.1 create mode 100644 static/freebsd/man1/firewall.1 create mode 100644 static/freebsd/man1/fixwhite.1 create mode 100644 static/freebsd/man1/flua.1 create mode 100644 static/freebsd/man1/fmt.1 create mode 100644 static/freebsd/man1/fold.1 create mode 100644 static/freebsd/man1/freebsd-version.1 create mode 100644 static/freebsd/man1/from.1 create mode 100644 static/freebsd/man1/fstat.1 create mode 100644 static/freebsd/man1/fsync.1 create mode 100644 static/freebsd/man1/ftp.1 create mode 100644 static/freebsd/man1/func2.1 create mode 100644 static/freebsd/man1/fuser.1 create mode 100644 static/freebsd/man1/gcore.1 create mode 100644 static/freebsd/man1/gencat.1 create mode 100644 static/freebsd/man1/genl.1 create mode 100644 static/freebsd/man1/gensnmpdef.1 create mode 100644 static/freebsd/man1/gensnmptree.1 create mode 100644 static/freebsd/man1/getaddrinfo.1 create mode 100644 static/freebsd/man1/getconf.1 create mode 100644 static/freebsd/man1/getent.1 create mode 100644 static/freebsd/man1/getfacl.1 create mode 100644 static/freebsd/man1/getopt.1 create mode 100644 static/freebsd/man1/git-arc.1 create mode 100644 static/freebsd/man1/gprof.1 create mode 100644 static/freebsd/man1/grep.1 create mode 100644 static/freebsd/man1/groups.1 create mode 100644 static/freebsd/man1/gzexe.1 create mode 100644 static/freebsd/man1/gzip.1 create mode 100644 static/freebsd/man1/head.1 create mode 100644 static/freebsd/man1/hesinfo.1 create mode 100644 static/freebsd/man1/hexdump.1 create mode 100644 static/freebsd/man1/hostapd_cli.1 create mode 100644 static/freebsd/man1/hostname.1 create mode 100644 static/freebsd/man1/ibv_asyncwatch.1 create mode 100644 static/freebsd/man1/ibv_devices.1 create mode 100644 static/freebsd/man1/ibv_devinfo.1 create mode 100644 static/freebsd/man1/ibv_rc_pingpong.1 create mode 100644 static/freebsd/man1/ibv_srq_pingpong.1 create mode 100644 static/freebsd/man1/ibv_uc_pingpong.1 create mode 100644 static/freebsd/man1/ibv_ud_pingpong.1 create mode 100644 static/freebsd/man1/ibv_xsrq_pingpong.1 create mode 100644 static/freebsd/man1/iconv.1 create mode 100644 static/freebsd/man1/id.1 create mode 100644 static/freebsd/man1/ident.1 create mode 100644 static/freebsd/man1/indent.1 create mode 100644 static/freebsd/man1/install.1 create mode 100644 static/freebsd/man1/intro.1 3.html create mode 100644 static/freebsd/man1/ipcrm.1 create mode 100644 static/freebsd/man1/ipcs.1 create mode 100644 static/freebsd/man1/ipftest.1 create mode 100644 static/freebsd/man1/ipnat.1 create mode 100644 static/freebsd/man1/ipresend.1 create mode 100644 static/freebsd/man1/ipsend.1 create mode 100644 static/freebsd/man1/iptest.1 create mode 100644 static/freebsd/man1/ipv6.1 create mode 100644 static/freebsd/man1/join.1 create mode 100644 static/freebsd/man1/jot.1 create mode 100644 static/freebsd/man1/kbdcontrol.1 create mode 100644 static/freebsd/man1/kbdmap.1 create mode 100644 static/freebsd/man1/kdestroy.1 create mode 100644 static/freebsd/man1/kdump.1 create mode 100644 static/freebsd/man1/kenv.1 create mode 100644 static/freebsd/man1/kf.1 create mode 100644 static/freebsd/man1/kgetcred.1 create mode 100644 static/freebsd/man1/kill.1 create mode 100644 static/freebsd/man1/killall.1 create mode 100644 static/freebsd/man1/kinit.1 create mode 100644 static/freebsd/man1/klist.1 create mode 100644 static/freebsd/man1/kpasswd.1 create mode 100644 static/freebsd/man1/krb5-config.1 create mode 100644 static/freebsd/man1/kswitch.1 create mode 100644 static/freebsd/man1/ktrace.1 create mode 100644 static/freebsd/man1/lam.1 create mode 100644 static/freebsd/man1/last.1 create mode 100644 static/freebsd/man1/lastcomm.1 create mode 100644 static/freebsd/man1/ld.lld.1 create mode 100644 static/freebsd/man1/ldd.1 create mode 100644 static/freebsd/man1/ldns-config.1 create mode 100644 static/freebsd/man1/ldns-host.1 create mode 100644 static/freebsd/man1/leave.1 create mode 100644 static/freebsd/man1/lex.1 create mode 100644 static/freebsd/man1/limits.1 create mode 100644 static/freebsd/man1/llc.1 create mode 100644 static/freebsd/man1/lldb-server.1 create mode 100644 static/freebsd/man1/lldb.1 create mode 100644 static/freebsd/man1/lli.1 create mode 100644 static/freebsd/man1/llvm-addr2line.1 create mode 100644 static/freebsd/man1/llvm-ar.1 create mode 100644 static/freebsd/man1/llvm-as.1 create mode 100644 static/freebsd/man1/llvm-bcanalyzer.1 create mode 100644 static/freebsd/man1/llvm-cov.1 create mode 100644 static/freebsd/man1/llvm-cxxfilt.1 create mode 100644 static/freebsd/man1/llvm-diff.1 create mode 100644 static/freebsd/man1/llvm-dis.1 create mode 100644 static/freebsd/man1/llvm-dwarfdump.1 create mode 100644 static/freebsd/man1/llvm-dwarfutil.1 create mode 100644 static/freebsd/man1/llvm-extract.1 create mode 100644 static/freebsd/man1/llvm-link.1 create mode 100644 static/freebsd/man1/llvm-mca.1 create mode 100644 static/freebsd/man1/llvm-nm.1 create mode 100644 static/freebsd/man1/llvm-objcopy.1 create mode 100644 static/freebsd/man1/llvm-objdump.1 create mode 100644 static/freebsd/man1/llvm-pdbutil.1 create mode 100644 static/freebsd/man1/llvm-profdata.1 create mode 100644 static/freebsd/man1/llvm-ranlib.1 create mode 100644 static/freebsd/man1/llvm-readelf.1 create mode 100644 static/freebsd/man1/llvm-readobj.1 create mode 100644 static/freebsd/man1/llvm-size.1 create mode 100644 static/freebsd/man1/llvm-strings.1 create mode 100644 static/freebsd/man1/llvm-symbolizer.1 create mode 100644 static/freebsd/man1/ln.1 create mode 100644 static/freebsd/man1/locale.1 create mode 100644 static/freebsd/man1/localedef.1 create mode 100644 static/freebsd/man1/locate.1 create mode 100644 static/freebsd/man1/lock.1 create mode 100644 static/freebsd/man1/lockf.1 create mode 100644 static/freebsd/man1/lockstat.1 create mode 100644 static/freebsd/man1/logger.1 create mode 100644 static/freebsd/man1/login.1 create mode 100644 static/freebsd/man1/logins.1 create mode 100644 static/freebsd/man1/logname.1 create mode 100644 static/freebsd/man1/look.1 create mode 100644 static/freebsd/man1/lorder.1 create mode 100644 static/freebsd/man1/lp.1 create mode 100644 static/freebsd/man1/lpq.1 create mode 100644 static/freebsd/man1/lpr.1 create mode 100644 static/freebsd/man1/lprm.1 create mode 100644 static/freebsd/man1/lptest.1 create mode 100644 static/freebsd/man1/ls.1 create mode 100644 static/freebsd/man1/lsvfs.1 create mode 100644 static/freebsd/man1/lua.1 create mode 100644 static/freebsd/man1/luac.1 create mode 100644 static/freebsd/man1/lzmainfo.1 create mode 100644 static/freebsd/man1/m4.1 create mode 100644 static/freebsd/man1/mail.1 create mode 100644 static/freebsd/man1/mailq.1 create mode 100644 static/freebsd/man1/make.1 create mode 100644 static/freebsd/man1/man.1 create mode 100644 static/freebsd/man1/man.options.1 create mode 100644 static/freebsd/man1/mandoc.1 create mode 100644 static/freebsd/man1/manpath.1 create mode 100644 static/freebsd/man1/mcgrab.1 create mode 100644 static/freebsd/man1/mckey.1 create mode 100644 static/freebsd/man1/mcs.1 create mode 100644 static/freebsd/man1/mctest.1 create mode 100644 static/freebsd/man1/md5.1 create mode 100644 static/freebsd/man1/mdo.1 create mode 100644 static/freebsd/man1/mesg.1 create mode 100644 static/freebsd/man1/mididump.1 create mode 100644 static/freebsd/man1/ministat.1 create mode 100644 static/freebsd/man1/mkcsmapper.1 create mode 100644 static/freebsd/man1/mkdep.1 create mode 100644 static/freebsd/man1/mkdir.1 create mode 100644 static/freebsd/man1/mkesdb.1 create mode 100644 static/freebsd/man1/mkfifo.1 create mode 100644 static/freebsd/man1/mkfilters.1 create mode 100644 static/freebsd/man1/mkimg.1 create mode 100644 static/freebsd/man1/mkstr.1 create mode 100644 static/freebsd/man1/mktemp.1 create mode 100644 static/freebsd/man1/mptable.1 create mode 100644 static/freebsd/man1/msgs.1 create mode 100644 static/freebsd/man1/mt.1 create mode 100644 static/freebsd/man1/mv.1 create mode 100644 static/freebsd/man1/nc.1 create mode 100644 static/freebsd/man1/ncal.1 create mode 100644 static/freebsd/man1/netstat.1 create mode 100644 static/freebsd/man1/newaliases.1 create mode 100644 static/freebsd/man1/newgrp.1 create mode 100644 static/freebsd/man1/nfsstat.1 create mode 100644 static/freebsd/man1/nice.1 create mode 100644 static/freebsd/man1/nl.1 create mode 100644 static/freebsd/man1/nm.1 create mode 100644 static/freebsd/man1/nohup.1 create mode 100644 static/freebsd/man1/nproc.1 create mode 100644 static/freebsd/man1/od.1 create mode 100644 static/freebsd/man1/openssl-asn1parse.1 create mode 100644 static/freebsd/man1/openssl-ca.1 create mode 100644 static/freebsd/man1/openssl-ciphers.1 create mode 100644 static/freebsd/man1/openssl-cmds.1 create mode 100644 static/freebsd/man1/openssl-cmp.1 create mode 100644 static/freebsd/man1/openssl-cms.1 create mode 100644 static/freebsd/man1/openssl-crl.1 create mode 100644 static/freebsd/man1/openssl-crl2pkcs7.1 create mode 100644 static/freebsd/man1/openssl-dgst.1 create mode 100644 static/freebsd/man1/openssl-dhparam.1 create mode 100644 static/freebsd/man1/openssl-dsa.1 create mode 100644 static/freebsd/man1/openssl-dsaparam.1 create mode 100644 static/freebsd/man1/openssl-ec.1 create mode 100644 static/freebsd/man1/openssl-ecparam.1 create mode 100644 static/freebsd/man1/openssl-enc.1 create mode 100644 static/freebsd/man1/openssl-engine.1 create mode 100644 static/freebsd/man1/openssl-errstr.1 create mode 100644 static/freebsd/man1/openssl-fipsinstall.1 create mode 100644 static/freebsd/man1/openssl-format-options.1 create mode 100644 static/freebsd/man1/openssl-gendsa.1 create mode 100644 static/freebsd/man1/openssl-genpkey.1 create mode 100644 static/freebsd/man1/openssl-genrsa.1 create mode 100644 static/freebsd/man1/openssl-info.1 create mode 100644 static/freebsd/man1/openssl-kdf.1 create mode 100644 static/freebsd/man1/openssl-list.1 create mode 100644 static/freebsd/man1/openssl-mac.1 create mode 100644 static/freebsd/man1/openssl-namedisplay-options.1 create mode 100644 static/freebsd/man1/openssl-nseq.1 create mode 100644 static/freebsd/man1/openssl-ocsp.1 create mode 100644 static/freebsd/man1/openssl-passphrase-options.1 create mode 100644 static/freebsd/man1/openssl-passwd.1 create mode 100644 static/freebsd/man1/openssl-pkcs12.1 create mode 100644 static/freebsd/man1/openssl-pkcs7.1 create mode 100644 static/freebsd/man1/openssl-pkcs8.1 create mode 100644 static/freebsd/man1/openssl-pkey.1 create mode 100644 static/freebsd/man1/openssl-pkeyparam.1 create mode 100644 static/freebsd/man1/openssl-pkeyutl.1 create mode 100644 static/freebsd/man1/openssl-prime.1 create mode 100644 static/freebsd/man1/openssl-rand.1 create mode 100644 static/freebsd/man1/openssl-rehash.1 create mode 100644 static/freebsd/man1/openssl-req.1 create mode 100644 static/freebsd/man1/openssl-rsa.1 create mode 100644 static/freebsd/man1/openssl-rsautl.1 create mode 100644 static/freebsd/man1/openssl-s_client.1 create mode 100644 static/freebsd/man1/openssl-s_server.1 create mode 100644 static/freebsd/man1/openssl-s_time.1 create mode 100644 static/freebsd/man1/openssl-sess_id.1 create mode 100644 static/freebsd/man1/openssl-skeyutl.1 create mode 100644 static/freebsd/man1/openssl-smime.1 create mode 100644 static/freebsd/man1/openssl-speed.1 create mode 100644 static/freebsd/man1/openssl-spkac.1 create mode 100644 static/freebsd/man1/openssl-srp.1 create mode 100644 static/freebsd/man1/openssl-storeutl.1 create mode 100644 static/freebsd/man1/openssl-ts.1 create mode 100644 static/freebsd/man1/openssl-verification-options.1 create mode 100644 static/freebsd/man1/openssl-verify.1 create mode 100644 static/freebsd/man1/openssl-version.1 create mode 100644 static/freebsd/man1/openssl-x509.1 create mode 100644 static/freebsd/man1/openssl.1 create mode 100644 static/freebsd/man1/openzfsonosx-1.8.1 create mode 100644 static/freebsd/man1/opt.1 create mode 100644 static/freebsd/man1/or3.1 create mode 100644 static/freebsd/man1/p.1 create mode 100644 static/freebsd/man1/pagesize.1 create mode 100644 static/freebsd/man1/pagsh.1 create mode 100644 static/freebsd/man1/pamtest.1 create mode 100644 static/freebsd/man1/passwd.1 create mode 100644 static/freebsd/man1/paste.1 create mode 100644 static/freebsd/man1/patch.1 create mode 100644 static/freebsd/man1/pathchk.1 create mode 100644 static/freebsd/man1/pax.1 create mode 100644 static/freebsd/man1/pcap-config.1 create mode 100644 static/freebsd/man1/perror.1 create mode 100644 static/freebsd/man1/pfrom.1 create mode 100644 static/freebsd/man1/pipe1.1 create mode 100644 static/freebsd/man1/pkgconf.1 create mode 100644 static/freebsd/man1/pkill.1 create mode 100644 static/freebsd/man1/plockstat.1 create mode 100644 static/freebsd/man1/posixmqcontrol.1 create mode 100644 static/freebsd/man1/posixshmcontrol.1 create mode 100644 static/freebsd/man1/pr.1 create mode 100644 static/freebsd/man1/praudit.1 create mode 100644 static/freebsd/man1/printenv.1 create mode 100644 static/freebsd/man1/printf.1 create mode 100644 static/freebsd/man1/proccontrol.1 create mode 100644 static/freebsd/man1/procstat.1 create mode 100644 static/freebsd/man1/protect.1 create mode 100644 static/freebsd/man1/ps.1 create mode 100644 static/freebsd/man1/pwait.1 create mode 100644 static/freebsd/man1/pwd.1 create mode 100644 static/freebsd/man1/quota.1 create mode 100644 static/freebsd/man1/raidz_test.1 create mode 100644 static/freebsd/man1/ranlib.1 create mode 100644 static/freebsd/man1/rcopy.1 create mode 100644 static/freebsd/man1/rcp.1 create mode 100644 static/freebsd/man1/rdma_client.1 create mode 100644 static/freebsd/man1/rdma_server.1 create mode 100644 static/freebsd/man1/rdma_xclient.1 create mode 100644 static/freebsd/man1/rdma_xserver.1 create mode 100644 static/freebsd/man1/readelf.1 create mode 100644 static/freebsd/man1/realpath.1 create mode 100644 static/freebsd/man1/recoverdisk.1 create mode 100644 static/freebsd/man1/resizewin.1 create mode 100644 static/freebsd/man1/return2.1 create mode 100644 static/freebsd/man1/return3.1 create mode 100644 static/freebsd/man1/rev.1 create mode 100644 static/freebsd/man1/revoke.1 create mode 100644 static/freebsd/man1/rfcomm_sppd.1 create mode 100644 static/freebsd/man1/riostream.1 create mode 100644 static/freebsd/man1/rm.1 create mode 100644 static/freebsd/man1/rmdir.1 create mode 100644 static/freebsd/man1/rpcgen.1 create mode 100644 static/freebsd/man1/rping.1 create mode 100644 static/freebsd/man1/rs.1 create mode 100644 static/freebsd/man1/rsh.1 create mode 100644 static/freebsd/man1/rstream.1 create mode 100644 static/freebsd/man1/rtld.1 create mode 100644 static/freebsd/man1/rtprio.1 create mode 100644 static/freebsd/man1/runat.1 create mode 100644 static/freebsd/man1/rup.1 create mode 100644 static/freebsd/man1/ruptime.1 create mode 100644 static/freebsd/man1/rusers.1 create mode 100644 static/freebsd/man1/rwall.1 create mode 100644 static/freebsd/man1/rwho.1 create mode 100644 static/freebsd/man1/scp.1 create mode 100644 static/freebsd/man1/script.1 create mode 100644 static/freebsd/man1/sdiff.1 create mode 100644 static/freebsd/man1/sed.1 create mode 100644 static/freebsd/man1/semi1.1 create mode 100644 static/freebsd/man1/semi2.1 create mode 100644 static/freebsd/man1/seq.1 create mode 100644 static/freebsd/man1/setfacl.1 create mode 100644 static/freebsd/man1/setfib.1 create mode 100644 static/freebsd/man1/sftp.1 create mode 100644 static/freebsd/man1/sh.1 create mode 100644 static/freebsd/man1/size.1 create mode 100644 static/freebsd/man1/sleep.1 create mode 100644 static/freebsd/man1/smbutil.1 create mode 100644 static/freebsd/man1/sockstat.1 create mode 100644 static/freebsd/man1/soelim.1 create mode 100644 static/freebsd/man1/split.1 create mode 100644 static/freebsd/man1/sqlite3.1 create mode 100644 static/freebsd/man1/ssh-add.1 create mode 100644 static/freebsd/man1/ssh-agent.1 create mode 100644 static/freebsd/man1/ssh-copy-id.1 create mode 100644 static/freebsd/man1/ssh-keygen.1 create mode 100644 static/freebsd/man1/ssh-keyscan.1 create mode 100644 static/freebsd/man1/ssh.1 create mode 100644 static/freebsd/man1/stat.1 create mode 100644 static/freebsd/man1/stdbuf.1 create mode 100644 static/freebsd/man1/strings.1 create mode 100644 static/freebsd/man1/strip.1 create mode 100644 static/freebsd/man1/stty.1 create mode 100644 static/freebsd/man1/su.1 create mode 100644 static/freebsd/man1/subshell2.1 create mode 100644 static/freebsd/man1/systat.1 create mode 100644 static/freebsd/man1/t.1 create mode 100644 static/freebsd/man1/tabs.1 create mode 100644 static/freebsd/man1/tail.1 create mode 100644 static/freebsd/man1/talk.1 create mode 100644 static/freebsd/man1/tcopy.1 create mode 100644 static/freebsd/man1/td.1 create mode 100644 static/freebsd/man1/tee.1 create mode 100644 static/freebsd/man1/telnet.1 create mode 100644 static/freebsd/man1/test-runner.1 create mode 100644 static/freebsd/man1/test.1 create mode 100644 static/freebsd/man1/tftp.1 create mode 100644 static/freebsd/man1/time.1 create mode 100644 static/freebsd/man1/timeout.1 create mode 100644 static/freebsd/man1/tip.1 create mode 100644 static/freebsd/man1/top.1 create mode 100644 static/freebsd/man1/touch.1 create mode 100644 static/freebsd/man1/tput.1 create mode 100644 static/freebsd/man1/tr.1 create mode 100644 static/freebsd/man1/true.1 create mode 100644 static/freebsd/man1/truncate.1 create mode 100644 static/freebsd/man1/truss.1 create mode 100644 static/freebsd/man1/ts.1 create mode 100644 static/freebsd/man1/tset.1 create mode 100644 static/freebsd/man1/tsget.1 create mode 100644 static/freebsd/man1/tsort.1 create mode 100644 static/freebsd/man1/tty.1 create mode 100644 static/freebsd/man1/ucmatose.1 create mode 100644 static/freebsd/man1/udaddy.1 create mode 100644 static/freebsd/man1/udpong.1 create mode 100644 static/freebsd/man1/uhsoctl.1 create mode 100644 static/freebsd/man1/ul.1 create mode 100644 static/freebsd/man1/uname.1 create mode 100644 static/freebsd/man1/unbound-host.1 create mode 100644 static/freebsd/man1/unifdef.1 create mode 100644 static/freebsd/man1/uniq.1 create mode 100644 static/freebsd/man1/units.1 create mode 100644 static/freebsd/man1/unvis.1 create mode 100644 static/freebsd/man1/uptime.1 create mode 100644 static/freebsd/man1/usbhidaction.1 create mode 100644 static/freebsd/man1/usbhidctl.1 create mode 100644 static/freebsd/man1/users.1 create mode 100644 static/freebsd/man1/uuidgen.1 create mode 100644 static/freebsd/man1/vacation.1 create mode 100644 static/freebsd/man1/vgrind.1 create mode 100644 static/freebsd/man1/vi.1 create mode 100644 static/freebsd/man1/vidcontrol.1 create mode 100644 static/freebsd/man1/vis.1 create mode 100644 static/freebsd/man1/w.1 create mode 100644 static/freebsd/man1/wall.1 create mode 100644 static/freebsd/man1/wc.1 create mode 100644 static/freebsd/man1/what.1 create mode 100644 static/freebsd/man1/whereis.1 create mode 100644 static/freebsd/man1/which.1 create mode 100644 static/freebsd/man1/who.1 create mode 100644 static/freebsd/man1/whoami.1 create mode 100644 static/freebsd/man1/whois.1 create mode 100644 static/freebsd/man1/write.1 create mode 100644 static/freebsd/man1/xargs.1 create mode 100644 static/freebsd/man1/xmlwf.1 create mode 100644 static/freebsd/man1/xo.1 create mode 100644 static/freebsd/man1/xohtml.1 create mode 100644 static/freebsd/man1/xolint.1 create mode 100644 static/freebsd/man1/xopo.1 create mode 100644 static/freebsd/man1/xstr.1 create mode 100644 static/freebsd/man1/xz.1 create mode 100644 static/freebsd/man1/xzdec.1 create mode 100644 static/freebsd/man1/yacc.1 create mode 100644 static/freebsd/man1/yes.1 create mode 100644 static/freebsd/man1/ypcat.1 create mode 100644 static/freebsd/man1/ypmatch.1 create mode 100644 static/freebsd/man1/ypwhich.1 create mode 100644 static/freebsd/man1/zarcstat.1 create mode 100644 static/freebsd/man1/zarcsummary.1 create mode 100644 static/freebsd/man1/zdiff.1 create mode 100644 static/freebsd/man1/zforce.1 create mode 100644 static/freebsd/man1/zgrep.1 create mode 100644 static/freebsd/man1/zhack.1 create mode 100644 static/freebsd/man1/zilstat.1 create mode 100644 static/freebsd/man1/zmore.1 create mode 100644 static/freebsd/man1/znew.1 create mode 100644 static/freebsd/man1/zol-0.6.1 create mode 100644 static/freebsd/man1/zstd.1 create mode 100644 static/freebsd/man1/zstdgrep.1 create mode 100644 static/freebsd/man1/zstdless.1 create mode 100644 static/freebsd/man1/ztest.1 create mode 100644 static/freebsd/man1/zvol_wait.1 create mode 100644 static/freebsd/man2/1.2 create mode 100644 static/freebsd/man2/2.2 create mode 100644 static/freebsd/man2/3.2 create mode 100644 static/freebsd/man2/4.2 create mode 100644 static/freebsd/man2/5.2 create mode 100644 static/freebsd/man2/6.2 create mode 100644 static/freebsd/man2/7.2 create mode 100644 static/freebsd/man2/8.2 create mode 100644 static/freebsd/man2/9.2 create mode 100644 static/freebsd/man2/_exit.2 create mode 100644 static/freebsd/man2/_umtx_op.2 create mode 100644 static/freebsd/man2/abort2.2 create mode 100644 static/freebsd/man2/accept.2 create mode 100644 static/freebsd/man2/access.2 create mode 100644 static/freebsd/man2/acct.2 create mode 100644 static/freebsd/man2/adjtime.2 create mode 100644 static/freebsd/man2/aio_cancel.2 create mode 100644 static/freebsd/man2/aio_error.2 create mode 100644 static/freebsd/man2/aio_fsync.2 create mode 100644 static/freebsd/man2/aio_mlock.2 create mode 100644 static/freebsd/man2/aio_read.2 create mode 100644 static/freebsd/man2/aio_return.2 create mode 100644 static/freebsd/man2/aio_suspend.2 create mode 100644 static/freebsd/man2/aio_waitcomplete.2 create mode 100644 static/freebsd/man2/aio_write.2 create mode 100644 static/freebsd/man2/arm_drain_writebuf.2 create mode 100644 static/freebsd/man2/arm_sync_icache.2 create mode 100644 static/freebsd/man2/audit.2 create mode 100644 static/freebsd/man2/auditctl.2 create mode 100644 static/freebsd/man2/auditon.2 create mode 100644 static/freebsd/man2/bad-parm-exp2.2 create mode 100644 static/freebsd/man2/bad-parm-exp3.2 create mode 100644 static/freebsd/man2/bad-parm-exp4.2 create mode 100644 static/freebsd/man2/bad-parm-exp5.2 create mode 100644 static/freebsd/man2/bad-parm-exp6.2 create mode 100644 static/freebsd/man2/bind.2 create mode 100644 static/freebsd/man2/bindat.2 create mode 100644 static/freebsd/man2/brk.2 create mode 100644 static/freebsd/man2/cap_enter.2 create mode 100644 static/freebsd/man2/cap_fcntls_limit.2 create mode 100644 static/freebsd/man2/cap_ioctls_limit.2 create mode 100644 static/freebsd/man2/cap_rights_limit.2 create mode 100644 static/freebsd/man2/chdir.2 create mode 100644 static/freebsd/man2/chflags.2 create mode 100644 static/freebsd/man2/chmod.2 create mode 100644 static/freebsd/man2/chown.2 create mode 100644 static/freebsd/man2/chroot.2 create mode 100644 static/freebsd/man2/clock_gettime.2 create mode 100644 static/freebsd/man2/close.2 create mode 100644 static/freebsd/man2/closefrom.2 create mode 100644 static/freebsd/man2/connect.2 create mode 100644 static/freebsd/man2/connectat.2 create mode 100644 static/freebsd/man2/copy_file_range.2 create mode 100644 static/freebsd/man2/cpuset.2 create mode 100644 static/freebsd/man2/cpuset_getaffinity.2 create mode 100644 static/freebsd/man2/cpuset_getdomain.2 create mode 100644 static/freebsd/man2/creat.2 create mode 100644 static/freebsd/man2/csh.2 create mode 100644 static/freebsd/man2/dup.2 create mode 100644 static/freebsd/man2/eventfd.2 create mode 100644 static/freebsd/man2/example.2 create mode 100644 static/freebsd/man2/execve.2 create mode 100644 static/freebsd/man2/expected.status.2 create mode 100644 static/freebsd/man2/expected.stderr.2 create mode 100644 static/freebsd/man2/expected.stdout.2 create mode 100644 static/freebsd/man2/extattr_get_file.2 create mode 100644 static/freebsd/man2/fcntl.2 create mode 100644 static/freebsd/man2/ffclock.2 create mode 100644 static/freebsd/man2/fhlink.2 create mode 100644 static/freebsd/man2/fhopen.2 create mode 100644 static/freebsd/man2/fhreadlink.2 create mode 100644 static/freebsd/man2/firewall.2 create mode 100644 static/freebsd/man2/flock.2 create mode 100644 static/freebsd/man2/fork.2 create mode 100644 static/freebsd/man2/freebsd-11.2 create mode 100644 static/freebsd/man2/freenas-9.10.2 create mode 100644 static/freebsd/man2/fspacectl.2 create mode 100644 static/freebsd/man2/fsync.2 create mode 100644 static/freebsd/man2/getaudit.2 create mode 100644 static/freebsd/man2/getauid.2 create mode 100644 static/freebsd/man2/getdirentries.2 create mode 100644 static/freebsd/man2/getdtablesize.2 create mode 100644 static/freebsd/man2/getfh.2 create mode 100644 static/freebsd/man2/getfsstat.2 create mode 100644 static/freebsd/man2/getgid.2 create mode 100644 static/freebsd/man2/getgroups.2 create mode 100644 static/freebsd/man2/getitimer.2 create mode 100644 static/freebsd/man2/getlogin.2 create mode 100644 static/freebsd/man2/getloginclass.2 create mode 100644 static/freebsd/man2/getpeername.2 create mode 100644 static/freebsd/man2/getpgrp.2 create mode 100644 static/freebsd/man2/getpid.2 create mode 100644 static/freebsd/man2/getpriority.2 create mode 100644 static/freebsd/man2/getrandom.2 create mode 100644 static/freebsd/man2/getrlimit.2 create mode 100644 static/freebsd/man2/getrlimitusage.2 create mode 100644 static/freebsd/man2/getrusage.2 create mode 100644 static/freebsd/man2/getsid.2 create mode 100644 static/freebsd/man2/getsockname.2 create mode 100644 static/freebsd/man2/getsockopt.2 create mode 100644 static/freebsd/man2/gettimeofday.2 create mode 100644 static/freebsd/man2/getuid.2 create mode 100644 static/freebsd/man2/i386_get_ioperm.2 create mode 100644 static/freebsd/man2/i386_get_ldt.2 create mode 100644 static/freebsd/man2/i386_vm86.2 create mode 100644 static/freebsd/man2/inotify.2 create mode 100644 static/freebsd/man2/intro.2 create mode 100644 static/freebsd/man2/ioctl.2 create mode 100644 static/freebsd/man2/ipv6.2 create mode 100644 static/freebsd/man2/issetugid.2 create mode 100644 static/freebsd/man2/jail.2 create mode 100644 static/freebsd/man2/kcmp.2 create mode 100644 static/freebsd/man2/kenv.2 create mode 100644 static/freebsd/man2/kexec_load.2 create mode 100644 static/freebsd/man2/kill.2 create mode 100644 static/freebsd/man2/killpg.2 create mode 100644 static/freebsd/man2/kldfind.2 create mode 100644 static/freebsd/man2/kldfirstmod.2 create mode 100644 static/freebsd/man2/kldload.2 create mode 100644 static/freebsd/man2/kldnext.2 create mode 100644 static/freebsd/man2/kldstat.2 create mode 100644 static/freebsd/man2/kldsym.2 create mode 100644 static/freebsd/man2/kldunload.2 create mode 100644 static/freebsd/man2/kqueue.2 create mode 100644 static/freebsd/man2/ktrace.2 create mode 100644 static/freebsd/man2/link.2 create mode 100644 static/freebsd/man2/lio_listio.2 create mode 100644 static/freebsd/man2/listen.2 create mode 100644 static/freebsd/man2/lseek.2 create mode 100644 static/freebsd/man2/madvise.2 create mode 100644 static/freebsd/man2/membarrier.2 create mode 100644 static/freebsd/man2/mincore.2 create mode 100644 static/freebsd/man2/minherit.2 create mode 100644 static/freebsd/man2/mkdir.2 create mode 100644 static/freebsd/man2/mkfifo.2 create mode 100644 static/freebsd/man2/mknod.2 create mode 100644 static/freebsd/man2/mlock.2 create mode 100644 static/freebsd/man2/mlockall.2 create mode 100644 static/freebsd/man2/mmap.2 create mode 100644 static/freebsd/man2/modfind.2 create mode 100644 static/freebsd/man2/modnext.2 create mode 100644 static/freebsd/man2/modstat.2 create mode 100644 static/freebsd/man2/mount.2 create mode 100644 static/freebsd/man2/mprotect.2 create mode 100644 static/freebsd/man2/mq_close.2 create mode 100644 static/freebsd/man2/mq_getattr.2 create mode 100644 static/freebsd/man2/mq_notify.2 create mode 100644 static/freebsd/man2/mq_open.2 create mode 100644 static/freebsd/man2/mq_receive.2 create mode 100644 static/freebsd/man2/mq_send.2 create mode 100644 static/freebsd/man2/mq_setattr.2 create mode 100644 static/freebsd/man2/mq_unlink.2 create mode 100644 static/freebsd/man2/msgctl.2 create mode 100644 static/freebsd/man2/msgget.2 create mode 100644 static/freebsd/man2/msgrcv.2 create mode 100644 static/freebsd/man2/msgsnd.2 create mode 100644 static/freebsd/man2/msync.2 create mode 100644 static/freebsd/man2/munmap.2 create mode 100644 static/freebsd/man2/nanosleep.2 create mode 100644 static/freebsd/man2/nfssvc.2 create mode 100644 static/freebsd/man2/ntp_adjtime.2 create mode 100644 static/freebsd/man2/open.2 create mode 100644 static/freebsd/man2/openzfs-2.2 create mode 100644 static/freebsd/man2/p.2 create mode 100644 static/freebsd/man2/pathconf.2 create mode 100644 static/freebsd/man2/pdfork.2 create mode 100644 static/freebsd/man2/pipe.2 create mode 100644 static/freebsd/man2/poll.2 create mode 100644 static/freebsd/man2/posix_fadvise.2 create mode 100644 static/freebsd/man2/posix_fallocate.2 create mode 100644 static/freebsd/man2/posix_openpt.2 create mode 100644 static/freebsd/man2/procctl.2 create mode 100644 static/freebsd/man2/profil.2 create mode 100644 static/freebsd/man2/pselect.2 create mode 100644 static/freebsd/man2/ptrace.2 create mode 100644 static/freebsd/man2/quotactl.2 create mode 100644 static/freebsd/man2/rctl_add_rule.2 create mode 100644 static/freebsd/man2/read.2 create mode 100644 static/freebsd/man2/readlink.2 create mode 100644 static/freebsd/man2/reboot.2 create mode 100644 static/freebsd/man2/recv.2 create mode 100644 static/freebsd/man2/redirection-error2.2 create mode 100644 static/freebsd/man2/rename.2 create mode 100644 static/freebsd/man2/revoke.2 create mode 100644 static/freebsd/man2/rfork.2 create mode 100644 static/freebsd/man2/rmdir.2 create mode 100644 static/freebsd/man2/rtprio.2 create mode 100644 static/freebsd/man2/sched_get_priority_max.2 create mode 100644 static/freebsd/man2/sched_setparam.2 create mode 100644 static/freebsd/man2/sched_setscheduler.2 create mode 100644 static/freebsd/man2/sched_yield.2 create mode 100644 static/freebsd/man2/sctp_generic_recvmsg.2 create mode 100644 static/freebsd/man2/sctp_generic_sendmsg.2 create mode 100644 static/freebsd/man2/sctp_peeloff.2 create mode 100644 static/freebsd/man2/select.2 create mode 100644 static/freebsd/man2/semctl.2 create mode 100644 static/freebsd/man2/semget.2 create mode 100644 static/freebsd/man2/semop.2 create mode 100644 static/freebsd/man2/send.2 create mode 100644 static/freebsd/man2/sendfile.2 create mode 100644 static/freebsd/man2/setaudit.2 create mode 100644 static/freebsd/man2/setauid.2 create mode 100644 static/freebsd/man2/setcred.2 create mode 100644 static/freebsd/man2/setfib.2 create mode 100644 static/freebsd/man2/setgroups.2 create mode 100644 static/freebsd/man2/setpgid.2 create mode 100644 static/freebsd/man2/setregid.2 create mode 100644 static/freebsd/man2/setresuid.2 create mode 100644 static/freebsd/man2/setreuid.2 create mode 100644 static/freebsd/man2/setsid.2 create mode 100644 static/freebsd/man2/setuid.2 create mode 100644 static/freebsd/man2/shm_open.2 create mode 100644 static/freebsd/man2/shmat.2 create mode 100644 static/freebsd/man2/shmctl.2 create mode 100644 static/freebsd/man2/shmget.2 create mode 100644 static/freebsd/man2/shutdown.2 create mode 100644 static/freebsd/man2/sigaction.2 create mode 100644 static/freebsd/man2/sigaltstack.2 create mode 100644 static/freebsd/man2/sigfastblock.2 create mode 100644 static/freebsd/man2/sigpause.2 create mode 100644 static/freebsd/man2/sigpending.2 create mode 100644 static/freebsd/man2/sigprocmask.2 create mode 100644 static/freebsd/man2/sigqueue.2 create mode 100644 static/freebsd/man2/sigreturn.2 create mode 100644 static/freebsd/man2/sigsetmask.2 create mode 100644 static/freebsd/man2/sigstack.2 create mode 100644 static/freebsd/man2/sigsuspend.2 create mode 100644 static/freebsd/man2/sigvec.2 create mode 100644 static/freebsd/man2/sigwait.2 create mode 100644 static/freebsd/man2/sigwaitinfo.2 create mode 100644 static/freebsd/man2/socket.2 create mode 100644 static/freebsd/man2/socketpair.2 create mode 100644 static/freebsd/man2/stat.2 create mode 100644 static/freebsd/man2/statfs.2 create mode 100644 static/freebsd/man2/swapon.2 create mode 100644 static/freebsd/man2/symlink.2 create mode 100644 static/freebsd/man2/sync.2 create mode 100644 static/freebsd/man2/sysarch.2 create mode 100644 static/freebsd/man2/syscall.2 create mode 100644 static/freebsd/man2/t.2 create mode 100644 static/freebsd/man2/thr_exit.2 create mode 100644 static/freebsd/man2/thr_kill.2 create mode 100644 static/freebsd/man2/thr_new.2 create mode 100644 static/freebsd/man2/thr_self.2 create mode 100644 static/freebsd/man2/thr_set_name.2 create mode 100644 static/freebsd/man2/thr_suspend.2 create mode 100644 static/freebsd/man2/thr_wake.2 create mode 100644 static/freebsd/man2/timer_create.2 create mode 100644 static/freebsd/man2/timer_delete.2 create mode 100644 static/freebsd/man2/timer_settime.2 create mode 100644 static/freebsd/man2/timerfd.2 create mode 100644 static/freebsd/man2/truncate.2 create mode 100644 static/freebsd/man2/umask.2 create mode 100644 static/freebsd/man2/undelete.2 create mode 100644 static/freebsd/man2/unlink.2 create mode 100644 static/freebsd/man2/utimensat.2 create mode 100644 static/freebsd/man2/utimes.2 create mode 100644 static/freebsd/man2/utrace.2 create mode 100644 static/freebsd/man2/uuidgen.2 create mode 100644 static/freebsd/man2/vfork.2 create mode 100644 static/freebsd/man2/wait.2 create mode 100644 static/freebsd/man2/write.2 create mode 100644 static/freebsd/man3/1.3 create mode 100644 static/freebsd/man3/2.3 create mode 100644 static/freebsd/man3/3.3 create mode 100644 static/freebsd/man3/4.3 create mode 100644 static/freebsd/man3/5.3 create mode 100644 static/freebsd/man3/6.3 create mode 100644 static/freebsd/man3/7.3 create mode 100644 static/freebsd/man3/8.3 create mode 100644 static/freebsd/man3/9.3 create mode 100644 static/freebsd/man3/ADMISSIONS.3 create mode 100644 static/freebsd/man3/ASN1_EXTERN_FUNCS.3 create mode 100644 static/freebsd/man3/ASN1_INTEGER_get_int64.3 create mode 100644 static/freebsd/man3/ASN1_INTEGER_new.3 create mode 100644 static/freebsd/man3/ASN1_ITEM_lookup.3 create mode 100644 static/freebsd/man3/ASN1_OBJECT_new.3 create mode 100644 static/freebsd/man3/ASN1_STRING_TABLE_add.3 create mode 100644 static/freebsd/man3/ASN1_STRING_length.3 create mode 100644 static/freebsd/man3/ASN1_STRING_new.3 create mode 100644 static/freebsd/man3/ASN1_STRING_print_ex.3 create mode 100644 static/freebsd/man3/ASN1_TIME_set.3 create mode 100644 static/freebsd/man3/ASN1_TYPE_get.3 create mode 100644 static/freebsd/man3/ASN1_aux_cb.3 create mode 100644 static/freebsd/man3/ASN1_generate_nconf.3 create mode 100644 static/freebsd/man3/ASN1_item_d2i_bio.3 create mode 100644 static/freebsd/man3/ASN1_item_new.3 create mode 100644 static/freebsd/man3/ASN1_item_sign.3 create mode 100644 static/freebsd/man3/ASYNC_WAIT_CTX_new.3 create mode 100644 static/freebsd/man3/ASYNC_start_job.3 create mode 100644 static/freebsd/man3/ATOMIC_VAR_INIT.3 3.html create mode 100644 static/freebsd/man3/BF_encrypt.3 create mode 100644 static/freebsd/man3/BIO_ADDR.3 create mode 100644 static/freebsd/man3/BIO_ADDRINFO.3 create mode 100644 static/freebsd/man3/BIO_connect.3 create mode 100644 static/freebsd/man3/BIO_ctrl.3 create mode 100644 static/freebsd/man3/BIO_f_base64.3 create mode 100644 static/freebsd/man3/BIO_f_buffer.3 create mode 100644 static/freebsd/man3/BIO_f_cipher.3 create mode 100644 static/freebsd/man3/BIO_f_md.3 create mode 100644 static/freebsd/man3/BIO_f_null.3 create mode 100644 static/freebsd/man3/BIO_f_prefix.3 create mode 100644 static/freebsd/man3/BIO_f_readbuffer.3 create mode 100644 static/freebsd/man3/BIO_f_ssl.3 create mode 100644 static/freebsd/man3/BIO_find_type.3 create mode 100644 static/freebsd/man3/BIO_get_data.3 create mode 100644 static/freebsd/man3/BIO_get_ex_new_index.3 create mode 100644 static/freebsd/man3/BIO_get_rpoll_descriptor.3 create mode 100644 static/freebsd/man3/BIO_meth_new.3 create mode 100644 static/freebsd/man3/BIO_new.3 create mode 100644 static/freebsd/man3/BIO_new_CMS.3 create mode 100644 static/freebsd/man3/BIO_parse_hostserv.3 create mode 100644 static/freebsd/man3/BIO_printf.3 create mode 100644 static/freebsd/man3/BIO_push.3 create mode 100644 static/freebsd/man3/BIO_read.3 create mode 100644 static/freebsd/man3/BIO_s_accept.3 create mode 100644 static/freebsd/man3/BIO_s_bio.3 create mode 100644 static/freebsd/man3/BIO_s_connect.3 create mode 100644 static/freebsd/man3/BIO_s_core.3 create mode 100644 static/freebsd/man3/BIO_s_datagram.3 create mode 100644 static/freebsd/man3/BIO_s_dgram_pair.3 create mode 100644 static/freebsd/man3/BIO_s_fd.3 create mode 100644 static/freebsd/man3/BIO_s_file.3 create mode 100644 static/freebsd/man3/BIO_s_mem.3 create mode 100644 static/freebsd/man3/BIO_s_null.3 create mode 100644 static/freebsd/man3/BIO_s_socket.3 create mode 100644 static/freebsd/man3/BIO_sendmmsg.3 create mode 100644 static/freebsd/man3/BIO_set_callback.3 create mode 100644 static/freebsd/man3/BIO_set_flags.3 create mode 100644 static/freebsd/man3/BIO_should_retry.3 create mode 100644 static/freebsd/man3/BIO_socket_wait.3 create mode 100644 static/freebsd/man3/BN_BLINDING_new.3 create mode 100644 static/freebsd/man3/BN_CTX_new.3 create mode 100644 static/freebsd/man3/BN_CTX_start.3 create mode 100644 static/freebsd/man3/BN_add.3 create mode 100644 static/freebsd/man3/BN_add_word.3 create mode 100644 static/freebsd/man3/BN_bn2bin.3 create mode 100644 static/freebsd/man3/BN_cmp.3 create mode 100644 static/freebsd/man3/BN_copy.3 create mode 100644 static/freebsd/man3/BN_generate_prime.3 create mode 100644 static/freebsd/man3/BN_mod_exp_mont.3 create mode 100644 static/freebsd/man3/BN_mod_inverse.3 create mode 100644 static/freebsd/man3/BN_mod_mul_montgomery.3 create mode 100644 static/freebsd/man3/BN_mod_mul_reciprocal.3 create mode 100644 static/freebsd/man3/BN_new.3 create mode 100644 static/freebsd/man3/BN_num_bytes.3 create mode 100644 static/freebsd/man3/BN_rand.3 create mode 100644 static/freebsd/man3/BN_security_bits.3 create mode 100644 static/freebsd/man3/BN_set_bit.3 create mode 100644 static/freebsd/man3/BN_swap.3 create mode 100644 static/freebsd/man3/BN_zero.3 create mode 100644 static/freebsd/man3/BUF_MEM_new.3 create mode 100644 static/freebsd/man3/CMAC_CTX.3 create mode 100644 static/freebsd/man3/CMSG_DATA.3 3.html create mode 100644 static/freebsd/man3/CMS_EncryptedData_decrypt.3 create mode 100644 static/freebsd/man3/CMS_EncryptedData_encrypt.3 create mode 100644 static/freebsd/man3/CMS_EncryptedData_set1_key.3 create mode 100644 static/freebsd/man3/CMS_EnvelopedData_create.3 create mode 100644 static/freebsd/man3/CMS_add0_cert.3 create mode 100644 static/freebsd/man3/CMS_add1_recipient_cert.3 create mode 100644 static/freebsd/man3/CMS_add1_signer.3 create mode 100644 static/freebsd/man3/CMS_compress.3 create mode 100644 static/freebsd/man3/CMS_data_create.3 create mode 100644 static/freebsd/man3/CMS_decrypt.3 create mode 100644 static/freebsd/man3/CMS_digest_create.3 create mode 100644 static/freebsd/man3/CMS_encrypt.3 create mode 100644 static/freebsd/man3/CMS_final.3 create mode 100644 static/freebsd/man3/CMS_get0_RecipientInfos.3 create mode 100644 static/freebsd/man3/CMS_get0_SignerInfos.3 create mode 100644 static/freebsd/man3/CMS_get0_type.3 create mode 100644 static/freebsd/man3/CMS_get1_ReceiptRequest.3 create mode 100644 static/freebsd/man3/CMS_sign.3 create mode 100644 static/freebsd/man3/CMS_sign_receipt.3 create mode 100644 static/freebsd/man3/CMS_signed_get_attr.3 create mode 100644 static/freebsd/man3/CMS_uncompress.3 create mode 100644 static/freebsd/man3/CMS_verify.3 create mode 100644 static/freebsd/man3/CMS_verify_receipt.3 create mode 100644 static/freebsd/man3/COMP_CTX_new.3 create mode 100644 static/freebsd/man3/CONF_modules_free.3 create mode 100644 static/freebsd/man3/CONF_modules_load_file.3 create mode 100644 static/freebsd/man3/CRYPTO_THREAD_run_once.3 create mode 100644 static/freebsd/man3/CRYPTO_get_ex_new_index.3 create mode 100644 static/freebsd/man3/CRYPTO_memcmp.3 create mode 100644 static/freebsd/man3/CTLOG_STORE_get0_log_by_id.3 create mode 100644 static/freebsd/man3/CTLOG_STORE_new.3 create mode 100644 static/freebsd/man3/CTLOG_new.3 create mode 100644 static/freebsd/man3/CT_POLICY_EVAL_CTX_new.3 create mode 100644 static/freebsd/man3/DEFINE_STACK_OF.3 create mode 100644 static/freebsd/man3/DES_cbc_cksum.3 create mode 100644 static/freebsd/man3/DES_cbc_encrypt.3 create mode 100644 static/freebsd/man3/DES_cfb64_encrypt.3 create mode 100644 static/freebsd/man3/DES_check_key_parity.3 create mode 100644 static/freebsd/man3/DES_ecb3_encrypt.3 create mode 100644 static/freebsd/man3/DES_ecb_encrypt.3 create mode 100644 static/freebsd/man3/DES_ede3_cbc_encrypt.3 create mode 100644 static/freebsd/man3/DES_encrypt.3 create mode 100644 static/freebsd/man3/DES_init_random_number_generator.3 create mode 100644 static/freebsd/man3/DES_is_weak_key.3 create mode 100644 static/freebsd/man3/DES_key_sched.3 create mode 100644 static/freebsd/man3/DES_new_random_key.3 create mode 100644 static/freebsd/man3/DES_pcbc_encrypt.3 create mode 100644 static/freebsd/man3/DES_random_key.3 create mode 100644 static/freebsd/man3/DES_set_key.3 create mode 100644 static/freebsd/man3/DES_set_key_checked.3 create mode 100644 static/freebsd/man3/DES_set_key_unchecked.3 create mode 100644 static/freebsd/man3/DES_set_odd_parity.3 create mode 100644 static/freebsd/man3/DES_string_to_key.3 create mode 100644 static/freebsd/man3/DH_check_pubkey.3 create mode 100644 static/freebsd/man3/DH_compute_key.3 create mode 100644 static/freebsd/man3/DH_free.3 create mode 100644 static/freebsd/man3/DH_generate_key.3 create mode 100644 static/freebsd/man3/DH_generate_parameters.3 create mode 100644 static/freebsd/man3/DH_generate_parameters_ex.3 create mode 100644 static/freebsd/man3/DH_get0_pqg.3 create mode 100644 static/freebsd/man3/DH_get_1024_160.3 create mode 100644 static/freebsd/man3/DH_get_default_method.3 create mode 100644 static/freebsd/man3/DH_get_ex_data.3 create mode 100644 static/freebsd/man3/DH_ltm_method.3 create mode 100644 static/freebsd/man3/DH_meth_new.3 create mode 100644 static/freebsd/man3/DH_new.3 create mode 100644 static/freebsd/man3/DH_new_by_nid.3 create mode 100644 static/freebsd/man3/DH_new_method.3 create mode 100644 static/freebsd/man3/DH_null_method.3 create mode 100644 static/freebsd/man3/DH_set_default_method.3 create mode 100644 static/freebsd/man3/DH_set_ex_data.3 create mode 100644 static/freebsd/man3/DH_set_method.3 create mode 100644 static/freebsd/man3/DH_size.3 create mode 100644 static/freebsd/man3/DH_up_ref.3 create mode 100644 static/freebsd/man3/DSA_SIG_new.3 create mode 100644 static/freebsd/man3/DSA_do_sign.3 create mode 100644 static/freebsd/man3/DSA_dup_DH.3 create mode 100644 static/freebsd/man3/DSA_generate_key.3 create mode 100644 static/freebsd/man3/DSA_generate_parameters.3 create mode 100644 static/freebsd/man3/DSA_get0_pqg.3 create mode 100644 static/freebsd/man3/DSA_meth_new.3 create mode 100644 static/freebsd/man3/DSA_new.3 create mode 100644 static/freebsd/man3/DSA_set_method.3 create mode 100644 static/freebsd/man3/DSA_sign.3 create mode 100644 static/freebsd/man3/DSA_size.3 create mode 100644 static/freebsd/man3/DTLS_get_data_mtu.3 create mode 100644 static/freebsd/man3/DTLS_set_timer_cb.3 create mode 100644 static/freebsd/man3/DTLSv1_get_timeout.3 create mode 100644 static/freebsd/man3/DTLSv1_handle_timeout.3 create mode 100644 static/freebsd/man3/DTLSv1_listen.3 create mode 100644 static/freebsd/man3/ECDSA_SIG_new.3 create mode 100644 static/freebsd/man3/ECDSA_sign.3 create mode 100644 static/freebsd/man3/ECPKParameters_print.3 create mode 100644 static/freebsd/man3/EC_GFp_simple_method.3 create mode 100644 static/freebsd/man3/EC_GROUP_copy.3 create mode 100644 static/freebsd/man3/EC_GROUP_new.3 create mode 100644 static/freebsd/man3/EC_KEY_get_enc_flags.3 create mode 100644 static/freebsd/man3/EC_KEY_new.3 create mode 100644 static/freebsd/man3/EC_POINT_add.3 create mode 100644 static/freebsd/man3/EC_POINT_new.3 create mode 100644 static/freebsd/man3/ENGINE_add.3 create mode 100644 static/freebsd/man3/ERR_GET_LIB.3 create mode 100644 static/freebsd/man3/ERR_clear_error.3 create mode 100644 static/freebsd/man3/ERR_error_string.3 create mode 100644 static/freebsd/man3/ERR_get_error.3 create mode 100644 static/freebsd/man3/ERR_load_crypto_strings.3 create mode 100644 static/freebsd/man3/ERR_load_strings.3 create mode 100644 static/freebsd/man3/ERR_new.3 create mode 100644 static/freebsd/man3/ERR_print_errors.3 create mode 100644 static/freebsd/man3/ERR_put_error.3 create mode 100644 static/freebsd/man3/ERR_remove_state.3 create mode 100644 static/freebsd/man3/ERR_set_mark.3 create mode 100644 static/freebsd/man3/EVP_ASYM_CIPHER_free.3 create mode 100644 static/freebsd/man3/EVP_BytesToKey.3 create mode 100644 static/freebsd/man3/EVP_CIPHER_CTX_block_size.3 create mode 100644 static/freebsd/man3/EVP_CIPHER_CTX_cipher.3 create mode 100644 static/freebsd/man3/EVP_CIPHER_CTX_cleanup.3 create mode 100644 static/freebsd/man3/EVP_CIPHER_CTX_ctrl.3 create mode 100644 static/freebsd/man3/EVP_CIPHER_CTX_flags.3 create mode 100644 static/freebsd/man3/EVP_CIPHER_CTX_get_app_data.3 create mode 100644 static/freebsd/man3/EVP_CIPHER_CTX_get_cipher_data.3 create mode 100644 static/freebsd/man3/EVP_CIPHER_CTX_get_original_iv.3 create mode 100644 static/freebsd/man3/EVP_CIPHER_CTX_init.3 create mode 100644 static/freebsd/man3/EVP_CIPHER_CTX_iv_length.3 create mode 100644 static/freebsd/man3/EVP_CIPHER_CTX_key_length.3 create mode 100644 static/freebsd/man3/EVP_CIPHER_CTX_mode.3 create mode 100644 static/freebsd/man3/EVP_CIPHER_CTX_rand_key.3 create mode 100644 static/freebsd/man3/EVP_CIPHER_CTX_set_app_data.3 create mode 100644 static/freebsd/man3/EVP_CIPHER_CTX_set_key_length.3 create mode 100644 static/freebsd/man3/EVP_CIPHER_block_size.3 create mode 100644 static/freebsd/man3/EVP_CIPHER_iv_length.3 create mode 100644 static/freebsd/man3/EVP_CIPHER_key_length.3 create mode 100644 static/freebsd/man3/EVP_CIPHER_meth_new.3 create mode 100644 static/freebsd/man3/EVP_CipherFinal_ex.3 create mode 100644 static/freebsd/man3/EVP_CipherInit_ex.3 create mode 100644 static/freebsd/man3/EVP_CipherUpdate.3 create mode 100644 static/freebsd/man3/EVP_Digest.3 create mode 100644 static/freebsd/man3/EVP_DigestFinal_ex.3 create mode 100644 static/freebsd/man3/EVP_DigestInit.3 create mode 100644 static/freebsd/man3/EVP_DigestInit_ex.3 create mode 100644 static/freebsd/man3/EVP_DigestSignInit.3 create mode 100644 static/freebsd/man3/EVP_DigestUpdate.3 create mode 100644 static/freebsd/man3/EVP_DigestVerifyInit.3 create mode 100644 static/freebsd/man3/EVP_EncodeInit.3 create mode 100644 static/freebsd/man3/EVP_EncryptInit.3 create mode 100644 static/freebsd/man3/EVP_KDF.3 create mode 100644 static/freebsd/man3/EVP_KEM_free.3 create mode 100644 static/freebsd/man3/EVP_KEYEXCH_free.3 create mode 100644 static/freebsd/man3/EVP_KEYMGMT.3 create mode 100644 static/freebsd/man3/EVP_MAC.3 create mode 100644 static/freebsd/man3/EVP_MD_CTX_block_size.3 create mode 100644 static/freebsd/man3/EVP_MD_CTX_cleanup.3 create mode 100644 static/freebsd/man3/EVP_MD_CTX_create.3 create mode 100644 static/freebsd/man3/EVP_MD_CTX_destroy.3 create mode 100644 static/freebsd/man3/EVP_MD_CTX_init.3 create mode 100644 static/freebsd/man3/EVP_MD_CTX_md.3 create mode 100644 static/freebsd/man3/EVP_MD_CTX_size.3 create mode 100644 static/freebsd/man3/EVP_MD_block_size.3 create mode 100644 static/freebsd/man3/EVP_MD_meth_new.3 create mode 100644 static/freebsd/man3/EVP_MD_size.3 create mode 100644 static/freebsd/man3/EVP_OpenInit.3 create mode 100644 static/freebsd/man3/EVP_PBE_CipherInit.3 create mode 100644 static/freebsd/man3/EVP_PKEY2PKCS8.3 create mode 100644 static/freebsd/man3/EVP_PKEY_ASN1_METHOD.3 create mode 100644 static/freebsd/man3/EVP_PKEY_CTX_ctrl.3 create mode 100644 static/freebsd/man3/EVP_PKEY_CTX_get0_libctx.3 create mode 100644 static/freebsd/man3/EVP_PKEY_CTX_get0_pkey.3 create mode 100644 static/freebsd/man3/EVP_PKEY_CTX_get_algor.3 create mode 100644 static/freebsd/man3/EVP_PKEY_CTX_new.3 create mode 100644 static/freebsd/man3/EVP_PKEY_CTX_set1_pbe_pass.3 create mode 100644 static/freebsd/man3/EVP_PKEY_CTX_set_hkdf_md.3 create mode 100644 static/freebsd/man3/EVP_PKEY_CTX_set_params.3 create mode 100644 static/freebsd/man3/EVP_PKEY_CTX_set_rsa_pss_keygen_md.3 create mode 100644 static/freebsd/man3/EVP_PKEY_CTX_set_scrypt_N.3 create mode 100644 static/freebsd/man3/EVP_PKEY_CTX_set_tls1_prf_md.3 create mode 100644 static/freebsd/man3/EVP_PKEY_asn1_get_count.3 create mode 100644 static/freebsd/man3/EVP_PKEY_check.3 create mode 100644 static/freebsd/man3/EVP_PKEY_copy_parameters.3 create mode 100644 static/freebsd/man3/EVP_PKEY_decapsulate.3 create mode 100644 static/freebsd/man3/EVP_PKEY_decrypt.3 create mode 100644 static/freebsd/man3/EVP_PKEY_derive.3 create mode 100644 static/freebsd/man3/EVP_PKEY_digestsign_supports_digest.3 create mode 100644 static/freebsd/man3/EVP_PKEY_encapsulate.3 create mode 100644 static/freebsd/man3/EVP_PKEY_encrypt.3 create mode 100644 static/freebsd/man3/EVP_PKEY_fromdata.3 create mode 100644 static/freebsd/man3/EVP_PKEY_get_attr.3 create mode 100644 static/freebsd/man3/EVP_PKEY_get_default_digest_nid.3 create mode 100644 static/freebsd/man3/EVP_PKEY_get_field_type.3 create mode 100644 static/freebsd/man3/EVP_PKEY_get_group_name.3 create mode 100644 static/freebsd/man3/EVP_PKEY_get_size.3 create mode 100644 static/freebsd/man3/EVP_PKEY_gettable_params.3 create mode 100644 static/freebsd/man3/EVP_PKEY_is_a.3 create mode 100644 static/freebsd/man3/EVP_PKEY_keygen.3 create mode 100644 static/freebsd/man3/EVP_PKEY_meth_get_count.3 create mode 100644 static/freebsd/man3/EVP_PKEY_meth_new.3 create mode 100644 static/freebsd/man3/EVP_PKEY_new.3 create mode 100644 static/freebsd/man3/EVP_PKEY_print_private.3 create mode 100644 static/freebsd/man3/EVP_PKEY_set1_RSA.3 create mode 100644 static/freebsd/man3/EVP_PKEY_set1_encoded_public_key.3 create mode 100644 static/freebsd/man3/EVP_PKEY_set_type.3 create mode 100644 static/freebsd/man3/EVP_PKEY_settable_params.3 create mode 100644 static/freebsd/man3/EVP_PKEY_sign.3 create mode 100644 static/freebsd/man3/EVP_PKEY_todata.3 create mode 100644 static/freebsd/man3/EVP_PKEY_verify.3 create mode 100644 static/freebsd/man3/EVP_PKEY_verify_recover.3 create mode 100644 static/freebsd/man3/EVP_RAND.3 create mode 100644 static/freebsd/man3/EVP_SIGNATURE.3 create mode 100644 static/freebsd/man3/EVP_SKEY.3 create mode 100644 static/freebsd/man3/EVP_SKEYMGMT.3 create mode 100644 static/freebsd/man3/EVP_SealInit.3 create mode 100644 static/freebsd/man3/EVP_SignInit.3 create mode 100644 static/freebsd/man3/EVP_VerifyInit.3 create mode 100644 static/freebsd/man3/EVP_aes_128_cbc.3 create mode 100644 static/freebsd/man3/EVP_aes_128_cfb8.3 create mode 100644 static/freebsd/man3/EVP_aes_128_gcm.3 create mode 100644 static/freebsd/man3/EVP_aes_192_cbc.3 create mode 100644 static/freebsd/man3/EVP_aes_192_cfb8.3 create mode 100644 static/freebsd/man3/EVP_aes_256_cbc.3 create mode 100644 static/freebsd/man3/EVP_aes_256_cfb8.3 create mode 100644 static/freebsd/man3/EVP_aria_128_gcm.3 create mode 100644 static/freebsd/man3/EVP_bf_cbc.3 create mode 100644 static/freebsd/man3/EVP_blake2b512.3 create mode 100644 static/freebsd/man3/EVP_camellia_128_cbc.3 create mode 100644 static/freebsd/man3/EVP_camellia_128_ecb.3 create mode 100644 static/freebsd/man3/EVP_camellia_192_cbc.3 create mode 100644 static/freebsd/man3/EVP_camellia_256_cbc.3 create mode 100644 static/freebsd/man3/EVP_cast5_cbc.3 create mode 100644 static/freebsd/man3/EVP_chacha20.3 create mode 100644 static/freebsd/man3/EVP_des_cbc.3 create mode 100644 static/freebsd/man3/EVP_des_ede3_cbc.3 create mode 100644 static/freebsd/man3/EVP_desx_cbc.3 create mode 100644 static/freebsd/man3/EVP_enc_null.3 create mode 100644 static/freebsd/man3/EVP_get_cipherbyname.3 create mode 100644 static/freebsd/man3/EVP_hcrypto_aes_128_cbc.3 create mode 100644 static/freebsd/man3/EVP_hcrypto_aes_128_cfb8.3 create mode 100644 static/freebsd/man3/EVP_hcrypto_aes_192_cbc.3 create mode 100644 static/freebsd/man3/EVP_hcrypto_aes_192_cfb8.3 create mode 100644 static/freebsd/man3/EVP_hcrypto_aes_256_cbc.3 create mode 100644 static/freebsd/man3/EVP_hcrypto_aes_256_cfb8.3 create mode 100644 static/freebsd/man3/EVP_hcrypto_camellia_128_cbc.3 create mode 100644 static/freebsd/man3/EVP_hcrypto_camellia_192_cbc.3 create mode 100644 static/freebsd/man3/EVP_hcrypto_camellia_256_cbc.3 create mode 100644 static/freebsd/man3/EVP_hcrypto_des_cbc.3 create mode 100644 static/freebsd/man3/EVP_hcrypto_des_ede3_cbc.3 create mode 100644 static/freebsd/man3/EVP_hcrypto_md2.3 create mode 100644 static/freebsd/man3/EVP_hcrypto_md4.3 create mode 100644 static/freebsd/man3/EVP_hcrypto_md5.3 create mode 100644 static/freebsd/man3/EVP_hcrypto_rc2_40_cbc.3 create mode 100644 static/freebsd/man3/EVP_hcrypto_rc2_64_cbc.3 create mode 100644 static/freebsd/man3/EVP_hcrypto_rc2_cbc.3 create mode 100644 static/freebsd/man3/EVP_hcrypto_sha1.3 create mode 100644 static/freebsd/man3/EVP_hcrypto_sha256.3 create mode 100644 static/freebsd/man3/EVP_hcrypto_sha384.3 create mode 100644 static/freebsd/man3/EVP_hcrypto_sha512.3 create mode 100644 static/freebsd/man3/EVP_idea_cbc.3 create mode 100644 static/freebsd/man3/EVP_md2.3 create mode 100644 static/freebsd/man3/EVP_md4.3 create mode 100644 static/freebsd/man3/EVP_md5.3 create mode 100644 static/freebsd/man3/EVP_md_null.3 create mode 100644 static/freebsd/man3/EVP_mdc2.3 create mode 100644 static/freebsd/man3/EVP_rc2_40_cbc.3 create mode 100644 static/freebsd/man3/EVP_rc2_64_cbc.3 create mode 100644 static/freebsd/man3/EVP_rc2_cbc.3 create mode 100644 static/freebsd/man3/EVP_rc4.3 create mode 100644 static/freebsd/man3/EVP_rc4_40.3 create mode 100644 static/freebsd/man3/EVP_rc5_32_12_16_cbc.3 create mode 100644 static/freebsd/man3/EVP_ripemd160.3 create mode 100644 static/freebsd/man3/EVP_seed_cbc.3 create mode 100644 static/freebsd/man3/EVP_set_default_properties.3 create mode 100644 static/freebsd/man3/EVP_sha.3 create mode 100644 static/freebsd/man3/EVP_sha1.3 create mode 100644 static/freebsd/man3/EVP_sha224.3 create mode 100644 static/freebsd/man3/EVP_sha256.3 create mode 100644 static/freebsd/man3/EVP_sha384.3 create mode 100644 static/freebsd/man3/EVP_sha3_224.3 create mode 100644 static/freebsd/man3/EVP_sha512.3 create mode 100644 static/freebsd/man3/EVP_sm3.3 create mode 100644 static/freebsd/man3/EVP_sm4_cbc.3 create mode 100644 static/freebsd/man3/EVP_whirlpool.3 create mode 100644 static/freebsd/man3/EVP_wincrypt_des_ede3_cbc.3 create mode 100644 static/freebsd/man3/GENERAL_NAME.3 create mode 100644 static/freebsd/man3/HDB.3 create mode 100644 static/freebsd/man3/HMAC.3 create mode 100644 static/freebsd/man3/MD5.3 create mode 100644 static/freebsd/man3/MDC2_Init.3 create mode 100644 static/freebsd/man3/NCONF_new_ex.3 create mode 100644 static/freebsd/man3/OBJ_nid2obj.3 create mode 100644 static/freebsd/man3/OCSP_REQUEST_new.3 create mode 100644 static/freebsd/man3/OCSP_cert_to_id.3 create mode 100644 static/freebsd/man3/OCSP_request_add1_nonce.3 create mode 100644 static/freebsd/man3/OCSP_resp_find_status.3 create mode 100644 static/freebsd/man3/OCSP_response_status.3 create mode 100644 static/freebsd/man3/OCSP_sendreq_new.3 create mode 100644 static/freebsd/man3/OPENSSL_Applink.3 create mode 100644 static/freebsd/man3/OPENSSL_FILE.3 create mode 100644 static/freebsd/man3/OPENSSL_LH_COMPFUNC.3 create mode 100644 static/freebsd/man3/OPENSSL_LH_stats.3 create mode 100644 static/freebsd/man3/OPENSSL_config.3 create mode 100644 static/freebsd/man3/OPENSSL_fork_prepare.3 create mode 100644 static/freebsd/man3/OPENSSL_gmtime.3 create mode 100644 static/freebsd/man3/OPENSSL_hexchar2int.3 create mode 100644 static/freebsd/man3/OPENSSL_ia32cap.3 create mode 100644 static/freebsd/man3/OPENSSL_init_crypto.3 create mode 100644 static/freebsd/man3/OPENSSL_init_ssl.3 create mode 100644 static/freebsd/man3/OPENSSL_instrument_bus.3 create mode 100644 static/freebsd/man3/OPENSSL_load_builtin_modules.3 create mode 100644 static/freebsd/man3/OPENSSL_load_u16_le.3 create mode 100644 static/freebsd/man3/OPENSSL_malloc.3 create mode 100644 static/freebsd/man3/OPENSSL_ppccap.3 create mode 100644 static/freebsd/man3/OPENSSL_riscvcap.3 create mode 100644 static/freebsd/man3/OPENSSL_s390xcap.3 create mode 100644 static/freebsd/man3/OPENSSL_secure_malloc.3 create mode 100644 static/freebsd/man3/OPENSSL_strcasecmp.3 create mode 100644 static/freebsd/man3/OSSL_ALGORITHM.3 create mode 100644 static/freebsd/man3/OSSL_CALLBACK.3 create mode 100644 static/freebsd/man3/OSSL_CMP_ATAV_set0.3 create mode 100644 static/freebsd/man3/OSSL_CMP_CTX_new.3 create mode 100644 static/freebsd/man3/OSSL_CMP_HDR_get0_transactionID.3 create mode 100644 static/freebsd/man3/OSSL_CMP_ITAV_new_caCerts.3 create mode 100644 static/freebsd/man3/OSSL_CMP_ITAV_set0.3 create mode 100644 static/freebsd/man3/OSSL_CMP_MSG_get0_header.3 create mode 100644 static/freebsd/man3/OSSL_CMP_MSG_http_perform.3 create mode 100644 static/freebsd/man3/OSSL_CMP_SRV_CTX_new.3 create mode 100644 static/freebsd/man3/OSSL_CMP_STATUSINFO_new.3 create mode 100644 static/freebsd/man3/OSSL_CMP_exec_certreq.3 create mode 100644 static/freebsd/man3/OSSL_CMP_log_open.3 create mode 100644 static/freebsd/man3/OSSL_CMP_validate_msg.3 create mode 100644 static/freebsd/man3/OSSL_CORE_MAKE_FUNC.3 create mode 100644 static/freebsd/man3/OSSL_CRMF_MSG_get0_tmpl.3 create mode 100644 static/freebsd/man3/OSSL_CRMF_MSG_set0_validity.3 create mode 100644 static/freebsd/man3/OSSL_CRMF_MSG_set1_regCtrl_regToken.3 create mode 100644 static/freebsd/man3/OSSL_CRMF_MSG_set1_regInfo_certReq.3 create mode 100644 static/freebsd/man3/OSSL_CRMF_pbmp_new.3 create mode 100644 static/freebsd/man3/OSSL_DECODER.3 create mode 100644 static/freebsd/man3/OSSL_DECODER_CTX.3 create mode 100644 static/freebsd/man3/OSSL_DECODER_CTX_new_for_pkey.3 create mode 100644 static/freebsd/man3/OSSL_DECODER_from_bio.3 create mode 100644 static/freebsd/man3/OSSL_DISPATCH.3 create mode 100644 static/freebsd/man3/OSSL_ENCODER.3 create mode 100644 static/freebsd/man3/OSSL_ENCODER_CTX.3 create mode 100644 static/freebsd/man3/OSSL_ENCODER_CTX_new_for_pkey.3 create mode 100644 static/freebsd/man3/OSSL_ENCODER_to_bio.3 create mode 100644 static/freebsd/man3/OSSL_ERR_STATE_save.3 create mode 100644 static/freebsd/man3/OSSL_ESS_check_signing_certs.3 create mode 100644 static/freebsd/man3/OSSL_GENERAL_NAMES_print.3 create mode 100644 static/freebsd/man3/OSSL_HPKE_CTX_new.3 create mode 100644 static/freebsd/man3/OSSL_HTTP_REQ_CTX.3 create mode 100644 static/freebsd/man3/OSSL_HTTP_parse_url.3 create mode 100644 static/freebsd/man3/OSSL_HTTP_transfer.3 create mode 100644 static/freebsd/man3/OSSL_IETF_ATTR_SYNTAX.3 create mode 100644 static/freebsd/man3/OSSL_IETF_ATTR_SYNTAX_print.3 create mode 100644 static/freebsd/man3/OSSL_INDICATOR_set_callback.3 create mode 100644 static/freebsd/man3/OSSL_ITEM.3 create mode 100644 static/freebsd/man3/OSSL_LIB_CTX.3 create mode 100644 static/freebsd/man3/OSSL_LIB_CTX_set_conf_diagnostics.3 create mode 100644 static/freebsd/man3/OSSL_PARAM.3 create mode 100644 static/freebsd/man3/OSSL_PARAM_BLD.3 create mode 100644 static/freebsd/man3/OSSL_PARAM_allocate_from_text.3 create mode 100644 static/freebsd/man3/OSSL_PARAM_dup.3 create mode 100644 static/freebsd/man3/OSSL_PARAM_int.3 create mode 100644 static/freebsd/man3/OSSL_PARAM_print_to_bio.3 create mode 100644 static/freebsd/man3/OSSL_PROVIDER.3 create mode 100644 static/freebsd/man3/OSSL_QUIC_client_method.3 create mode 100644 static/freebsd/man3/OSSL_SELF_TEST_new.3 create mode 100644 static/freebsd/man3/OSSL_SELF_TEST_set_callback.3 create mode 100644 static/freebsd/man3/OSSL_STORE_INFO.3 create mode 100644 static/freebsd/man3/OSSL_STORE_LOADER.3 create mode 100644 static/freebsd/man3/OSSL_STORE_SEARCH.3 create mode 100644 static/freebsd/man3/OSSL_STORE_attach.3 create mode 100644 static/freebsd/man3/OSSL_STORE_expect.3 create mode 100644 static/freebsd/man3/OSSL_STORE_open.3 create mode 100644 static/freebsd/man3/OSSL_sleep.3 create mode 100644 static/freebsd/man3/OSSL_trace_enabled.3 create mode 100644 static/freebsd/man3/OSSL_trace_get_category_num.3 create mode 100644 static/freebsd/man3/OSSL_trace_set_channel.3 create mode 100644 static/freebsd/man3/OpenSSL_add_all_algorithms.3 create mode 100644 static/freebsd/man3/OpenSSL_add_all_algorithms_conf.3 create mode 100644 static/freebsd/man3/OpenSSL_add_all_algorithms_noconf.3 create mode 100644 static/freebsd/man3/OpenSSL_version.3 create mode 100644 static/freebsd/man3/PBMAC1_get1_pbkdf2_param.3 create mode 100644 static/freebsd/man3/PEM_X509_INFO_read_bio_ex.3 create mode 100644 static/freebsd/man3/PEM_bytes_read_bio.3 create mode 100644 static/freebsd/man3/PEM_read.3 create mode 100644 static/freebsd/man3/PEM_read_CMS.3 create mode 100644 static/freebsd/man3/PEM_read_bio_PrivateKey.3 create mode 100644 static/freebsd/man3/PEM_read_bio_ex.3 create mode 100644 static/freebsd/man3/PEM_write_bio_CMS_stream.3 create mode 100644 static/freebsd/man3/PEM_write_bio_PKCS7_stream.3 create mode 100644 static/freebsd/man3/PKCS12_PBE_keyivgen.3 create mode 100644 static/freebsd/man3/PKCS12_SAFEBAG_create_cert.3 create mode 100644 static/freebsd/man3/PKCS12_SAFEBAG_get0_attrs.3 create mode 100644 static/freebsd/man3/PKCS12_SAFEBAG_get1_cert.3 create mode 100644 static/freebsd/man3/PKCS12_SAFEBAG_set0_attrs.3 create mode 100644 static/freebsd/man3/PKCS12_add1_attr_by_NID.3 create mode 100644 static/freebsd/man3/PKCS12_add_CSPName_asc.3 create mode 100644 static/freebsd/man3/PKCS12_add_cert.3 create mode 100644 static/freebsd/man3/PKCS12_add_friendlyname_asc.3 create mode 100644 static/freebsd/man3/PKCS12_add_localkeyid.3 create mode 100644 static/freebsd/man3/PKCS12_add_safe.3 create mode 100644 static/freebsd/man3/PKCS12_create.3 create mode 100644 static/freebsd/man3/PKCS12_decrypt_skey.3 create mode 100644 static/freebsd/man3/PKCS12_gen_mac.3 create mode 100644 static/freebsd/man3/PKCS12_get_friendlyname.3 create mode 100644 static/freebsd/man3/PKCS12_init.3 create mode 100644 static/freebsd/man3/PKCS12_item_decrypt_d2i.3 create mode 100644 static/freebsd/man3/PKCS12_key_gen_utf8_ex.3 create mode 100644 static/freebsd/man3/PKCS12_newpass.3 create mode 100644 static/freebsd/man3/PKCS12_pack_p7encdata.3 create mode 100644 static/freebsd/man3/PKCS12_parse.3 create mode 100644 static/freebsd/man3/PKCS5_PBE_keyivgen.3 create mode 100644 static/freebsd/man3/PKCS5_PBKDF2_HMAC.3 create mode 100644 static/freebsd/man3/PKCS5_PBKDF2_HMAC_SHA1.3 create mode 100644 static/freebsd/man3/PKCS7_decrypt.3 create mode 100644 static/freebsd/man3/PKCS7_encrypt.3 create mode 100644 static/freebsd/man3/PKCS7_get_octet_string.3 create mode 100644 static/freebsd/man3/PKCS7_sign.3 create mode 100644 static/freebsd/man3/PKCS7_sign_add_signer.3 create mode 100644 static/freebsd/man3/PKCS7_type_is_other.3 create mode 100644 static/freebsd/man3/PKCS7_verify.3 create mode 100644 static/freebsd/man3/PKCS8_encrypt.3 create mode 100644 static/freebsd/man3/PKCS8_pkey_add1_attr.3 create mode 100644 static/freebsd/man3/Q_FRAWMASK.3 3.html create mode 100644 static/freebsd/man3/Q_IFRAWMASK.3 3.html create mode 100644 static/freebsd/man3/Q_INI.3 3.html create mode 100644 static/freebsd/man3/Q_IRAWMASK.3 3.html create mode 100644 static/freebsd/man3/Q_QABS.3 4.html create mode 100644 static/freebsd/man3/Q_QADDI.3 3.html create mode 100644 static/freebsd/man3/Q_QADDQ.3 3.html create mode 100644 static/freebsd/man3/Q_SIGNED.3 3.html create mode 100644 static/freebsd/man3/Q_SIGNSHFT.3 3.html create mode 100644 static/freebsd/man3/RAND_add.3 create mode 100644 static/freebsd/man3/RAND_bytes.3 create mode 100644 static/freebsd/man3/RAND_cleanup.3 create mode 100644 static/freebsd/man3/RAND_egd.3 create mode 100644 static/freebsd/man3/RAND_file_name.3 create mode 100644 static/freebsd/man3/RAND_get0_primary.3 create mode 100644 static/freebsd/man3/RAND_get_rand_method.3 create mode 100644 static/freebsd/man3/RAND_load_file.3 create mode 100644 static/freebsd/man3/RAND_pseudo_bytes.3 create mode 100644 static/freebsd/man3/RAND_seed.3 create mode 100644 static/freebsd/man3/RAND_set_DRBG_type.3 create mode 100644 static/freebsd/man3/RAND_set_rand_engine.3 create mode 100644 static/freebsd/man3/RAND_set_rand_method.3 create mode 100644 static/freebsd/man3/RAND_status.3 create mode 100644 static/freebsd/man3/RAND_write_file.3 create mode 100644 static/freebsd/man3/RC4_set_key.3 create mode 100644 static/freebsd/man3/RIPEMD160_Init.3 create mode 100644 static/freebsd/man3/RSA_blinding_on.3 create mode 100644 static/freebsd/man3/RSA_check_key.3 create mode 100644 static/freebsd/man3/RSA_free.3 create mode 100644 static/freebsd/man3/RSA_generate_key.3 create mode 100644 static/freebsd/man3/RSA_get0_key.3 create mode 100644 static/freebsd/man3/RSA_get_app_data.3 create mode 100644 static/freebsd/man3/RSA_get_method.3 create mode 100644 static/freebsd/man3/RSA_meth_new.3 create mode 100644 static/freebsd/man3/RSA_new.3 create mode 100644 static/freebsd/man3/RSA_new_method.3 create mode 100644 static/freebsd/man3/RSA_padding_add_PKCS1_type_1.3 create mode 100644 static/freebsd/man3/RSA_print.3 create mode 100644 static/freebsd/man3/RSA_private_encrypt.3 create mode 100644 static/freebsd/man3/RSA_public_encrypt.3 create mode 100644 static/freebsd/man3/RSA_set_app_data.3 create mode 100644 static/freebsd/man3/RSA_set_method.3 create mode 100644 static/freebsd/man3/RSA_sign.3 create mode 100644 static/freebsd/man3/RSA_sign_ASN1_OCTET_STRING.3 create mode 100644 static/freebsd/man3/RSA_size.3 create mode 100644 static/freebsd/man3/RSA_up_ref.3 create mode 100644 static/freebsd/man3/SCT_new.3 create mode 100644 static/freebsd/man3/SCT_print.3 create mode 100644 static/freebsd/man3/SCT_validate.3 create mode 100644 static/freebsd/man3/SHA256_Init.3 create mode 100644 static/freebsd/man3/SMIME_read_ASN1.3 create mode 100644 static/freebsd/man3/SMIME_read_CMS.3 create mode 100644 static/freebsd/man3/SMIME_read_PKCS7.3 create mode 100644 static/freebsd/man3/SMIME_write_ASN1.3 create mode 100644 static/freebsd/man3/SMIME_write_CMS.3 create mode 100644 static/freebsd/man3/SMIME_write_PKCS7.3 create mode 100644 static/freebsd/man3/SRP_Calc_B.3 create mode 100644 static/freebsd/man3/SRP_VBASE_new.3 create mode 100644 static/freebsd/man3/SRP_create_verifier.3 create mode 100644 static/freebsd/man3/SRP_user_pwd_new.3 create mode 100644 static/freebsd/man3/SSL_CIPHER_get_name.3 create mode 100644 static/freebsd/man3/SSL_COMP_add_compression_method.3 create mode 100644 static/freebsd/man3/SSL_CONF_CTX_new.3 create mode 100644 static/freebsd/man3/SSL_CONF_CTX_set1_prefix.3 create mode 100644 static/freebsd/man3/SSL_CONF_CTX_set_flags.3 create mode 100644 static/freebsd/man3/SSL_CONF_CTX_set_ssl_ctx.3 create mode 100644 static/freebsd/man3/SSL_CONF_cmd.3 create mode 100644 static/freebsd/man3/SSL_CONF_cmd_argv.3 create mode 100644 static/freebsd/man3/SSL_CTX_add1_chain_cert.3 create mode 100644 static/freebsd/man3/SSL_CTX_add_extra_chain_cert.3 create mode 100644 static/freebsd/man3/SSL_CTX_add_session.3 create mode 100644 static/freebsd/man3/SSL_CTX_config.3 create mode 100644 static/freebsd/man3/SSL_CTX_ctrl.3 create mode 100644 static/freebsd/man3/SSL_CTX_dane_enable.3 create mode 100644 static/freebsd/man3/SSL_CTX_flush_sessions.3 create mode 100644 static/freebsd/man3/SSL_CTX_free.3 create mode 100644 static/freebsd/man3/SSL_CTX_get0_param.3 create mode 100644 static/freebsd/man3/SSL_CTX_get_verify_mode.3 create mode 100644 static/freebsd/man3/SSL_CTX_has_client_custom_ext.3 create mode 100644 static/freebsd/man3/SSL_CTX_load_verify_locations.3 create mode 100644 static/freebsd/man3/SSL_CTX_new.3 create mode 100644 static/freebsd/man3/SSL_CTX_sess_number.3 create mode 100644 static/freebsd/man3/SSL_CTX_sess_set_cache_size.3 create mode 100644 static/freebsd/man3/SSL_CTX_sess_set_get_cb.3 create mode 100644 static/freebsd/man3/SSL_CTX_sessions.3 create mode 100644 static/freebsd/man3/SSL_CTX_set0_CA_list.3 create mode 100644 static/freebsd/man3/SSL_CTX_set1_cert_comp_preference.3 create mode 100644 static/freebsd/man3/SSL_CTX_set1_curves.3 create mode 100644 static/freebsd/man3/SSL_CTX_set1_sigalgs.3 create mode 100644 static/freebsd/man3/SSL_CTX_set1_verify_cert_store.3 create mode 100644 static/freebsd/man3/SSL_CTX_set_alpn_select_cb.3 create mode 100644 static/freebsd/man3/SSL_CTX_set_cert_cb.3 create mode 100644 static/freebsd/man3/SSL_CTX_set_cert_store.3 create mode 100644 static/freebsd/man3/SSL_CTX_set_cert_verify_callback.3 create mode 100644 static/freebsd/man3/SSL_CTX_set_cipher_list.3 create mode 100644 static/freebsd/man3/SSL_CTX_set_client_cert_cb.3 create mode 100644 static/freebsd/man3/SSL_CTX_set_client_hello_cb.3 create mode 100644 static/freebsd/man3/SSL_CTX_set_ct_validation_callback.3 create mode 100644 static/freebsd/man3/SSL_CTX_set_ctlog_list_file.3 create mode 100644 static/freebsd/man3/SSL_CTX_set_default_passwd_cb.3 create mode 100644 static/freebsd/man3/SSL_CTX_set_domain_flags.3 create mode 100644 static/freebsd/man3/SSL_CTX_set_generate_session_id.3 create mode 100644 static/freebsd/man3/SSL_CTX_set_info_callback.3 create mode 100644 static/freebsd/man3/SSL_CTX_set_keylog_callback.3 create mode 100644 static/freebsd/man3/SSL_CTX_set_max_cert_list.3 create mode 100644 static/freebsd/man3/SSL_CTX_set_min_proto_version.3 create mode 100644 static/freebsd/man3/SSL_CTX_set_mode.3 create mode 100644 static/freebsd/man3/SSL_CTX_set_msg_callback.3 create mode 100644 static/freebsd/man3/SSL_CTX_set_new_pending_conn_cb.3 create mode 100644 static/freebsd/man3/SSL_CTX_set_num_tickets.3 create mode 100644 static/freebsd/man3/SSL_CTX_set_options.3 create mode 100644 static/freebsd/man3/SSL_CTX_set_psk_client_callback.3 create mode 100644 static/freebsd/man3/SSL_CTX_set_quiet_shutdown.3 create mode 100644 static/freebsd/man3/SSL_CTX_set_read_ahead.3 create mode 100644 static/freebsd/man3/SSL_CTX_set_record_padding_callback.3 create mode 100644 static/freebsd/man3/SSL_CTX_set_security_level.3 create mode 100644 static/freebsd/man3/SSL_CTX_set_session_cache_mode.3 create mode 100644 static/freebsd/man3/SSL_CTX_set_session_id_context.3 create mode 100644 static/freebsd/man3/SSL_CTX_set_session_ticket_cb.3 create mode 100644 static/freebsd/man3/SSL_CTX_set_split_send_fragment.3 create mode 100644 static/freebsd/man3/SSL_CTX_set_srp_password.3 create mode 100644 static/freebsd/man3/SSL_CTX_set_ssl_version.3 create mode 100644 static/freebsd/man3/SSL_CTX_set_stateless_cookie_generate_cb.3 create mode 100644 static/freebsd/man3/SSL_CTX_set_timeout.3 create mode 100644 static/freebsd/man3/SSL_CTX_set_tlsext_servername_callback.3 create mode 100644 static/freebsd/man3/SSL_CTX_set_tlsext_status_cb.3 create mode 100644 static/freebsd/man3/SSL_CTX_set_tlsext_ticket_key_cb.3 create mode 100644 static/freebsd/man3/SSL_CTX_set_tlsext_use_srtp.3 create mode 100644 static/freebsd/man3/SSL_CTX_set_tmp_dh_callback.3 create mode 100644 static/freebsd/man3/SSL_CTX_set_tmp_ecdh.3 create mode 100644 static/freebsd/man3/SSL_CTX_set_verify.3 create mode 100644 static/freebsd/man3/SSL_CTX_use_certificate.3 create mode 100644 static/freebsd/man3/SSL_CTX_use_psk_identity_hint.3 create mode 100644 static/freebsd/man3/SSL_CTX_use_serverinfo.3 create mode 100644 static/freebsd/man3/SSL_SESSION_free.3 create mode 100644 static/freebsd/man3/SSL_SESSION_get0_cipher.3 create mode 100644 static/freebsd/man3/SSL_SESSION_get0_hostname.3 create mode 100644 static/freebsd/man3/SSL_SESSION_get0_id_context.3 create mode 100644 static/freebsd/man3/SSL_SESSION_get0_peer.3 create mode 100644 static/freebsd/man3/SSL_SESSION_get_compress_id.3 create mode 100644 static/freebsd/man3/SSL_SESSION_get_protocol_version.3 create mode 100644 static/freebsd/man3/SSL_SESSION_get_time.3 create mode 100644 static/freebsd/man3/SSL_SESSION_has_ticket.3 create mode 100644 static/freebsd/man3/SSL_SESSION_is_resumable.3 create mode 100644 static/freebsd/man3/SSL_SESSION_print.3 create mode 100644 static/freebsd/man3/SSL_SESSION_set1_id.3 create mode 100644 static/freebsd/man3/SSL_accept.3 create mode 100644 static/freebsd/man3/SSL_accept_stream.3 create mode 100644 static/freebsd/man3/SSL_alert_type_string.3 create mode 100644 static/freebsd/man3/SSL_alloc_buffers.3 create mode 100644 static/freebsd/man3/SSL_check_chain.3 create mode 100644 static/freebsd/man3/SSL_clear.3 create mode 100644 static/freebsd/man3/SSL_connect.3 create mode 100644 static/freebsd/man3/SSL_do_handshake.3 create mode 100644 static/freebsd/man3/SSL_export_keying_material.3 create mode 100644 static/freebsd/man3/SSL_extension_supported.3 create mode 100644 static/freebsd/man3/SSL_free.3 create mode 100644 static/freebsd/man3/SSL_get0_connection.3 create mode 100644 static/freebsd/man3/SSL_get0_group_name.3 create mode 100644 static/freebsd/man3/SSL_get0_peer_rpk.3 create mode 100644 static/freebsd/man3/SSL_get0_peer_scts.3 create mode 100644 static/freebsd/man3/SSL_get1_builtin_sigalgs.3 create mode 100644 static/freebsd/man3/SSL_get_SSL_CTX.3 create mode 100644 static/freebsd/man3/SSL_get_all_async_fds.3 create mode 100644 static/freebsd/man3/SSL_get_certificate.3 create mode 100644 static/freebsd/man3/SSL_get_ciphers.3 create mode 100644 static/freebsd/man3/SSL_get_client_random.3 create mode 100644 static/freebsd/man3/SSL_get_conn_close_info.3 create mode 100644 static/freebsd/man3/SSL_get_current_cipher.3 create mode 100644 static/freebsd/man3/SSL_get_default_timeout.3 create mode 100644 static/freebsd/man3/SSL_get_error.3 create mode 100644 static/freebsd/man3/SSL_get_event_timeout.3 create mode 100644 static/freebsd/man3/SSL_get_extms_support.3 create mode 100644 static/freebsd/man3/SSL_get_fd.3 create mode 100644 static/freebsd/man3/SSL_get_handshake_rtt.3 create mode 100644 static/freebsd/man3/SSL_get_peer_cert_chain.3 create mode 100644 static/freebsd/man3/SSL_get_peer_certificate.3 create mode 100644 static/freebsd/man3/SSL_get_peer_signature_nid.3 create mode 100644 static/freebsd/man3/SSL_get_peer_tmp_key.3 create mode 100644 static/freebsd/man3/SSL_get_psk_identity.3 create mode 100644 static/freebsd/man3/SSL_get_rbio.3 create mode 100644 static/freebsd/man3/SSL_get_rpoll_descriptor.3 create mode 100644 static/freebsd/man3/SSL_get_session.3 create mode 100644 static/freebsd/man3/SSL_get_shared_sigalgs.3 create mode 100644 static/freebsd/man3/SSL_get_stream_id.3 create mode 100644 static/freebsd/man3/SSL_get_stream_read_state.3 create mode 100644 static/freebsd/man3/SSL_get_value_uint.3 create mode 100644 static/freebsd/man3/SSL_get_verify_result.3 create mode 100644 static/freebsd/man3/SSL_get_version.3 create mode 100644 static/freebsd/man3/SSL_group_to_name.3 create mode 100644 static/freebsd/man3/SSL_handle_events.3 create mode 100644 static/freebsd/man3/SSL_in_init.3 create mode 100644 static/freebsd/man3/SSL_inject_net_dgram.3 create mode 100644 static/freebsd/man3/SSL_key_update.3 create mode 100644 static/freebsd/man3/SSL_library_init.3 create mode 100644 static/freebsd/man3/SSL_load_client_CA_file.3 create mode 100644 static/freebsd/man3/SSL_new.3 create mode 100644 static/freebsd/man3/SSL_new_domain.3 create mode 100644 static/freebsd/man3/SSL_new_listener.3 create mode 100644 static/freebsd/man3/SSL_new_stream.3 create mode 100644 static/freebsd/man3/SSL_pending.3 create mode 100644 static/freebsd/man3/SSL_poll.3 create mode 100644 static/freebsd/man3/SSL_read.3 create mode 100644 static/freebsd/man3/SSL_read_early_data.3 create mode 100644 static/freebsd/man3/SSL_rstate_string.3 create mode 100644 static/freebsd/man3/SSL_session_reused.3 create mode 100644 static/freebsd/man3/SSL_set1_host.3 create mode 100644 static/freebsd/man3/SSL_set1_initial_peer_addr.3 create mode 100644 static/freebsd/man3/SSL_set1_server_cert_type.3 create mode 100644 static/freebsd/man3/SSL_set_async_callback.3 create mode 100644 static/freebsd/man3/SSL_set_bio.3 create mode 100644 static/freebsd/man3/SSL_set_blocking_mode.3 create mode 100644 static/freebsd/man3/SSL_set_connect_state.3 create mode 100644 static/freebsd/man3/SSL_set_default_stream_mode.3 create mode 100644 static/freebsd/man3/SSL_set_fd.3 create mode 100644 static/freebsd/man3/SSL_set_incoming_stream_policy.3 create mode 100644 static/freebsd/man3/SSL_set_quic_tls_cbs.3 create mode 100644 static/freebsd/man3/SSL_set_retry_verify.3 create mode 100644 static/freebsd/man3/SSL_set_session.3 create mode 100644 static/freebsd/man3/SSL_set_session_secret_cb.3 create mode 100644 static/freebsd/man3/SSL_set_shutdown.3 create mode 100644 static/freebsd/man3/SSL_set_verify_result.3 create mode 100644 static/freebsd/man3/SSL_shutdown.3 create mode 100644 static/freebsd/man3/SSL_state_string.3 create mode 100644 static/freebsd/man3/SSL_stream_conclude.3 create mode 100644 static/freebsd/man3/SSL_stream_reset.3 create mode 100644 static/freebsd/man3/SSL_want.3 create mode 100644 static/freebsd/man3/SSL_write.3 create mode 100644 static/freebsd/man3/TS_RESP_CTX_new.3 create mode 100644 static/freebsd/man3/TS_VERIFY_CTX.3 create mode 100644 static/freebsd/man3/UI_STRING.3 create mode 100644 static/freebsd/man3/UI_UTIL_read_pw.3 create mode 100644 static/freebsd/man3/UI_create_method.3 create mode 100644 static/freebsd/man3/UI_new.3 create mode 100644 static/freebsd/man3/X509V3_EXT_print.3 create mode 100644 static/freebsd/man3/X509V3_get_d2i.3 create mode 100644 static/freebsd/man3/X509V3_set_ctx.3 create mode 100644 static/freebsd/man3/X509_ACERT_add1_attr.3 create mode 100644 static/freebsd/man3/X509_ACERT_add_attr_nconf.3 create mode 100644 static/freebsd/man3/X509_ACERT_get0_holder_baseCertId.3 create mode 100644 static/freebsd/man3/X509_ACERT_get_attr.3 create mode 100644 static/freebsd/man3/X509_ACERT_print_ex.3 create mode 100644 static/freebsd/man3/X509_ALGOR_dup.3 create mode 100644 static/freebsd/man3/X509_ATTRIBUTE.3 create mode 100644 static/freebsd/man3/X509_CRL_get0_by_serial.3 create mode 100644 static/freebsd/man3/X509_EXTENSION_set_object.3 create mode 100644 static/freebsd/man3/X509_LOOKUP.3 create mode 100644 static/freebsd/man3/X509_LOOKUP_hash_dir.3 create mode 100644 static/freebsd/man3/X509_LOOKUP_meth_new.3 create mode 100644 static/freebsd/man3/X509_NAME_ENTRY_get_object.3 create mode 100644 static/freebsd/man3/X509_NAME_add_entry_by_txt.3 create mode 100644 static/freebsd/man3/X509_NAME_get0_der.3 create mode 100644 static/freebsd/man3/X509_NAME_get_index_by_NID.3 create mode 100644 static/freebsd/man3/X509_NAME_print_ex.3 create mode 100644 static/freebsd/man3/X509_PUBKEY_new.3 create mode 100644 static/freebsd/man3/X509_REQ_get_attr.3 create mode 100644 static/freebsd/man3/X509_REQ_get_extensions.3 create mode 100644 static/freebsd/man3/X509_SIG_get0.3 create mode 100644 static/freebsd/man3/X509_STORE_CTX_get_by_subject.3 create mode 100644 static/freebsd/man3/X509_STORE_CTX_get_error.3 create mode 100644 static/freebsd/man3/X509_STORE_CTX_new.3 create mode 100644 static/freebsd/man3/X509_STORE_CTX_set_verify_cb.3 create mode 100644 static/freebsd/man3/X509_STORE_add_cert.3 create mode 100644 static/freebsd/man3/X509_STORE_get0_param.3 create mode 100644 static/freebsd/man3/X509_STORE_new.3 create mode 100644 static/freebsd/man3/X509_STORE_set_verify_cb_func.3 create mode 100644 static/freebsd/man3/X509_VERIFY_PARAM_set_flags.3 create mode 100644 static/freebsd/man3/X509_add_cert.3 create mode 100644 static/freebsd/man3/X509_check_ca.3 create mode 100644 static/freebsd/man3/X509_check_host.3 create mode 100644 static/freebsd/man3/X509_check_issued.3 create mode 100644 static/freebsd/man3/X509_check_private_key.3 create mode 100644 static/freebsd/man3/X509_check_purpose.3 create mode 100644 static/freebsd/man3/X509_cmp.3 create mode 100644 static/freebsd/man3/X509_cmp_time.3 create mode 100644 static/freebsd/man3/X509_digest.3 create mode 100644 static/freebsd/man3/X509_dup.3 create mode 100644 static/freebsd/man3/X509_get0_distinguishing_id.3 create mode 100644 static/freebsd/man3/X509_get0_notBefore.3 create mode 100644 static/freebsd/man3/X509_get0_signature.3 create mode 100644 static/freebsd/man3/X509_get0_uids.3 create mode 100644 static/freebsd/man3/X509_get_default_cert_file.3 create mode 100644 static/freebsd/man3/X509_get_extension_flags.3 create mode 100644 static/freebsd/man3/X509_get_pubkey.3 create mode 100644 static/freebsd/man3/X509_get_serialNumber.3 create mode 100644 static/freebsd/man3/X509_get_subject_name.3 create mode 100644 static/freebsd/man3/X509_get_version.3 create mode 100644 static/freebsd/man3/X509_load_http.3 create mode 100644 static/freebsd/man3/X509_new.3 create mode 100644 static/freebsd/man3/X509_sign.3 create mode 100644 static/freebsd/man3/X509_verify.3 create mode 100644 static/freebsd/man3/X509_verify_cert.3 create mode 100644 static/freebsd/man3/X509v3_get_ext_by_NID.3 create mode 100644 static/freebsd/man3/__builtin_object_size.3 create mode 100644 static/freebsd/man3/__gss_c_attr_stream_sizes_oid_desc.3 create mode 100644 static/freebsd/man3/__iconv_get_list.3 create mode 100644 static/freebsd/man3/_secure_path.3 create mode 100644 static/freebsd/man3/a64l.3 create mode 100644 static/freebsd/man3/abort.3 create mode 100644 static/freebsd/man3/abs.3 create mode 100644 static/freebsd/man3/abs2rel.3 create mode 100644 static/freebsd/man3/acl.3 create mode 100644 static/freebsd/man3/acl_add_flag_np.3 create mode 100644 static/freebsd/man3/acl_add_perm.3 create mode 100644 static/freebsd/man3/acl_calc_mask.3 create mode 100644 static/freebsd/man3/acl_clear_flags_np.3 create mode 100644 static/freebsd/man3/acl_clear_perms.3 create mode 100644 static/freebsd/man3/acl_cmp_np.3 create mode 100644 static/freebsd/man3/acl_copy_entry.3 create mode 100644 static/freebsd/man3/acl_create_entry.3 create mode 100644 static/freebsd/man3/acl_delete.3 create mode 100644 static/freebsd/man3/acl_delete_entry.3 create mode 100644 static/freebsd/man3/acl_delete_flag_np.3 create mode 100644 static/freebsd/man3/acl_delete_perm.3 create mode 100644 static/freebsd/man3/acl_dup.3 create mode 100644 static/freebsd/man3/acl_equiv_mode_np.3 create mode 100644 static/freebsd/man3/acl_extended_file_np.3 create mode 100644 static/freebsd/man3/acl_free.3 create mode 100644 static/freebsd/man3/acl_from_mode_np.3 create mode 100644 static/freebsd/man3/acl_from_text.3 create mode 100644 static/freebsd/man3/acl_get.3 create mode 100644 static/freebsd/man3/acl_get_brand_np.3 create mode 100644 static/freebsd/man3/acl_get_entry.3 create mode 100644 static/freebsd/man3/acl_get_entry_type_np.3 create mode 100644 static/freebsd/man3/acl_get_flag_np.3 create mode 100644 static/freebsd/man3/acl_get_flagset_np.3 create mode 100644 static/freebsd/man3/acl_get_perm_np.3 create mode 100644 static/freebsd/man3/acl_get_permset.3 create mode 100644 static/freebsd/man3/acl_get_qualifier.3 create mode 100644 static/freebsd/man3/acl_get_tag_type.3 create mode 100644 static/freebsd/man3/acl_init.3 create mode 100644 static/freebsd/man3/acl_is_trivial_np.3 create mode 100644 static/freebsd/man3/acl_set.3 create mode 100644 static/freebsd/man3/acl_set_entry_type_np.3 create mode 100644 static/freebsd/man3/acl_set_flagset_np.3 create mode 100644 static/freebsd/man3/acl_set_permset.3 create mode 100644 static/freebsd/man3/acl_set_qualifier.3 create mode 100644 static/freebsd/man3/acl_set_tag_type.3 create mode 100644 static/freebsd/man3/acl_strip_np.3 create mode 100644 static/freebsd/man3/acl_to_text.3 create mode 100644 static/freebsd/man3/acl_valid.3 create mode 100644 static/freebsd/man3/acos.3 create mode 100644 static/freebsd/man3/acosh.3 create mode 100644 static/freebsd/man3/alarm.3 create mode 100644 static/freebsd/man3/alloca.3 3.html create mode 100644 static/freebsd/man3/arb.3 3.html create mode 100644 static/freebsd/man3/arc4random.3 create mode 100644 static/freebsd/man3/archive_entry.3 create mode 100644 static/freebsd/man3/archive_entry_acl.3 create mode 100644 static/freebsd/man3/archive_entry_linkify.3 create mode 100644 static/freebsd/man3/archive_entry_misc.3 create mode 100644 static/freebsd/man3/archive_entry_paths.3 create mode 100644 static/freebsd/man3/archive_entry_perms.3 create mode 100644 static/freebsd/man3/archive_entry_stat.3 create mode 100644 static/freebsd/man3/archive_entry_time.3 create mode 100644 static/freebsd/man3/archive_read.3 create mode 100644 static/freebsd/man3/archive_read_add_passphrase.3 create mode 100644 static/freebsd/man3/archive_read_data.3 create mode 100644 static/freebsd/man3/archive_read_disk.3 create mode 100644 static/freebsd/man3/archive_read_extract.3 create mode 100644 static/freebsd/man3/archive_read_filter.3 create mode 100644 static/freebsd/man3/archive_read_format.3 create mode 100644 static/freebsd/man3/archive_read_free.3 create mode 100644 static/freebsd/man3/archive_read_header.3 create mode 100644 static/freebsd/man3/archive_read_new.3 create mode 100644 static/freebsd/man3/archive_read_open.3 create mode 100644 static/freebsd/man3/archive_read_set_options.3 create mode 100644 static/freebsd/man3/archive_util.3 create mode 100644 static/freebsd/man3/archive_write.3 create mode 100644 static/freebsd/man3/archive_write_blocksize.3 create mode 100644 static/freebsd/man3/archive_write_data.3 create mode 100644 static/freebsd/man3/archive_write_disk.3 create mode 100644 static/freebsd/man3/archive_write_filter.3 create mode 100644 static/freebsd/man3/archive_write_finish_entry.3 create mode 100644 static/freebsd/man3/archive_write_format.3 create mode 100644 static/freebsd/man3/archive_write_free.3 create mode 100644 static/freebsd/man3/archive_write_header.3 create mode 100644 static/freebsd/man3/archive_write_new.3 create mode 100644 static/freebsd/man3/archive_write_open.3 create mode 100644 static/freebsd/man3/archive_write_set_options.3 create mode 100644 static/freebsd/man3/archive_write_set_passphrase.3 create mode 100644 static/freebsd/man3/asin.3 create mode 100644 static/freebsd/man3/asinh.3 create mode 100644 static/freebsd/man3/asn1.3 create mode 100644 static/freebsd/man3/assert.3 3.html create mode 100644 static/freebsd/man3/at_quick_exit.3 create mode 100644 static/freebsd/man3/atan.3 create mode 100644 static/freebsd/man3/atan2.3 create mode 100644 static/freebsd/man3/atanh.3 create mode 100644 static/freebsd/man3/atexit.3 create mode 100644 static/freebsd/man3/atf-c++.3 create mode 100644 static/freebsd/man3/atf-c.3 create mode 100644 static/freebsd/man3/atf-sh.3 create mode 100644 static/freebsd/man3/atof.3 create mode 100644 static/freebsd/man3/atoi.3 create mode 100644 static/freebsd/man3/atol.3 create mode 100644 static/freebsd/man3/au_class.3 create mode 100644 static/freebsd/man3/au_control.3 create mode 100644 static/freebsd/man3/au_domain.3 create mode 100644 static/freebsd/man3/au_errno.3 create mode 100644 static/freebsd/man3/au_event.3 create mode 100644 static/freebsd/man3/au_fcntl_cmd.3 create mode 100644 static/freebsd/man3/au_free_token.3 create mode 100644 static/freebsd/man3/au_io.3 create mode 100644 static/freebsd/man3/au_mask.3 create mode 100644 static/freebsd/man3/au_notify.3 create mode 100644 static/freebsd/man3/au_open.3 create mode 100644 static/freebsd/man3/au_socket_type.3 create mode 100644 static/freebsd/man3/au_token.3 create mode 100644 static/freebsd/man3/au_user.3 create mode 100644 static/freebsd/man3/audit_submit.3 create mode 100644 static/freebsd/man3/auxv.3 create mode 100644 static/freebsd/man3/b2i_PVK_bio_ex.3 create mode 100644 static/freebsd/man3/backtrace.3 create mode 100644 static/freebsd/man3/basename.3 create mode 100644 static/freebsd/man3/bcl.3 create mode 100644 static/freebsd/man3/bcmp.3 create mode 100644 static/freebsd/man3/bcopy.3 create mode 100644 static/freebsd/man3/bindresvport.3 create mode 100644 static/freebsd/man3/bitstring.3 3.html create mode 100644 static/freebsd/man3/bluetooth.3 create mode 100644 static/freebsd/man3/bread.3 create mode 100644 static/freebsd/man3/bsddialog.3 create mode 100644 static/freebsd/man3/bsde_get_rule.3 create mode 100644 static/freebsd/man3/bsde_get_rule_count.3 create mode 100644 static/freebsd/man3/bsde_parse_rule.3 create mode 100644 static/freebsd/man3/bsde_rule_to_string.3 create mode 100644 static/freebsd/man3/bsearch.3 create mode 100644 static/freebsd/man3/bsnmpagent.3 create mode 100644 static/freebsd/man3/bsnmpclient.3 create mode 100644 static/freebsd/man3/bsnmplib.3 create mode 100644 static/freebsd/man3/bstring.3 create mode 100644 static/freebsd/man3/btowc.3 create mode 100644 static/freebsd/man3/btree.3 create mode 100644 static/freebsd/man3/byteorder.3 create mode 100644 static/freebsd/man3/bzero.3 create mode 100644 static/freebsd/man3/cacos.3 create mode 100644 static/freebsd/man3/calendar.3 create mode 100644 static/freebsd/man3/cam.3 create mode 100644 static/freebsd/man3/cam_cdbparse.3 create mode 100644 static/freebsd/man3/cap_dns.3 create mode 100644 static/freebsd/man3/cap_fileargs.3 create mode 100644 static/freebsd/man3/cap_grp.3 create mode 100644 static/freebsd/man3/cap_net.3 create mode 100644 static/freebsd/man3/cap_netdb.3 create mode 100644 static/freebsd/man3/cap_pwd.3 create mode 100644 static/freebsd/man3/cap_rights_get.3 create mode 100644 static/freebsd/man3/cap_rights_init.3 create mode 100644 static/freebsd/man3/cap_sandboxed.3 create mode 100644 static/freebsd/man3/cap_sysctl.3 create mode 100644 static/freebsd/man3/cap_syslog.3 create mode 100644 static/freebsd/man3/capsicum_helpers.3 create mode 100644 static/freebsd/man3/catclose.3 create mode 100644 static/freebsd/man3/catgets.3 create mode 100644 static/freebsd/man3/catopen.3 create mode 100644 static/freebsd/man3/ccos.3 create mode 100644 static/freebsd/man3/ccosh.3 create mode 100644 static/freebsd/man3/ceil.3 create mode 100644 static/freebsd/man3/cexp.3 create mode 100644 static/freebsd/man3/cgread.3 create mode 100644 static/freebsd/man3/challenge.3 create mode 100644 static/freebsd/man3/check_utility_compat.3 create mode 100644 static/freebsd/man3/cimag.3 create mode 100644 static/freebsd/man3/clock.3 create mode 100644 static/freebsd/man3/clock_getcpuclockid.3 create mode 100644 static/freebsd/man3/clog.3 create mode 100644 static/freebsd/man3/com_err.3 create mode 100644 static/freebsd/man3/complex.3 create mode 100644 static/freebsd/man3/confstr.3 create mode 100644 static/freebsd/man3/context.3 create mode 100644 static/freebsd/man3/copysign.3 create mode 100644 static/freebsd/man3/cos.3 create mode 100644 static/freebsd/man3/cosh.3 create mode 100644 static/freebsd/man3/cospi.3 create mode 100644 static/freebsd/man3/cpow.3 create mode 100644 static/freebsd/man3/cpuset.3 create mode 100644 static/freebsd/man3/crypt.3 create mode 100644 static/freebsd/man3/csh.3 create mode 100644 static/freebsd/man3/csqrt.3 create mode 100644 static/freebsd/man3/ctermid.3 create mode 100644 static/freebsd/man3/ctime.3 create mode 100644 static/freebsd/man3/ctype.3 create mode 100644 static/freebsd/man3/ctype_l.3 create mode 100644 static/freebsd/man3/cuse.3 create mode 100644 static/freebsd/man3/cuserid.3 create mode 100644 static/freebsd/man3/d2i_PKCS8PrivateKey_bio.3 create mode 100644 static/freebsd/man3/d2i_PrivateKey.3 create mode 100644 static/freebsd/man3/d2i_RSAPrivateKey.3 create mode 100644 static/freebsd/man3/d2i_SSL_SESSION.3 create mode 100644 static/freebsd/man3/d2i_X509.3 create mode 100644 static/freebsd/man3/daemon.3 create mode 100644 static/freebsd/man3/data.3 create mode 100644 static/freebsd/man3/db_btree.3 create mode 100644 static/freebsd/man3/db_hash.3 create mode 100644 static/freebsd/man3/db_lock.3 create mode 100644 static/freebsd/man3/db_log.3 create mode 100644 static/freebsd/man3/db_mpool.3 create mode 100644 static/freebsd/man3/db_open.3 create mode 100644 static/freebsd/man3/db_recno.3 create mode 100644 static/freebsd/man3/db_txn.3 create mode 100644 static/freebsd/man3/dbm.3 create mode 100644 static/freebsd/man3/dbopen.3 create mode 100644 static/freebsd/man3/des_crypt.3 create mode 100644 static/freebsd/man3/devctl.3 create mode 100644 static/freebsd/man3/devinfo.3 create mode 100644 static/freebsd/man3/devname.3 create mode 100644 static/freebsd/man3/devstat.3 create mode 100644 static/freebsd/man3/dialog.3 create mode 100644 static/freebsd/man3/digittoint.3 create mode 100644 static/freebsd/man3/directory.3 create mode 100644 static/freebsd/man3/dirname.3 create mode 100644 static/freebsd/man3/div.3 create mode 100644 static/freebsd/man3/dl_iterate_phdr.3 create mode 100644 static/freebsd/man3/dladdr.3 create mode 100644 static/freebsd/man3/dlinfo.3 create mode 100644 static/freebsd/man3/dllockinit.3 create mode 100644 static/freebsd/man3/dlopen.3 create mode 100644 static/freebsd/man3/domain.3 create mode 100644 static/freebsd/man3/dpv.3 create mode 100644 static/freebsd/man3/dup3.3 create mode 100644 static/freebsd/man3/duplocale.3 create mode 100644 static/freebsd/man3/dwarf.3 create mode 100644 static/freebsd/man3/dwarf_add_AT_comp_dir.3 create mode 100644 static/freebsd/man3/dwarf_add_AT_const_value_string.3 create mode 100644 static/freebsd/man3/dwarf_add_AT_dataref.3 create mode 100644 static/freebsd/man3/dwarf_add_AT_flag.3 create mode 100644 static/freebsd/man3/dwarf_add_AT_location_expr.3 create mode 100644 static/freebsd/man3/dwarf_add_AT_name.3 create mode 100644 static/freebsd/man3/dwarf_add_AT_producer.3 create mode 100644 static/freebsd/man3/dwarf_add_AT_ref_address.3 create mode 100644 static/freebsd/man3/dwarf_add_AT_reference.3 create mode 100644 static/freebsd/man3/dwarf_add_AT_signed_const.3 create mode 100644 static/freebsd/man3/dwarf_add_AT_string.3 create mode 100644 static/freebsd/man3/dwarf_add_AT_targ_address.3 create mode 100644 static/freebsd/man3/dwarf_add_arange.3 create mode 100644 static/freebsd/man3/dwarf_add_die_to_debug.3 create mode 100644 static/freebsd/man3/dwarf_add_directory_decl.3 create mode 100644 static/freebsd/man3/dwarf_add_expr_addr.3 create mode 100644 static/freebsd/man3/dwarf_add_expr_gen.3 create mode 100644 static/freebsd/man3/dwarf_add_fde_inst.3 create mode 100644 static/freebsd/man3/dwarf_add_file_decl.3 create mode 100644 static/freebsd/man3/dwarf_add_frame_cie.3 create mode 100644 static/freebsd/man3/dwarf_add_frame_fde.3 create mode 100644 static/freebsd/man3/dwarf_add_funcname.3 create mode 100644 static/freebsd/man3/dwarf_add_line_entry.3 create mode 100644 static/freebsd/man3/dwarf_add_pubname.3 create mode 100644 static/freebsd/man3/dwarf_add_typename.3 create mode 100644 static/freebsd/man3/dwarf_add_varname.3 create mode 100644 static/freebsd/man3/dwarf_add_weakname.3 create mode 100644 static/freebsd/man3/dwarf_attr.3 create mode 100644 static/freebsd/man3/dwarf_attrlist.3 create mode 100644 static/freebsd/man3/dwarf_attroffset.3 create mode 100644 static/freebsd/man3/dwarf_attrval_signed.3 create mode 100644 static/freebsd/man3/dwarf_child.3 create mode 100644 static/freebsd/man3/dwarf_dealloc.3 create mode 100644 static/freebsd/man3/dwarf_def_macro.3 create mode 100644 static/freebsd/man3/dwarf_die_abbrev_code.3 create mode 100644 static/freebsd/man3/dwarf_die_link.3 create mode 100644 static/freebsd/man3/dwarf_diename.3 create mode 100644 static/freebsd/man3/dwarf_dieoffset.3 create mode 100644 static/freebsd/man3/dwarf_end_macro_file.3 create mode 100644 static/freebsd/man3/dwarf_errmsg.3 create mode 100644 static/freebsd/man3/dwarf_errno.3 create mode 100644 static/freebsd/man3/dwarf_expand_frame_instructions.3 create mode 100644 static/freebsd/man3/dwarf_expr_current_offset.3 create mode 100644 static/freebsd/man3/dwarf_expr_into_block.3 create mode 100644 static/freebsd/man3/dwarf_fde_cfa_offset.3 create mode 100644 static/freebsd/man3/dwarf_find_macro_value_start.3 create mode 100644 static/freebsd/man3/dwarf_finish.3 create mode 100644 static/freebsd/man3/dwarf_formaddr.3 create mode 100644 static/freebsd/man3/dwarf_formblock.3 create mode 100644 static/freebsd/man3/dwarf_formexprloc.3 create mode 100644 static/freebsd/man3/dwarf_formflag.3 create mode 100644 static/freebsd/man3/dwarf_formref.3 create mode 100644 static/freebsd/man3/dwarf_formsig8.3 create mode 100644 static/freebsd/man3/dwarf_formstring.3 create mode 100644 static/freebsd/man3/dwarf_formudata.3 create mode 100644 static/freebsd/man3/dwarf_get_AT_name.3 create mode 100644 static/freebsd/man3/dwarf_get_abbrev.3 create mode 100644 static/freebsd/man3/dwarf_get_abbrev_children_flag.3 create mode 100644 static/freebsd/man3/dwarf_get_abbrev_code.3 create mode 100644 static/freebsd/man3/dwarf_get_abbrev_entry.3 create mode 100644 static/freebsd/man3/dwarf_get_abbrev_tag.3 create mode 100644 static/freebsd/man3/dwarf_get_address_size.3 create mode 100644 static/freebsd/man3/dwarf_get_arange.3 create mode 100644 static/freebsd/man3/dwarf_get_arange_info.3 create mode 100644 static/freebsd/man3/dwarf_get_aranges.3 create mode 100644 static/freebsd/man3/dwarf_get_cie_index.3 create mode 100644 static/freebsd/man3/dwarf_get_cie_info.3 create mode 100644 static/freebsd/man3/dwarf_get_cie_of_fde.3 create mode 100644 static/freebsd/man3/dwarf_get_cu_die_offset.3 create mode 100644 static/freebsd/man3/dwarf_get_die_infotypes_flag.3 create mode 100644 static/freebsd/man3/dwarf_get_elf.3 create mode 100644 static/freebsd/man3/dwarf_get_fde_at_pc.3 create mode 100644 static/freebsd/man3/dwarf_get_fde_info_for_all_regs.3 create mode 100644 static/freebsd/man3/dwarf_get_fde_info_for_all_regs3.3 create mode 100644 static/freebsd/man3/dwarf_get_fde_info_for_cfa_reg3.3 create mode 100644 static/freebsd/man3/dwarf_get_fde_info_for_reg.3 create mode 100644 static/freebsd/man3/dwarf_get_fde_info_for_reg3.3 create mode 100644 static/freebsd/man3/dwarf_get_fde_instr_bytes.3 create mode 100644 static/freebsd/man3/dwarf_get_fde_list.3 create mode 100644 static/freebsd/man3/dwarf_get_fde_n.3 create mode 100644 static/freebsd/man3/dwarf_get_fde_range.3 create mode 100644 static/freebsd/man3/dwarf_get_form_class.3 create mode 100644 static/freebsd/man3/dwarf_get_funcs.3 create mode 100644 static/freebsd/man3/dwarf_get_globals.3 create mode 100644 static/freebsd/man3/dwarf_get_loclist_entry.3 create mode 100644 static/freebsd/man3/dwarf_get_macro_details.3 create mode 100644 static/freebsd/man3/dwarf_get_pubtypes.3 create mode 100644 static/freebsd/man3/dwarf_get_ranges.3 create mode 100644 static/freebsd/man3/dwarf_get_relocation_info.3 create mode 100644 static/freebsd/man3/dwarf_get_relocation_info_count.3 create mode 100644 static/freebsd/man3/dwarf_get_section_bytes.3 create mode 100644 static/freebsd/man3/dwarf_get_section_max_offsets.3 create mode 100644 static/freebsd/man3/dwarf_get_str.3 create mode 100644 static/freebsd/man3/dwarf_get_types.3 create mode 100644 static/freebsd/man3/dwarf_get_vars.3 create mode 100644 static/freebsd/man3/dwarf_get_weaks.3 create mode 100644 static/freebsd/man3/dwarf_hasattr.3 create mode 100644 static/freebsd/man3/dwarf_hasform.3 create mode 100644 static/freebsd/man3/dwarf_highpc.3 create mode 100644 static/freebsd/man3/dwarf_init.3 create mode 100644 static/freebsd/man3/dwarf_lineno.3 create mode 100644 static/freebsd/man3/dwarf_lne_end_sequence.3 create mode 100644 static/freebsd/man3/dwarf_lne_set_address.3 create mode 100644 static/freebsd/man3/dwarf_loclist.3 create mode 100644 static/freebsd/man3/dwarf_loclist_from_expr.3 create mode 100644 static/freebsd/man3/dwarf_new_die.3 create mode 100644 static/freebsd/man3/dwarf_new_expr.3 create mode 100644 static/freebsd/man3/dwarf_new_fde.3 create mode 100644 static/freebsd/man3/dwarf_next_cu_header.3 create mode 100644 static/freebsd/man3/dwarf_next_types_section.3 create mode 100644 static/freebsd/man3/dwarf_object_init.3 create mode 100644 static/freebsd/man3/dwarf_producer_init.3 create mode 100644 static/freebsd/man3/dwarf_producer_set_isa.3 create mode 100644 static/freebsd/man3/dwarf_reset_section_bytes.3 create mode 100644 static/freebsd/man3/dwarf_set_frame_cfa_value.3 create mode 100644 static/freebsd/man3/dwarf_set_reloc_application.3 create mode 100644 static/freebsd/man3/dwarf_seterrarg.3 create mode 100644 static/freebsd/man3/dwarf_srcfiles.3 create mode 100644 static/freebsd/man3/dwarf_srclines.3 create mode 100644 static/freebsd/man3/dwarf_start_macro_file.3 create mode 100644 static/freebsd/man3/dwarf_tag.3 create mode 100644 static/freebsd/man3/dwarf_transform_to_disk_form.3 create mode 100644 static/freebsd/man3/dwarf_undef_macro.3 create mode 100644 static/freebsd/man3/dwarf_vendor_ext.3 create mode 100644 static/freebsd/man3/dwarf_whatattr.3 create mode 100644 static/freebsd/man3/ecalloc.3 create mode 100644 static/freebsd/man3/eddsa_pk_new.3 create mode 100644 static/freebsd/man3/editline.3 create mode 100644 static/freebsd/man3/efivar.3 create mode 100644 static/freebsd/man3/elf.3 create mode 100644 static/freebsd/man3/elf_begin.3 create mode 100644 static/freebsd/man3/elf_cntl.3 create mode 100644 static/freebsd/man3/elf_end.3 create mode 100644 static/freebsd/man3/elf_errmsg.3 create mode 100644 static/freebsd/man3/elf_fill.3 create mode 100644 static/freebsd/man3/elf_flagdata.3 create mode 100644 static/freebsd/man3/elf_getarhdr.3 create mode 100644 static/freebsd/man3/elf_getarsym.3 create mode 100644 static/freebsd/man3/elf_getbase.3 create mode 100644 static/freebsd/man3/elf_getdata.3 create mode 100644 static/freebsd/man3/elf_getident.3 create mode 100644 static/freebsd/man3/elf_getphdrnum.3 create mode 100644 static/freebsd/man3/elf_getphnum.3 create mode 100644 static/freebsd/man3/elf_getscn.3 create mode 100644 static/freebsd/man3/elf_getshdrnum.3 create mode 100644 static/freebsd/man3/elf_getshdrstrndx.3 create mode 100644 static/freebsd/man3/elf_getshnum.3 create mode 100644 static/freebsd/man3/elf_getshstrndx.3 create mode 100644 static/freebsd/man3/elf_hash.3 create mode 100644 static/freebsd/man3/elf_kind.3 create mode 100644 static/freebsd/man3/elf_memory.3 create mode 100644 static/freebsd/man3/elf_next.3 create mode 100644 static/freebsd/man3/elf_open.3 create mode 100644 static/freebsd/man3/elf_rand.3 create mode 100644 static/freebsd/man3/elf_rawfile.3 create mode 100644 static/freebsd/man3/elf_strptr.3 create mode 100644 static/freebsd/man3/elf_update.3 create mode 100644 static/freebsd/man3/elf_version.3 create mode 100644 static/freebsd/man3/elftc.3 create mode 100644 static/freebsd/man3/elftc_bfd_find_target.3 create mode 100644 static/freebsd/man3/elftc_copyfile.3 create mode 100644 static/freebsd/man3/elftc_demangle.3 create mode 100644 static/freebsd/man3/elftc_reloc_type_str.3 create mode 100644 static/freebsd/man3/elftc_set_timestamps.3 create mode 100644 static/freebsd/man3/elftc_string_table_create.3 create mode 100644 static/freebsd/man3/elftc_timestamp.3 create mode 100644 static/freebsd/man3/elftc_version.3 create mode 100644 static/freebsd/man3/end.3 4.html create mode 100644 static/freebsd/man3/erf.3 create mode 100644 static/freebsd/man3/err.3 create mode 100644 static/freebsd/man3/es256_pk_new.3 create mode 100644 static/freebsd/man3/es384_pk_new.3 create mode 100644 static/freebsd/man3/ethers.3 create mode 100644 static/freebsd/man3/eui64.3 create mode 100644 static/freebsd/man3/example.3 create mode 100644 static/freebsd/man3/exec.3 create mode 100644 static/freebsd/man3/exit.3 create mode 100644 static/freebsd/man3/exp.3 create mode 100644 static/freebsd/man3/expand_number.3 create mode 100644 static/freebsd/man3/expected.status.3 create mode 100644 static/freebsd/man3/expected.stderr.3 create mode 100644 static/freebsd/man3/expected.stdout.3 create mode 100644 static/freebsd/man3/extattr.3 create mode 100644 static/freebsd/man3/fabs.3 create mode 100644 static/freebsd/man3/fclose.3 create mode 100644 static/freebsd/man3/fdim.3 create mode 100644 static/freebsd/man3/feature_present.3 create mode 100644 static/freebsd/man3/feclearexcept.3 create mode 100644 static/freebsd/man3/feenableexcept.3 create mode 100644 static/freebsd/man3/fegetenv.3 create mode 100644 static/freebsd/man3/fegetround.3 create mode 100644 static/freebsd/man3/fenv.3 create mode 100644 static/freebsd/man3/ferror.3 create mode 100644 static/freebsd/man3/fetch.3 create mode 100644 static/freebsd/man3/fflush.3 create mode 100644 static/freebsd/man3/ffs.3 create mode 100644 static/freebsd/man3/fgetln.3 create mode 100644 static/freebsd/man3/fgets.3 create mode 100644 static/freebsd/man3/fgetwln.3 create mode 100644 static/freebsd/man3/fgetws.3 create mode 100644 static/freebsd/man3/fido_assert_allow_cred.3 create mode 100644 static/freebsd/man3/fido_assert_new.3 create mode 100644 static/freebsd/man3/fido_assert_set_authdata.3 create mode 100644 static/freebsd/man3/fido_assert_verify.3 create mode 100644 static/freebsd/man3/fido_bio_dev_get_info.3 create mode 100644 static/freebsd/man3/fido_bio_enroll_new.3 create mode 100644 static/freebsd/man3/fido_bio_info_new.3 create mode 100644 static/freebsd/man3/fido_bio_template.3 create mode 100644 static/freebsd/man3/fido_cbor_info_new.3 create mode 100644 static/freebsd/man3/fido_cred_exclude.3 create mode 100644 static/freebsd/man3/fido_cred_new.3 create mode 100644 static/freebsd/man3/fido_cred_set_authdata.3 create mode 100644 static/freebsd/man3/fido_cred_verify.3 create mode 100644 static/freebsd/man3/fido_credman_metadata_new.3 create mode 100644 static/freebsd/man3/fido_dev_enable_entattest.3 create mode 100644 static/freebsd/man3/fido_dev_get_assert.3 create mode 100644 static/freebsd/man3/fido_dev_get_touch_begin.3 create mode 100644 static/freebsd/man3/fido_dev_info_manifest.3 create mode 100644 static/freebsd/man3/fido_dev_largeblob_get.3 create mode 100644 static/freebsd/man3/fido_dev_make_cred.3 create mode 100644 static/freebsd/man3/fido_dev_open.3 create mode 100644 static/freebsd/man3/fido_dev_set_io_functions.3 create mode 100644 static/freebsd/man3/fido_dev_set_pin.3 create mode 100644 static/freebsd/man3/fido_init.3 create mode 100644 static/freebsd/man3/fido_strerr.3 create mode 100644 static/freebsd/man3/figpar.3 create mode 100644 static/freebsd/man3/flags.3 create mode 100644 static/freebsd/man3/flockfile.3 create mode 100644 static/freebsd/man3/floor.3 create mode 100644 static/freebsd/man3/flopen.3 create mode 100644 static/freebsd/man3/fma.3 create mode 100644 static/freebsd/man3/fmax.3 create mode 100644 static/freebsd/man3/fmaximum.3 create mode 100644 static/freebsd/man3/fmaximum_mag.3 create mode 100644 static/freebsd/man3/fmaximum_num.3 create mode 100644 static/freebsd/man3/fmod.3 create mode 100644 static/freebsd/man3/fmtcheck.3 create mode 100644 static/freebsd/man3/fmtmsg.3 create mode 100644 static/freebsd/man3/fnmatch.3 create mode 100644 static/freebsd/man3/fopen.3 create mode 100644 static/freebsd/man3/fopencookie.3 create mode 100644 static/freebsd/man3/fparseln.3 create mode 100644 static/freebsd/man3/fpclassify.3 create mode 100644 static/freebsd/man3/fpgetround.3 4.html create mode 100644 static/freebsd/man3/fputs.3 create mode 100644 static/freebsd/man3/fputws.3 create mode 100644 static/freebsd/man3/fread.3 create mode 100644 static/freebsd/man3/freebsd-11.3 create mode 100644 static/freebsd/man3/freebsd__FILE_up.3 create mode 100644 static/freebsd/man3/freebsd__addrinfo_up.3 create mode 100644 static/freebsd/man3/freebsd__fd_up.3 create mode 100644 static/freebsd/man3/freebsd__malloc_up.3 create mode 100644 static/freebsd/man3/freebsd__nvlist_up.3 create mode 100644 static/freebsd/man3/freebsd__pidfile.3 create mode 100644 static/freebsd/man3/freebsd__stringf.3 create mode 100644 static/freebsd/man3/freelocale.3 create mode 100644 static/freebsd/man3/frexp.3 create mode 100644 static/freebsd/man3/fseek.3 create mode 100644 static/freebsd/man3/ftime.3 create mode 100644 static/freebsd/man3/ftok.3 create mode 100644 static/freebsd/man3/fts.3 create mode 100644 static/freebsd/man3/ftw.3 create mode 100644 static/freebsd/man3/funopen.3 create mode 100644 static/freebsd/man3/fwide.3 create mode 100644 static/freebsd/man3/gai_strerror.3 create mode 100644 static/freebsd/man3/gelf.3 create mode 100644 static/freebsd/man3/gelf_checksum.3 create mode 100644 static/freebsd/man3/gelf_fsize.3 create mode 100644 static/freebsd/man3/gelf_getcap.3 create mode 100644 static/freebsd/man3/gelf_getchdr.3 create mode 100644 static/freebsd/man3/gelf_getclass.3 create mode 100644 static/freebsd/man3/gelf_getdyn.3 create mode 100644 static/freebsd/man3/gelf_getehdr.3 create mode 100644 static/freebsd/man3/gelf_getmove.3 create mode 100644 static/freebsd/man3/gelf_getphdr.3 create mode 100644 static/freebsd/man3/gelf_getrel.3 create mode 100644 static/freebsd/man3/gelf_getrela.3 create mode 100644 static/freebsd/man3/gelf_getshdr.3 create mode 100644 static/freebsd/man3/gelf_getsym.3 create mode 100644 static/freebsd/man3/gelf_getsyminfo.3 create mode 100644 static/freebsd/man3/gelf_getsymshndx.3 create mode 100644 static/freebsd/man3/gelf_newehdr.3 create mode 100644 static/freebsd/man3/gelf_newphdr.3 create mode 100644 static/freebsd/man3/gelf_update_ehdr.3 create mode 100644 static/freebsd/man3/gelf_xlatetof.3 create mode 100644 static/freebsd/man3/getaddrinfo.3 create mode 100644 static/freebsd/man3/getarg.3 create mode 100644 static/freebsd/man3/getbootfile.3 create mode 100644 static/freebsd/man3/getbsize.3 create mode 100644 static/freebsd/man3/getc.3 create mode 100644 static/freebsd/man3/getcap.3 create mode 100644 static/freebsd/man3/getcontext.3 create mode 100644 static/freebsd/man3/getcwd.3 create mode 100644 static/freebsd/man3/getdiskbyname.3 create mode 100644 static/freebsd/man3/getdomainname.3 create mode 100644 static/freebsd/man3/getentropy.3 create mode 100644 static/freebsd/man3/getenv.3 create mode 100644 static/freebsd/man3/getfsent.3 create mode 100644 static/freebsd/man3/getgrent.3 create mode 100644 static/freebsd/man3/getgrouplist.3 create mode 100644 static/freebsd/man3/gethostbyname.3 create mode 100644 static/freebsd/man3/gethostid.3 create mode 100644 static/freebsd/man3/gethostname.3 create mode 100644 static/freebsd/man3/getifaddrs.3 create mode 100644 static/freebsd/man3/getifmaddrs.3 create mode 100644 static/freebsd/man3/getinode.3 create mode 100644 static/freebsd/man3/getipnodebyname.3 create mode 100644 static/freebsd/man3/getline.3 create mode 100644 static/freebsd/man3/getloadavg.3 create mode 100644 static/freebsd/man3/getlocalbase.3 create mode 100644 static/freebsd/man3/getmntinfo.3 create mode 100644 static/freebsd/man3/getnameinfo.3 create mode 100644 static/freebsd/man3/getnetconfig.3 create mode 100644 static/freebsd/man3/getnetent.3 create mode 100644 static/freebsd/man3/getnetgrent.3 create mode 100644 static/freebsd/man3/getnetpath.3 create mode 100644 static/freebsd/man3/getopt.3 create mode 100644 static/freebsd/man3/getopt_long.3 create mode 100644 static/freebsd/man3/getosreldate.3 create mode 100644 static/freebsd/man3/getpagesize.3 create mode 100644 static/freebsd/man3/getpagesizes.3 create mode 100644 static/freebsd/man3/getpass.3 create mode 100644 static/freebsd/man3/getpeereid.3 create mode 100644 static/freebsd/man3/getprogname.3 create mode 100644 static/freebsd/man3/getprotoent.3 create mode 100644 static/freebsd/man3/getpwent.3 create mode 100644 static/freebsd/man3/getrpcent.3 create mode 100644 static/freebsd/man3/getrpcport.3 create mode 100644 static/freebsd/man3/getservent.3 create mode 100644 static/freebsd/man3/getsubopt.3 create mode 100644 static/freebsd/man3/getttyent.3 create mode 100644 static/freebsd/man3/getusershell.3 create mode 100644 static/freebsd/man3/getutxent.3 create mode 100644 static/freebsd/man3/getvfsbyname.3 create mode 100644 static/freebsd/man3/getwc.3 create mode 100644 static/freebsd/man3/glob.3 create mode 100644 static/freebsd/man3/gpio.3 create mode 100644 static/freebsd/man3/gss_accept_sec_context.3 create mode 100644 static/freebsd/man3/gss_acquire_cred.3 create mode 100644 static/freebsd/man3/gss_add_cred.3 create mode 100644 static/freebsd/man3/gss_add_oid_set_member.3 create mode 100644 static/freebsd/man3/gss_canonicalize_name.3 create mode 100644 static/freebsd/man3/gss_compare_name.3 create mode 100644 static/freebsd/man3/gss_context_time.3 create mode 100644 static/freebsd/man3/gss_create_empty_oid_set.3 create mode 100644 static/freebsd/man3/gss_delete_sec_context.3 create mode 100644 static/freebsd/man3/gss_display_name.3 create mode 100644 static/freebsd/man3/gss_display_status.3 create mode 100644 static/freebsd/man3/gss_duplicate_name.3 create mode 100644 static/freebsd/man3/gss_export_name.3 create mode 100644 static/freebsd/man3/gss_export_sec_context.3 create mode 100644 static/freebsd/man3/gss_get_mic.3 create mode 100644 static/freebsd/man3/gss_import_name.3 create mode 100644 static/freebsd/man3/gss_import_sec_context.3 create mode 100644 static/freebsd/man3/gss_indicate_mechs.3 create mode 100644 static/freebsd/man3/gss_init_sec_context.3 create mode 100644 static/freebsd/man3/gss_inquire_attrs_for_mech.3 create mode 100644 static/freebsd/man3/gss_inquire_context.3 create mode 100644 static/freebsd/man3/gss_inquire_cred.3 create mode 100644 static/freebsd/man3/gss_inquire_cred_by_mech.3 create mode 100644 static/freebsd/man3/gss_inquire_mechs_for_name.3 create mode 100644 static/freebsd/man3/gss_inquire_names_for_mech.3 create mode 100644 static/freebsd/man3/gss_inquire_saslname_for_mech.3 create mode 100644 static/freebsd/man3/gss_oid_equal.3 create mode 100644 static/freebsd/man3/gss_process_context_token.3 create mode 100644 static/freebsd/man3/gss_release_buffer.3 create mode 100644 static/freebsd/man3/gss_release_cred.3 create mode 100644 static/freebsd/man3/gss_release_iov_buffer.3 create mode 100644 static/freebsd/man3/gss_release_name.3 create mode 100644 static/freebsd/man3/gss_release_oid_set.3 create mode 100644 static/freebsd/man3/gss_test_oid_set_member.3 create mode 100644 static/freebsd/man3/gss_unwrap.3 create mode 100644 static/freebsd/man3/gss_unwrap_iov.3 create mode 100644 static/freebsd/man3/gss_verify_mic.3 create mode 100644 static/freebsd/man3/gss_wrap.3 create mode 100644 static/freebsd/man3/gss_wrap_iov.3 create mode 100644 static/freebsd/man3/gss_wrap_iov_length.3 create mode 100644 static/freebsd/man3/gss_wrap_size_limit.3 create mode 100644 static/freebsd/man3/gssapi.3 create mode 100644 static/freebsd/man3/gssapi_mechs_intro.3 create mode 100644 static/freebsd/man3/gssapi_services_intro.3 create mode 100644 static/freebsd/man3/hash.3 create mode 100644 static/freebsd/man3/hcreate.3 create mode 100644 static/freebsd/man3/hcrypto_core.3 create mode 100644 static/freebsd/man3/hcrypto_des.3 create mode 100644 static/freebsd/man3/hcrypto_dh.3 create mode 100644 static/freebsd/man3/hcrypto_evp.3 create mode 100644 static/freebsd/man3/hcrypto_misc.3 create mode 100644 static/freebsd/man3/hcrypto_rand.3 create mode 100644 static/freebsd/man3/hcrypto_rsa.3 create mode 100644 static/freebsd/man3/hdb__del.3 create mode 100644 static/freebsd/man3/hdb__get.3 create mode 100644 static/freebsd/man3/hdb__put.3 create mode 100644 static/freebsd/man3/hdb_auth_status.3 create mode 100644 static/freebsd/man3/hdb_check_constrained_delegation.3 create mode 100644 static/freebsd/man3/hdb_check_pkinit_ms_upn_match.3 create mode 100644 static/freebsd/man3/hdb_check_s4u2self.3 create mode 100644 static/freebsd/man3/hdb_close.3 create mode 100644 static/freebsd/man3/hdb_destroy.3 create mode 100644 static/freebsd/man3/hdb_entry_ex.3 create mode 100644 static/freebsd/man3/hdb_fetch_kvno.3 create mode 100644 static/freebsd/man3/hdb_firstkey.3 create mode 100644 static/freebsd/man3/hdb_free.3 create mode 100644 static/freebsd/man3/hdb_get_realms.3 create mode 100644 static/freebsd/man3/hdb_lock.3 create mode 100644 static/freebsd/man3/hdb_name.3 create mode 100644 static/freebsd/man3/hdb_nextkey.3 create mode 100644 static/freebsd/man3/hdb_open.3 create mode 100644 static/freebsd/man3/hdb_password.3 create mode 100644 static/freebsd/man3/hdb_remove.3 create mode 100644 static/freebsd/man3/hdb_rename.3 create mode 100644 static/freebsd/man3/hdb_store.3 create mode 100644 static/freebsd/man3/hdb_unlock.3 create mode 100644 static/freebsd/man3/heim_ntlm_build_ntlm1_master.3 create mode 100644 static/freebsd/man3/heim_ntlm_build_ntlm2_master.3 create mode 100644 static/freebsd/man3/heim_ntlm_calculate_lm2.3 create mode 100644 static/freebsd/man3/heim_ntlm_calculate_ntlm1.3 create mode 100644 static/freebsd/man3/heim_ntlm_calculate_ntlm2.3 create mode 100644 static/freebsd/man3/heim_ntlm_decode_targetinfo.3 create mode 100644 static/freebsd/man3/heim_ntlm_encode_targetinfo.3 create mode 100644 static/freebsd/man3/heim_ntlm_encode_type1.3 create mode 100644 static/freebsd/man3/heim_ntlm_encode_type2.3 create mode 100644 static/freebsd/man3/heim_ntlm_encode_type3.3 create mode 100644 static/freebsd/man3/heim_ntlm_free_buf.3 create mode 100644 static/freebsd/man3/heim_ntlm_free_targetinfo.3 create mode 100644 static/freebsd/man3/heim_ntlm_free_type1.3 create mode 100644 static/freebsd/man3/heim_ntlm_free_type2.3 create mode 100644 static/freebsd/man3/heim_ntlm_free_type3.3 create mode 100644 static/freebsd/man3/heim_ntlm_keyex_unwrap.3 create mode 100644 static/freebsd/man3/heim_ntlm_nt_key.3 create mode 100644 static/freebsd/man3/heim_ntlm_ntlmv2_key.3 create mode 100644 static/freebsd/man3/heim_ntlm_verify_ntlm2.3 create mode 100644 static/freebsd/man3/hesiod.3 create mode 100644 static/freebsd/man3/hexdump.3 create mode 100644 static/freebsd/man3/hostname.3 create mode 100644 static/freebsd/man3/hosts_access.3 create mode 100644 static/freebsd/man3/humanize_number.3 create mode 100644 static/freebsd/man3/hx509.3 create mode 100644 static/freebsd/man3/hx509_bitstring_print.3 create mode 100644 static/freebsd/man3/hx509_ca.3 create mode 100644 static/freebsd/man3/hx509_ca_sign.3 create mode 100644 static/freebsd/man3/hx509_ca_sign_self.3 create mode 100644 static/freebsd/man3/hx509_ca_tbs_add_crl_dp_uri.3 create mode 100644 static/freebsd/man3/hx509_ca_tbs_add_eku.3 create mode 100644 static/freebsd/man3/hx509_ca_tbs_add_san_hostname.3 create mode 100644 static/freebsd/man3/hx509_ca_tbs_add_san_jid.3 create mode 100644 static/freebsd/man3/hx509_ca_tbs_add_san_ms_upn.3 create mode 100644 static/freebsd/man3/hx509_ca_tbs_add_san_otherName.3 create mode 100644 static/freebsd/man3/hx509_ca_tbs_add_san_pkinit.3 create mode 100644 static/freebsd/man3/hx509_ca_tbs_add_san_rfc822name.3 create mode 100644 static/freebsd/man3/hx509_ca_tbs_free.3 create mode 100644 static/freebsd/man3/hx509_ca_tbs_init.3 create mode 100644 static/freebsd/man3/hx509_ca_tbs_set_ca.3 create mode 100644 static/freebsd/man3/hx509_ca_tbs_set_domaincontroller.3 create mode 100644 static/freebsd/man3/hx509_ca_tbs_set_notAfter.3 create mode 100644 static/freebsd/man3/hx509_ca_tbs_set_notAfter_lifetime.3 create mode 100644 static/freebsd/man3/hx509_ca_tbs_set_notBefore.3 create mode 100644 static/freebsd/man3/hx509_ca_tbs_set_proxy.3 create mode 100644 static/freebsd/man3/hx509_ca_tbs_set_serialnumber.3 create mode 100644 static/freebsd/man3/hx509_ca_tbs_set_spki.3 create mode 100644 static/freebsd/man3/hx509_ca_tbs_set_subject.3 create mode 100644 static/freebsd/man3/hx509_ca_tbs_set_template.3 create mode 100644 static/freebsd/man3/hx509_ca_tbs_set_unique.3 create mode 100644 static/freebsd/man3/hx509_ca_tbs_subject_expand.3 create mode 100644 static/freebsd/man3/hx509_ca_tbs_template_units.3 create mode 100644 static/freebsd/man3/hx509_cert.3 create mode 100644 static/freebsd/man3/hx509_cert_binary.3 create mode 100644 static/freebsd/man3/hx509_cert_check_eku.3 create mode 100644 static/freebsd/man3/hx509_cert_cmp.3 create mode 100644 static/freebsd/man3/hx509_cert_find_subjectAltName_otherName.3 create mode 100644 static/freebsd/man3/hx509_cert_free.3 create mode 100644 static/freebsd/man3/hx509_cert_get_SPKI.3 create mode 100644 static/freebsd/man3/hx509_cert_get_SPKI_AlgorithmIdentifier.3 create mode 100644 static/freebsd/man3/hx509_cert_get_attribute.3 create mode 100644 static/freebsd/man3/hx509_cert_get_base_subject.3 create mode 100644 static/freebsd/man3/hx509_cert_get_friendly_name.3 create mode 100644 static/freebsd/man3/hx509_cert_get_issuer.3 create mode 100644 static/freebsd/man3/hx509_cert_get_issuer_unique_id.3 create mode 100644 static/freebsd/man3/hx509_cert_get_notAfter.3 create mode 100644 static/freebsd/man3/hx509_cert_get_notBefore.3 create mode 100644 static/freebsd/man3/hx509_cert_get_serialnumber.3 create mode 100644 static/freebsd/man3/hx509_cert_get_subject.3 create mode 100644 static/freebsd/man3/hx509_cert_get_subject_unique_id.3 create mode 100644 static/freebsd/man3/hx509_cert_init.3 create mode 100644 static/freebsd/man3/hx509_cert_init_data.3 create mode 100644 static/freebsd/man3/hx509_cert_keyusage_print.3 create mode 100644 static/freebsd/man3/hx509_cert_ref.3 create mode 100644 static/freebsd/man3/hx509_cert_set_friendly_name.3 create mode 100644 static/freebsd/man3/hx509_certs_add.3 create mode 100644 static/freebsd/man3/hx509_certs_append.3 create mode 100644 static/freebsd/man3/hx509_certs_end_seq.3 create mode 100644 static/freebsd/man3/hx509_certs_filter.3 create mode 100644 static/freebsd/man3/hx509_certs_find.3 create mode 100644 static/freebsd/man3/hx509_certs_free.3 create mode 100644 static/freebsd/man3/hx509_certs_info.3 create mode 100644 static/freebsd/man3/hx509_certs_init.3 create mode 100644 static/freebsd/man3/hx509_certs_iter_f.3 create mode 100644 static/freebsd/man3/hx509_certs_merge.3 create mode 100644 static/freebsd/man3/hx509_certs_next_cert.3 create mode 100644 static/freebsd/man3/hx509_certs_start_seq.3 create mode 100644 static/freebsd/man3/hx509_certs_store.3 create mode 100644 static/freebsd/man3/hx509_ci_print_names.3 create mode 100644 static/freebsd/man3/hx509_clear_error_string.3 create mode 100644 static/freebsd/man3/hx509_cms.3 create mode 100644 static/freebsd/man3/hx509_cms_create_signed_1.3 create mode 100644 static/freebsd/man3/hx509_cms_envelope_1.3 create mode 100644 static/freebsd/man3/hx509_cms_unenvelope.3 create mode 100644 static/freebsd/man3/hx509_cms_unwrap_ContentInfo.3 create mode 100644 static/freebsd/man3/hx509_cms_verify_signed.3 create mode 100644 static/freebsd/man3/hx509_cms_wrap_ContentInfo.3 create mode 100644 static/freebsd/man3/hx509_context_free.3 create mode 100644 static/freebsd/man3/hx509_context_init.3 create mode 100644 static/freebsd/man3/hx509_context_set_missing_revoke.3 create mode 100644 static/freebsd/man3/hx509_crl_add_revoked_certs.3 create mode 100644 static/freebsd/man3/hx509_crl_alloc.3 create mode 100644 static/freebsd/man3/hx509_crl_free.3 create mode 100644 static/freebsd/man3/hx509_crl_lifetime.3 create mode 100644 static/freebsd/man3/hx509_crl_sign.3 create mode 100644 static/freebsd/man3/hx509_crypto.3 create mode 100644 static/freebsd/man3/hx509_env.3 create mode 100644 static/freebsd/man3/hx509_env_add.3 create mode 100644 static/freebsd/man3/hx509_env_add_binding.3 create mode 100644 static/freebsd/man3/hx509_env_find.3 create mode 100644 static/freebsd/man3/hx509_env_find_binding.3 create mode 100644 static/freebsd/man3/hx509_env_free.3 create mode 100644 static/freebsd/man3/hx509_env_lfind.3 create mode 100644 static/freebsd/man3/hx509_err.3 create mode 100644 static/freebsd/man3/hx509_error.3 create mode 100644 static/freebsd/man3/hx509_free_error_string.3 create mode 100644 static/freebsd/man3/hx509_free_octet_string_list.3 create mode 100644 static/freebsd/man3/hx509_general_name_unparse.3 create mode 100644 static/freebsd/man3/hx509_get_error_string.3 create mode 100644 static/freebsd/man3/hx509_get_one_cert.3 create mode 100644 static/freebsd/man3/hx509_keyset.3 create mode 100644 static/freebsd/man3/hx509_lock.3 create mode 100644 static/freebsd/man3/hx509_misc.3 create mode 100644 static/freebsd/man3/hx509_name.3 create mode 100644 static/freebsd/man3/hx509_name_binary.3 create mode 100644 static/freebsd/man3/hx509_name_cmp.3 create mode 100644 static/freebsd/man3/hx509_name_copy.3 create mode 100644 static/freebsd/man3/hx509_name_expand.3 create mode 100644 static/freebsd/man3/hx509_name_free.3 create mode 100644 static/freebsd/man3/hx509_name_is_null_p.3 create mode 100644 static/freebsd/man3/hx509_name_to_Name.3 create mode 100644 static/freebsd/man3/hx509_name_to_string.3 create mode 100644 static/freebsd/man3/hx509_ocsp_request.3 create mode 100644 static/freebsd/man3/hx509_ocsp_verify.3 create mode 100644 static/freebsd/man3/hx509_oid_print.3 create mode 100644 static/freebsd/man3/hx509_oid_sprint.3 create mode 100644 static/freebsd/man3/hx509_parse_name.3 create mode 100644 static/freebsd/man3/hx509_peer.3 create mode 100644 static/freebsd/man3/hx509_peer_info_add_cms_alg.3 create mode 100644 static/freebsd/man3/hx509_peer_info_alloc.3 create mode 100644 static/freebsd/man3/hx509_peer_info_free.3 create mode 100644 static/freebsd/man3/hx509_peer_info_set_cert.3 create mode 100644 static/freebsd/man3/hx509_peer_info_set_cms_algs.3 create mode 100644 static/freebsd/man3/hx509_print.3 create mode 100644 static/freebsd/man3/hx509_print_cert.3 create mode 100644 static/freebsd/man3/hx509_print_stdout.3 create mode 100644 static/freebsd/man3/hx509_query.3 create mode 100644 static/freebsd/man3/hx509_query_alloc.3 create mode 100644 static/freebsd/man3/hx509_query_free.3 create mode 100644 static/freebsd/man3/hx509_query_match_cmp_func.3 create mode 100644 static/freebsd/man3/hx509_query_match_eku.3 create mode 100644 static/freebsd/man3/hx509_query_match_friendly_name.3 create mode 100644 static/freebsd/man3/hx509_query_match_issuer_serial.3 create mode 100644 static/freebsd/man3/hx509_query_match_option.3 create mode 100644 static/freebsd/man3/hx509_query_statistic_file.3 create mode 100644 static/freebsd/man3/hx509_query_unparse_stats.3 create mode 100644 static/freebsd/man3/hx509_revoke.3 create mode 100644 static/freebsd/man3/hx509_revoke_add_crl.3 create mode 100644 static/freebsd/man3/hx509_revoke_add_ocsp.3 create mode 100644 static/freebsd/man3/hx509_revoke_free.3 create mode 100644 static/freebsd/man3/hx509_revoke_init.3 create mode 100644 static/freebsd/man3/hx509_revoke_ocsp_print.3 create mode 100644 static/freebsd/man3/hx509_revoke_verify.3 create mode 100644 static/freebsd/man3/hx509_set_error_string.3 create mode 100644 static/freebsd/man3/hx509_set_error_stringv.3 create mode 100644 static/freebsd/man3/hx509_unparse_der_name.3 create mode 100644 static/freebsd/man3/hx509_validate_cert.3 create mode 100644 static/freebsd/man3/hx509_validate_ctx_add_flags.3 create mode 100644 static/freebsd/man3/hx509_validate_ctx_free.3 create mode 100644 static/freebsd/man3/hx509_validate_ctx_init.3 create mode 100644 static/freebsd/man3/hx509_validate_ctx_set_print.3 create mode 100644 static/freebsd/man3/hx509_verify.3 create mode 100644 static/freebsd/man3/hx509_verify_attach_anchors.3 create mode 100644 static/freebsd/man3/hx509_verify_attach_revoke.3 create mode 100644 static/freebsd/man3/hx509_verify_ctx_f_allow_default_trustanchors.3 create mode 100644 static/freebsd/man3/hx509_verify_destroy_ctx.3 create mode 100644 static/freebsd/man3/hx509_verify_hostname.3 create mode 100644 static/freebsd/man3/hx509_verify_init_ctx.3 create mode 100644 static/freebsd/man3/hx509_verify_path.3 create mode 100644 static/freebsd/man3/hx509_verify_set_max_depth.3 create mode 100644 static/freebsd/man3/hx509_verify_set_proxy_certificate.3 create mode 100644 static/freebsd/man3/hx509_verify_set_strict_rfc3280_verification.3 create mode 100644 static/freebsd/man3/hx509_verify_set_time.3 create mode 100644 static/freebsd/man3/hx509_verify_signature.3 create mode 100644 static/freebsd/man3/hx509_xfree.3 create mode 100644 static/freebsd/man3/hypot.3 create mode 100644 static/freebsd/man3/i2d_CMS_bio_stream.3 create mode 100644 static/freebsd/man3/i2d_PKCS7_bio_stream.3 create mode 100644 static/freebsd/man3/i2d_re_X509_tbs.3 create mode 100644 static/freebsd/man3/i386_set_watch.3 create mode 100644 static/freebsd/man3/ibnd_debug.3 create mode 100644 static/freebsd/man3/ibnd_destroy_fabric.3 create mode 100644 static/freebsd/man3/ibnd_discover_fabric.3 create mode 100644 static/freebsd/man3/ibnd_find_node_dr.3 create mode 100644 static/freebsd/man3/ibnd_find_node_guid.3 create mode 100644 static/freebsd/man3/ibnd_iter_nodes.3 create mode 100644 static/freebsd/man3/ibnd_iter_nodes_type.3 create mode 100644 static/freebsd/man3/ibnd_show_progress.3 create mode 100644 static/freebsd/man3/ibv_alloc_mw.3 create mode 100644 static/freebsd/man3/ibv_alloc_pd.3 create mode 100644 static/freebsd/man3/ibv_attach_mcast.3 create mode 100644 static/freebsd/man3/ibv_bind_mw.3 create mode 100644 static/freebsd/man3/ibv_create_ah.3 create mode 100644 static/freebsd/man3/ibv_create_ah_from_wc.3 create mode 100644 static/freebsd/man3/ibv_create_comp_channel.3 create mode 100644 static/freebsd/man3/ibv_create_cq.3 create mode 100644 static/freebsd/man3/ibv_create_cq_ex.3 create mode 100644 static/freebsd/man3/ibv_create_flow.3 create mode 100644 static/freebsd/man3/ibv_create_qp.3 create mode 100644 static/freebsd/man3/ibv_create_qp_ex.3 create mode 100644 static/freebsd/man3/ibv_create_rwq_ind_table.3 create mode 100644 static/freebsd/man3/ibv_create_srq.3 create mode 100644 static/freebsd/man3/ibv_create_srq_ex.3 create mode 100644 static/freebsd/man3/ibv_create_wq.3 create mode 100644 static/freebsd/man3/ibv_event_type_str.3 create mode 100644 static/freebsd/man3/ibv_fork_init.3 create mode 100644 static/freebsd/man3/ibv_get_async_event.3 create mode 100644 static/freebsd/man3/ibv_get_cq_event.3 create mode 100644 static/freebsd/man3/ibv_get_device_guid.3 create mode 100644 static/freebsd/man3/ibv_get_device_list.3 create mode 100644 static/freebsd/man3/ibv_get_device_name.3 create mode 100644 static/freebsd/man3/ibv_get_srq_num.3 create mode 100644 static/freebsd/man3/ibv_inc_rkey.3 create mode 100644 static/freebsd/man3/ibv_modify_qp.3 create mode 100644 static/freebsd/man3/ibv_modify_srq.3 create mode 100644 static/freebsd/man3/ibv_modify_wq.3 create mode 100644 static/freebsd/man3/ibv_open_device.3 create mode 100644 static/freebsd/man3/ibv_open_qp.3 create mode 100644 static/freebsd/man3/ibv_open_xrcd.3 create mode 100644 static/freebsd/man3/ibv_poll_cq.3 create mode 100644 static/freebsd/man3/ibv_post_recv.3 create mode 100644 static/freebsd/man3/ibv_post_send.3 create mode 100644 static/freebsd/man3/ibv_post_srq_recv.3 create mode 100644 static/freebsd/man3/ibv_query_device.3 create mode 100644 static/freebsd/man3/ibv_query_device_ex.3 create mode 100644 static/freebsd/man3/ibv_query_gid.3 create mode 100644 static/freebsd/man3/ibv_query_pkey.3 create mode 100644 static/freebsd/man3/ibv_query_port.3 create mode 100644 static/freebsd/man3/ibv_query_qp.3 create mode 100644 static/freebsd/man3/ibv_query_rt_values_ex.3 create mode 100644 static/freebsd/man3/ibv_query_srq.3 create mode 100644 static/freebsd/man3/ibv_rate_to_mbps.3 create mode 100644 static/freebsd/man3/ibv_rate_to_mult.3 create mode 100644 static/freebsd/man3/ibv_reg_mr.3 create mode 100644 static/freebsd/man3/ibv_req_notify_cq.3 create mode 100644 static/freebsd/man3/ibv_rereg_mr.3 create mode 100644 static/freebsd/man3/ibv_resize_cq.3 create mode 100644 static/freebsd/man3/iconv.3 create mode 100644 static/freebsd/man3/iconv_canonicalize.3 create mode 100644 static/freebsd/man3/iconvctl.3 create mode 100644 static/freebsd/man3/iconvlist.3 create mode 100644 static/freebsd/man3/ieee.3 create mode 100644 static/freebsd/man3/ieee_test.3 create mode 100644 static/freebsd/man3/if_indextoname.3 create mode 100644 static/freebsd/man3/ilogb.3 create mode 100644 static/freebsd/man3/imsg_init.3 create mode 100644 static/freebsd/man3/index.3 create mode 100644 static/freebsd/man3/inet.3 create mode 100644 static/freebsd/man3/inet6_opt_init.3 create mode 100644 static/freebsd/man3/inet6_option_space.3 create mode 100644 static/freebsd/man3/inet6_rth_space.3 create mode 100644 static/freebsd/man3/inet6_rthdr_space.3 create mode 100644 static/freebsd/man3/inet_net.3 create mode 100644 static/freebsd/man3/initgroups.3 create mode 100644 static/freebsd/man3/insque.3 create mode 100644 static/freebsd/man3/internalvsmechname.3 create mode 100644 static/freebsd/man3/intro.3 3.html create mode 100644 static/freebsd/man3/ipsec_set_policy.3 create mode 100644 static/freebsd/man3/ipsec_strerror.3 create mode 100644 static/freebsd/man3/ipv6.3 create mode 100644 static/freebsd/man3/isalnum.3 create mode 100644 static/freebsd/man3/isalpha.3 create mode 100644 static/freebsd/man3/isascii.3 create mode 100644 static/freebsd/man3/isblank.3 create mode 100644 static/freebsd/man3/iscntrl.3 create mode 100644 static/freebsd/man3/isdigit.3 create mode 100644 static/freebsd/man3/isgraph.3 create mode 100644 static/freebsd/man3/isgreater.3 create mode 100644 static/freebsd/man3/isideogram.3 create mode 100644 static/freebsd/man3/islower.3 create mode 100644 static/freebsd/man3/isphonogram.3 create mode 100644 static/freebsd/man3/isprint.3 create mode 100644 static/freebsd/man3/ispunct.3 create mode 100644 static/freebsd/man3/isrune.3 create mode 100644 static/freebsd/man3/isspace.3 create mode 100644 static/freebsd/man3/isspecial.3 create mode 100644 static/freebsd/man3/isupper.3 create mode 100644 static/freebsd/man3/iswalnum.3 create mode 100644 static/freebsd/man3/iswalnum_l.3 create mode 100644 static/freebsd/man3/isxdigit.3 create mode 100644 static/freebsd/man3/j0.3 create mode 100644 static/freebsd/man3/jail.3 create mode 100644 static/freebsd/man3/jemalloc.3 create mode 100644 static/freebsd/man3/kadm5_pwcheck.3 create mode 100644 static/freebsd/man3/kafs.3 create mode 100644 static/freebsd/man3/kiconv.3 create mode 100644 static/freebsd/man3/kinfo_getallproc.3 create mode 100644 static/freebsd/man3/kinfo_getfile.3 create mode 100644 static/freebsd/man3/kinfo_getproc.3 create mode 100644 static/freebsd/man3/kinfo_getvmmap.3 create mode 100644 static/freebsd/man3/kinfo_getvmobject.3 create mode 100644 static/freebsd/man3/kld.3 create mode 100644 static/freebsd/man3/krb5.3 create mode 100644 static/freebsd/man3/krb524_convert_creds_kdc.3 create mode 100644 static/freebsd/man3/krb524_convert_creds_kdc_ccache.3 create mode 100644 static/freebsd/man3/krb5_425_conv_principal.3 create mode 100644 static/freebsd/man3/krb5_acc_ops.3 create mode 100644 static/freebsd/man3/krb5_acl_match_file.3 create mode 100644 static/freebsd/man3/krb5_acl_match_string.3 create mode 100644 static/freebsd/man3/krb5_add_et_list.3 create mode 100644 static/freebsd/man3/krb5_add_extra_addresses.3 create mode 100644 static/freebsd/man3/krb5_add_ignore_addresses.3 create mode 100644 static/freebsd/man3/krb5_addr2sockaddr.3 create mode 100644 static/freebsd/man3/krb5_address.3 create mode 100644 static/freebsd/man3/krb5_address_compare.3 create mode 100644 static/freebsd/man3/krb5_address_order.3 create mode 100644 static/freebsd/man3/krb5_address_prefixlen_boundary.3 create mode 100644 static/freebsd/man3/krb5_address_search.3 create mode 100644 static/freebsd/man3/krb5_allow_weak_crypto.3 create mode 100644 static/freebsd/man3/krb5_aname_to_localname.3 create mode 100644 static/freebsd/man3/krb5_anyaddr.3 create mode 100644 static/freebsd/man3/krb5_appdefault.3 create mode 100644 static/freebsd/man3/krb5_append_addresses.3 create mode 100644 static/freebsd/man3/krb5_auth.3 create mode 100644 static/freebsd/man3/krb5_auth_context.3 create mode 100644 static/freebsd/man3/krb5_auth_getremoteseqnumber.3 create mode 100644 static/freebsd/man3/krb5_build_principal.3 create mode 100644 static/freebsd/man3/krb5_c_enctype_compare.3 create mode 100644 static/freebsd/man3/krb5_c_make_checksum.3 create mode 100644 static/freebsd/man3/krb5_cc_cache_end_seq_get.3 create mode 100644 static/freebsd/man3/krb5_cc_cache_get_first.3 create mode 100644 static/freebsd/man3/krb5_cc_cache_match.3 create mode 100644 static/freebsd/man3/krb5_cc_cache_next.3 create mode 100644 static/freebsd/man3/krb5_cc_clear_mcred.3 create mode 100644 static/freebsd/man3/krb5_cc_close.3 create mode 100644 static/freebsd/man3/krb5_cc_copy_cache.3 create mode 100644 static/freebsd/man3/krb5_cc_copy_creds.3 create mode 100644 static/freebsd/man3/krb5_cc_copy_match_f.3 create mode 100644 static/freebsd/man3/krb5_cc_default.3 create mode 100644 static/freebsd/man3/krb5_cc_default_name.3 create mode 100644 static/freebsd/man3/krb5_cc_destroy.3 create mode 100644 static/freebsd/man3/krb5_cc_end_seq_get.3 create mode 100644 static/freebsd/man3/krb5_cc_gen_new.3 create mode 100644 static/freebsd/man3/krb5_cc_get_config.3 create mode 100644 static/freebsd/man3/krb5_cc_get_flags.3 create mode 100644 static/freebsd/man3/krb5_cc_get_friendly_name.3 create mode 100644 static/freebsd/man3/krb5_cc_get_full_name.3 create mode 100644 static/freebsd/man3/krb5_cc_get_kdc_offset.3 create mode 100644 static/freebsd/man3/krb5_cc_get_lifetime.3 create mode 100644 static/freebsd/man3/krb5_cc_get_name.3 create mode 100644 static/freebsd/man3/krb5_cc_get_ops.3 create mode 100644 static/freebsd/man3/krb5_cc_get_prefix_ops.3 create mode 100644 static/freebsd/man3/krb5_cc_get_principal.3 create mode 100644 static/freebsd/man3/krb5_cc_get_type.3 create mode 100644 static/freebsd/man3/krb5_cc_get_version.3 create mode 100644 static/freebsd/man3/krb5_cc_initialize.3 create mode 100644 static/freebsd/man3/krb5_cc_last_change_time.3 create mode 100644 static/freebsd/man3/krb5_cc_move.3 create mode 100644 static/freebsd/man3/krb5_cc_new_unique.3 create mode 100644 static/freebsd/man3/krb5_cc_next_cred.3 create mode 100644 static/freebsd/man3/krb5_cc_register.3 create mode 100644 static/freebsd/man3/krb5_cc_remove_cred.3 create mode 100644 static/freebsd/man3/krb5_cc_resolve.3 create mode 100644 static/freebsd/man3/krb5_cc_retrieve_cred.3 create mode 100644 static/freebsd/man3/krb5_cc_set_config.3 create mode 100644 static/freebsd/man3/krb5_cc_set_default_name.3 create mode 100644 static/freebsd/man3/krb5_cc_set_flags.3 create mode 100644 static/freebsd/man3/krb5_cc_set_friendly_name.3 create mode 100644 static/freebsd/man3/krb5_cc_set_kdc_offset.3 create mode 100644 static/freebsd/man3/krb5_cc_start_seq_get.3 create mode 100644 static/freebsd/man3/krb5_cc_store_cred.3 create mode 100644 static/freebsd/man3/krb5_cc_support_switch.3 create mode 100644 static/freebsd/man3/krb5_cc_switch.3 create mode 100644 static/freebsd/man3/krb5_ccache.3 create mode 100644 static/freebsd/man3/krb5_ccache_intro.3 create mode 100644 static/freebsd/man3/krb5_cccol_cursor_free.3 create mode 100644 static/freebsd/man3/krb5_cccol_cursor_new.3 create mode 100644 static/freebsd/man3/krb5_cccol_cursor_next.3 create mode 100644 static/freebsd/man3/krb5_cccol_last_change_time.3 create mode 100644 static/freebsd/man3/krb5_change_password.3 create mode 100644 static/freebsd/man3/krb5_check_transited.3 create mode 100644 static/freebsd/man3/krb5_cksumtype_to_enctype.3 create mode 100644 static/freebsd/man3/krb5_clear_error_message.3 create mode 100644 static/freebsd/man3/krb5_clear_error_string.3 create mode 100644 static/freebsd/man3/krb5_compare_creds.3 create mode 100644 static/freebsd/man3/krb5_config_file_free.3 create mode 100644 static/freebsd/man3/krb5_config_free_strings.3 create mode 100644 static/freebsd/man3/krb5_config_get_bool.3 create mode 100644 static/freebsd/man3/krb5_config_get_bool_default.3 create mode 100644 static/freebsd/man3/krb5_config_get_list.3 create mode 100644 static/freebsd/man3/krb5_config_get_string.3 create mode 100644 static/freebsd/man3/krb5_config_get_string_default.3 create mode 100644 static/freebsd/man3/krb5_config_get_strings.3 create mode 100644 static/freebsd/man3/krb5_config_get_time.3 create mode 100644 static/freebsd/man3/krb5_config_get_time_default.3 create mode 100644 static/freebsd/man3/krb5_config_parse_file_multi.3 create mode 100644 static/freebsd/man3/krb5_config_parse_string_multi.3 create mode 100644 static/freebsd/man3/krb5_config_vget_bool.3 create mode 100644 static/freebsd/man3/krb5_config_vget_bool_default.3 create mode 100644 static/freebsd/man3/krb5_config_vget_list.3 create mode 100644 static/freebsd/man3/krb5_config_vget_string.3 create mode 100644 static/freebsd/man3/krb5_config_vget_string_default.3 create mode 100644 static/freebsd/man3/krb5_config_vget_strings.3 create mode 100644 static/freebsd/man3/krb5_config_vget_time.3 create mode 100644 static/freebsd/man3/krb5_config_vget_time_default.3 create mode 100644 static/freebsd/man3/krb5_copy_address.3 create mode 100644 static/freebsd/man3/krb5_copy_addresses.3 create mode 100644 static/freebsd/man3/krb5_copy_context.3 create mode 100644 static/freebsd/man3/krb5_copy_creds.3 create mode 100644 static/freebsd/man3/krb5_copy_creds_contents.3 create mode 100644 static/freebsd/man3/krb5_copy_data.3 create mode 100644 static/freebsd/man3/krb5_copy_host_realm.3 create mode 100644 static/freebsd/man3/krb5_copy_keyblock.3 create mode 100644 static/freebsd/man3/krb5_copy_keyblock_contents.3 create mode 100644 static/freebsd/man3/krb5_copy_principal.3 create mode 100644 static/freebsd/man3/krb5_copy_ticket.3 create mode 100644 static/freebsd/man3/krb5_create_checksum.3 create mode 100644 static/freebsd/man3/krb5_create_checksum_iov.3 create mode 100644 static/freebsd/man3/krb5_credential.3 create mode 100644 static/freebsd/man3/krb5_creds.3 create mode 100644 static/freebsd/man3/krb5_creds_get_ticket_flags.3 create mode 100644 static/freebsd/man3/krb5_crypto.3 create mode 100644 static/freebsd/man3/krb5_crypto_destroy.3 create mode 100644 static/freebsd/man3/krb5_crypto_fx_cf2.3 create mode 100644 static/freebsd/man3/krb5_crypto_getblocksize.3 create mode 100644 static/freebsd/man3/krb5_crypto_getconfoundersize.3 create mode 100644 static/freebsd/man3/krb5_crypto_getenctype.3 create mode 100644 static/freebsd/man3/krb5_crypto_getpadsize.3 create mode 100644 static/freebsd/man3/krb5_crypto_init.3 create mode 100644 static/freebsd/man3/krb5_crypto_iov.3 create mode 100644 static/freebsd/man3/krb5_data_alloc.3 create mode 100644 static/freebsd/man3/krb5_data_cmp.3 create mode 100644 static/freebsd/man3/krb5_data_copy.3 create mode 100644 static/freebsd/man3/krb5_data_ct_cmp.3 create mode 100644 static/freebsd/man3/krb5_data_free.3 create mode 100644 static/freebsd/man3/krb5_data_realloc.3 create mode 100644 static/freebsd/man3/krb5_data_zero.3 create mode 100644 static/freebsd/man3/krb5_decrypt_iov_ivec.3 create mode 100644 static/freebsd/man3/krb5_deprecated.3 create mode 100644 static/freebsd/man3/krb5_digest.3 create mode 100644 static/freebsd/man3/krb5_digest_probe.3 create mode 100644 static/freebsd/man3/krb5_eai_to_heim_errno.3 create mode 100644 static/freebsd/man3/krb5_encrypt.3 create mode 100644 static/freebsd/man3/krb5_encrypt_iov_ivec.3 create mode 100644 static/freebsd/man3/krb5_enctype_disable.3 create mode 100644 static/freebsd/man3/krb5_enctype_enable.3 create mode 100644 static/freebsd/man3/krb5_enctype_valid.3 create mode 100644 static/freebsd/man3/krb5_enctypes_compatible_keys.3 create mode 100644 static/freebsd/man3/krb5_error.3 create mode 100644 static/freebsd/man3/krb5_expand_hostname.3 create mode 100644 static/freebsd/man3/krb5_expand_hostname_realms.3 create mode 100644 static/freebsd/man3/krb5_fcc_ops.3 create mode 100644 static/freebsd/man3/krb5_fileformats.3 create mode 100644 static/freebsd/man3/krb5_find_padata.3 create mode 100644 static/freebsd/man3/krb5_free_address.3 create mode 100644 static/freebsd/man3/krb5_free_addresses.3 create mode 100644 static/freebsd/man3/krb5_free_config_files.3 create mode 100644 static/freebsd/man3/krb5_free_context.3 create mode 100644 static/freebsd/man3/krb5_free_cred_contents.3 create mode 100644 static/freebsd/man3/krb5_free_creds.3 create mode 100644 static/freebsd/man3/krb5_free_creds_contents.3 create mode 100644 static/freebsd/man3/krb5_free_data.3 create mode 100644 static/freebsd/man3/krb5_free_data_contents.3 create mode 100644 static/freebsd/man3/krb5_free_error_string.3 create mode 100644 static/freebsd/man3/krb5_free_host_realm.3 create mode 100644 static/freebsd/man3/krb5_free_keyblock.3 create mode 100644 static/freebsd/man3/krb5_free_keyblock_contents.3 create mode 100644 static/freebsd/man3/krb5_free_principal.3 create mode 100644 static/freebsd/man3/krb5_free_ticket.3 create mode 100644 static/freebsd/man3/krb5_free_unparsed_name.3 create mode 100644 static/freebsd/man3/krb5_fwd_tgt_creds.3 create mode 100644 static/freebsd/man3/krb5_generate_random_block.3 create mode 100644 static/freebsd/man3/krb5_generate_subkey.3 create mode 100644 static/freebsd/man3/krb5_generate_subkey_extended.3 create mode 100644 static/freebsd/man3/krb5_get_all_client_addrs.3 create mode 100644 static/freebsd/man3/krb5_get_cred_from_kdc.3 create mode 100644 static/freebsd/man3/krb5_get_cred_from_kdc_opt.3 create mode 100644 static/freebsd/man3/krb5_get_credentials.3 create mode 100644 static/freebsd/man3/krb5_get_creds.3 create mode 100644 static/freebsd/man3/krb5_get_default_config_files.3 create mode 100644 static/freebsd/man3/krb5_get_default_in_tkt_etypes.3 create mode 100644 static/freebsd/man3/krb5_get_dns_canonicalize_hostname.3 create mode 100644 static/freebsd/man3/krb5_get_extra_addresses.3 create mode 100644 static/freebsd/man3/krb5_get_fcache_version.3 create mode 100644 static/freebsd/man3/krb5_get_forwarded_creds.3 create mode 100644 static/freebsd/man3/krb5_get_ignore_addresses.3 create mode 100644 static/freebsd/man3/krb5_get_in_cred.3 create mode 100644 static/freebsd/man3/krb5_get_in_tkt_with_keytab.3 create mode 100644 static/freebsd/man3/krb5_get_in_tkt_with_password.3 create mode 100644 static/freebsd/man3/krb5_get_in_tkt_with_skey.3 create mode 100644 static/freebsd/man3/krb5_get_init_creds.3 create mode 100644 static/freebsd/man3/krb5_get_init_creds_keyblock.3 create mode 100644 static/freebsd/man3/krb5_get_init_creds_keytab.3 create mode 100644 static/freebsd/man3/krb5_get_init_creds_opt_alloc.3 create mode 100644 static/freebsd/man3/krb5_get_init_creds_opt_free.3 create mode 100644 static/freebsd/man3/krb5_get_init_creds_opt_get_error.3 create mode 100644 static/freebsd/man3/krb5_get_init_creds_opt_init.3 create mode 100644 static/freebsd/man3/krb5_get_init_creds_password.3 create mode 100644 static/freebsd/man3/krb5_get_kdc_sec_offset.3 create mode 100644 static/freebsd/man3/krb5_get_krbhst.3 create mode 100644 static/freebsd/man3/krb5_get_max_time_skew.3 create mode 100644 static/freebsd/man3/krb5_get_use_admin_kdc.3 create mode 100644 static/freebsd/man3/krb5_get_validated_creds.3 create mode 100644 static/freebsd/man3/krb5_getportbyname.3 create mode 100644 static/freebsd/man3/krb5_h_addr2addr.3 create mode 100644 static/freebsd/man3/krb5_h_addr2sockaddr.3 create mode 100644 static/freebsd/man3/krb5_h_errno_to_heim_errno.3 create mode 100644 static/freebsd/man3/krb5_init_context.3 create mode 100644 static/freebsd/man3/krb5_init_creds_free.3 create mode 100644 static/freebsd/man3/krb5_init_creds_get.3 create mode 100644 static/freebsd/man3/krb5_init_creds_get_error.3 create mode 100644 static/freebsd/man3/krb5_init_creds_init.3 create mode 100644 static/freebsd/man3/krb5_init_creds_intro.3 create mode 100644 static/freebsd/man3/krb5_init_creds_set_keytab.3 create mode 100644 static/freebsd/man3/krb5_init_creds_set_password.3 create mode 100644 static/freebsd/man3/krb5_init_creds_set_service.3 create mode 100644 static/freebsd/man3/krb5_init_creds_step.3 create mode 100644 static/freebsd/man3/krb5_init_ets.3 create mode 100644 static/freebsd/man3/krb5_introduction.3 create mode 100644 static/freebsd/man3/krb5_is_config_principal.3 create mode 100644 static/freebsd/man3/krb5_is_thread_safe.3 create mode 100644 static/freebsd/man3/krb5_kerberos_enctypes.3 create mode 100644 static/freebsd/man3/krb5_keyblock_get_enctype.3 create mode 100644 static/freebsd/man3/krb5_keyblock_init.3 create mode 100644 static/freebsd/man3/krb5_keyblock_zero.3 create mode 100644 static/freebsd/man3/krb5_keytab.3 create mode 100644 static/freebsd/man3/krb5_keytab_intro.3 create mode 100644 static/freebsd/man3/krb5_keytab_key_proc.3 create mode 100644 static/freebsd/man3/krb5_keytype_to_enctypes.3 create mode 100644 static/freebsd/man3/krb5_keytype_to_enctypes_default.3 create mode 100644 static/freebsd/man3/krb5_keytype_to_string.3 create mode 100644 static/freebsd/man3/krb5_krbhst_get_addrinfo.3 create mode 100644 static/freebsd/man3/krb5_krbhst_init.3 create mode 100644 static/freebsd/man3/krb5_kt_add_entry.3 create mode 100644 static/freebsd/man3/krb5_kt_close.3 create mode 100644 static/freebsd/man3/krb5_kt_compare.3 create mode 100644 static/freebsd/man3/krb5_kt_copy_entry_contents.3 create mode 100644 static/freebsd/man3/krb5_kt_default.3 create mode 100644 static/freebsd/man3/krb5_kt_default_modify_name.3 create mode 100644 static/freebsd/man3/krb5_kt_default_name.3 create mode 100644 static/freebsd/man3/krb5_kt_destroy.3 create mode 100644 static/freebsd/man3/krb5_kt_end_seq_get.3 create mode 100644 static/freebsd/man3/krb5_kt_free_entry.3 create mode 100644 static/freebsd/man3/krb5_kt_get_entry.3 create mode 100644 static/freebsd/man3/krb5_kt_get_full_name.3 create mode 100644 static/freebsd/man3/krb5_kt_get_name.3 create mode 100644 static/freebsd/man3/krb5_kt_get_type.3 create mode 100644 static/freebsd/man3/krb5_kt_have_content.3 create mode 100644 static/freebsd/man3/krb5_kt_next_entry.3 create mode 100644 static/freebsd/man3/krb5_kt_read_service_key.3 create mode 100644 static/freebsd/man3/krb5_kt_register.3 create mode 100644 static/freebsd/man3/krb5_kt_remove_entry.3 create mode 100644 static/freebsd/man3/krb5_kt_resolve.3 create mode 100644 static/freebsd/man3/krb5_kt_start_seq_get.3 create mode 100644 static/freebsd/man3/krb5_kuserok.3 create mode 100644 static/freebsd/man3/krb5_make_addrport.3 create mode 100644 static/freebsd/man3/krb5_make_principal.3 create mode 100644 static/freebsd/man3/krb5_max_sockaddr_size.3 create mode 100644 static/freebsd/man3/krb5_mcc_ops.3 create mode 100644 static/freebsd/man3/krb5_mk_req.3 create mode 100644 static/freebsd/man3/krb5_mk_safe.3 create mode 100644 static/freebsd/man3/krb5_openlog.3 create mode 100644 static/freebsd/man3/krb5_pac.3 create mode 100644 static/freebsd/man3/krb5_pac_get_buffer.3 create mode 100644 static/freebsd/man3/krb5_pac_verify.3 create mode 100644 static/freebsd/man3/krb5_parse_address.3 create mode 100644 static/freebsd/man3/krb5_parse_name.3 create mode 100644 static/freebsd/man3/krb5_parse_name_flags.3 create mode 100644 static/freebsd/man3/krb5_parse_nametype.3 create mode 100644 static/freebsd/man3/krb5_password_key_proc.3 create mode 100644 static/freebsd/man3/krb5_plugin_register.3 create mode 100644 static/freebsd/man3/krb5_prepend_config_files_default.3 create mode 100644 static/freebsd/man3/krb5_princ_realm.3 create mode 100644 static/freebsd/man3/krb5_princ_set_realm.3 create mode 100644 static/freebsd/man3/krb5_principal.3 create mode 100644 static/freebsd/man3/krb5_principal_compare.3 create mode 100644 static/freebsd/man3/krb5_principal_compare_any_realm.3 create mode 100644 static/freebsd/man3/krb5_principal_get_num_comp.3 create mode 100644 static/freebsd/man3/krb5_principal_get_realm.3 create mode 100644 static/freebsd/man3/krb5_principal_get_type.3 create mode 100644 static/freebsd/man3/krb5_principal_intro.3 create mode 100644 static/freebsd/man3/krb5_principal_is_krbtgt.3 create mode 100644 static/freebsd/man3/krb5_principal_match.3 create mode 100644 static/freebsd/man3/krb5_principal_set_realm.3 create mode 100644 static/freebsd/man3/krb5_principal_set_type.3 create mode 100644 static/freebsd/man3/krb5_print_address.3 create mode 100644 static/freebsd/man3/krb5_random_to_key.3 create mode 100644 static/freebsd/man3/krb5_rcache.3 create mode 100644 static/freebsd/man3/krb5_rd_error.3 create mode 100644 static/freebsd/man3/krb5_rd_req_ctx.3 create mode 100644 static/freebsd/man3/krb5_rd_req_in_ctx_alloc.3 create mode 100644 static/freebsd/man3/krb5_rd_req_in_set_keytab.3 create mode 100644 static/freebsd/man3/krb5_rd_req_in_set_pac_check.3 create mode 100644 static/freebsd/man3/krb5_rd_req_out_ctx_free.3 create mode 100644 static/freebsd/man3/krb5_rd_req_out_get_server.3 create mode 100644 static/freebsd/man3/krb5_rd_safe.3 create mode 100644 static/freebsd/man3/krb5_realm_compare.3 create mode 100644 static/freebsd/man3/krb5_ret_address.3 create mode 100644 static/freebsd/man3/krb5_ret_addrs.3 create mode 100644 static/freebsd/man3/krb5_ret_authdata.3 create mode 100644 static/freebsd/man3/krb5_ret_creds.3 create mode 100644 static/freebsd/man3/krb5_ret_creds_tag.3 create mode 100644 static/freebsd/man3/krb5_ret_data.3 create mode 100644 static/freebsd/man3/krb5_ret_int16.3 create mode 100644 static/freebsd/man3/krb5_ret_int32.3 create mode 100644 static/freebsd/man3/krb5_ret_int8.3 create mode 100644 static/freebsd/man3/krb5_ret_keyblock.3 create mode 100644 static/freebsd/man3/krb5_ret_principal.3 create mode 100644 static/freebsd/man3/krb5_ret_string.3 create mode 100644 static/freebsd/man3/krb5_ret_stringz.3 create mode 100644 static/freebsd/man3/krb5_ret_times.3 create mode 100644 static/freebsd/man3/krb5_ret_uint16.3 create mode 100644 static/freebsd/man3/krb5_ret_uint32.3 create mode 100644 static/freebsd/man3/krb5_ret_uint8.3 create mode 100644 static/freebsd/man3/krb5_set_config_files.3 create mode 100644 static/freebsd/man3/krb5_set_default_in_tkt_etypes.3 create mode 100644 static/freebsd/man3/krb5_set_default_realm.3 create mode 100644 static/freebsd/man3/krb5_set_dns_canonicalize_hostname.3 create mode 100644 static/freebsd/man3/krb5_set_error_message.3 create mode 100644 static/freebsd/man3/krb5_set_error_string.3 create mode 100644 static/freebsd/man3/krb5_set_extra_addresses.3 create mode 100644 static/freebsd/man3/krb5_set_fcache_version.3 create mode 100644 static/freebsd/man3/krb5_set_home_dir_access.3 create mode 100644 static/freebsd/man3/krb5_set_ignore_addresses.3 create mode 100644 static/freebsd/man3/krb5_set_kdc_sec_offset.3 create mode 100644 static/freebsd/man3/krb5_set_max_time_skew.3 create mode 100644 static/freebsd/man3/krb5_set_password.3 create mode 100644 static/freebsd/man3/krb5_set_real_time.3 create mode 100644 static/freebsd/man3/krb5_set_use_admin_kdc.3 create mode 100644 static/freebsd/man3/krb5_sname_to_principal.3 create mode 100644 static/freebsd/man3/krb5_sockaddr2address.3 create mode 100644 static/freebsd/man3/krb5_sockaddr2port.3 create mode 100644 static/freebsd/man3/krb5_sockaddr_uninteresting.3 create mode 100644 static/freebsd/man3/krb5_storage.3 create mode 100644 static/freebsd/man3/krb5_storage_clear_flags.3 create mode 100644 static/freebsd/man3/krb5_storage_emem.3 create mode 100644 static/freebsd/man3/krb5_storage_free.3 create mode 100644 static/freebsd/man3/krb5_storage_from_data.3 create mode 100644 static/freebsd/man3/krb5_storage_from_fd.3 create mode 100644 static/freebsd/man3/krb5_storage_from_mem.3 create mode 100644 static/freebsd/man3/krb5_storage_from_readonly_mem.3 create mode 100644 static/freebsd/man3/krb5_storage_get_byteorder.3 create mode 100644 static/freebsd/man3/krb5_storage_get_eof_code.3 create mode 100644 static/freebsd/man3/krb5_storage_is_flags.3 create mode 100644 static/freebsd/man3/krb5_storage_read.3 create mode 100644 static/freebsd/man3/krb5_storage_seek.3 create mode 100644 static/freebsd/man3/krb5_storage_set_byteorder.3 create mode 100644 static/freebsd/man3/krb5_storage_set_eof_code.3 create mode 100644 static/freebsd/man3/krb5_storage_set_flags.3 create mode 100644 static/freebsd/man3/krb5_storage_set_max_alloc.3 create mode 100644 static/freebsd/man3/krb5_storage_to_data.3 create mode 100644 static/freebsd/man3/krb5_storage_truncate.3 create mode 100644 static/freebsd/man3/krb5_storage_write.3 create mode 100644 static/freebsd/man3/krb5_store_address.3 create mode 100644 static/freebsd/man3/krb5_store_addrs.3 create mode 100644 static/freebsd/man3/krb5_store_authdata.3 create mode 100644 static/freebsd/man3/krb5_store_creds.3 create mode 100644 static/freebsd/man3/krb5_store_creds_tag.3 create mode 100644 static/freebsd/man3/krb5_store_data.3 create mode 100644 static/freebsd/man3/krb5_store_int16.3 create mode 100644 static/freebsd/man3/krb5_store_int32.3 create mode 100644 static/freebsd/man3/krb5_store_int8.3 create mode 100644 static/freebsd/man3/krb5_store_keyblock.3 create mode 100644 static/freebsd/man3/krb5_store_principal.3 create mode 100644 static/freebsd/man3/krb5_store_string.3 create mode 100644 static/freebsd/man3/krb5_store_stringz.3 create mode 100644 static/freebsd/man3/krb5_store_times.3 create mode 100644 static/freebsd/man3/krb5_store_uint16.3 create mode 100644 static/freebsd/man3/krb5_store_uint32.3 create mode 100644 static/freebsd/man3/krb5_store_uint8.3 create mode 100644 static/freebsd/man3/krb5_string_to_key.3 create mode 100644 static/freebsd/man3/krb5_string_to_keytype.3 create mode 100644 static/freebsd/man3/krb5_support.3 create mode 100644 static/freebsd/man3/krb5_ticket.3 create mode 100644 static/freebsd/man3/krb5_ticket_get_authorization_data_type.3 create mode 100644 static/freebsd/man3/krb5_ticket_get_client.3 create mode 100644 static/freebsd/man3/krb5_ticket_get_endtime.3 create mode 100644 static/freebsd/man3/krb5_ticket_get_flags.3 create mode 100644 static/freebsd/man3/krb5_ticket_get_server.3 create mode 100644 static/freebsd/man3/krb5_timeofday.3 create mode 100644 static/freebsd/man3/krb5_unparse_name.3 create mode 100644 static/freebsd/man3/krb5_unparse_name_fixed.3 create mode 100644 static/freebsd/man3/krb5_unparse_name_fixed_flags.3 create mode 100644 static/freebsd/man3/krb5_unparse_name_fixed_short.3 create mode 100644 static/freebsd/man3/krb5_unparse_name_flags.3 create mode 100644 static/freebsd/man3/krb5_unparse_name_short.3 create mode 100644 static/freebsd/man3/krb5_v4compat.3 create mode 100644 static/freebsd/man3/krb5_verify_checksum_iov.3 create mode 100644 static/freebsd/man3/krb5_verify_init_creds.3 create mode 100644 static/freebsd/man3/krb5_verify_user.3 create mode 100644 static/freebsd/man3/krb5_vset_error_string.3 create mode 100644 static/freebsd/man3/krb5_vwarn.3 create mode 100644 static/freebsd/man3/kvm.3 create mode 100644 static/freebsd/man3/kvm_getcptime.3 create mode 100644 static/freebsd/man3/kvm_geterr.3 create mode 100644 static/freebsd/man3/kvm_getloadavg.3 create mode 100644 static/freebsd/man3/kvm_getpcpu.3 create mode 100644 static/freebsd/man3/kvm_getprocs.3 create mode 100644 static/freebsd/man3/kvm_getswapinfo.3 create mode 100644 static/freebsd/man3/kvm_kerndisp.3 create mode 100644 static/freebsd/man3/kvm_native.3 create mode 100644 static/freebsd/man3/kvm_nlist.3 create mode 100644 static/freebsd/man3/kvm_open.3 create mode 100644 static/freebsd/man3/kvm_read.3 create mode 100644 static/freebsd/man3/ldexp.3 create mode 100644 static/freebsd/man3/length.3 create mode 100644 static/freebsd/man3/lgamma.3 create mode 100644 static/freebsd/man3/lib80211.3 create mode 100644 static/freebsd/man3/libalias.3 create mode 100644 static/freebsd/man3/libarchive.3 create mode 100644 static/freebsd/man3/libarchive_changes.3 create mode 100644 static/freebsd/man3/libarchive_internals.3 create mode 100644 static/freebsd/man3/libauditd.3 create mode 100644 static/freebsd/man3/libbe.3 create mode 100644 static/freebsd/man3/libblacklist.3 create mode 100644 static/freebsd/man3/libblocklist.3 create mode 100644 static/freebsd/man3/libbsdxml.3 create mode 100644 static/freebsd/man3/libbsm.3 create mode 100644 static/freebsd/man3/libcasper.3 create mode 100644 static/freebsd/man3/libcasper_service.3 create mode 100644 static/freebsd/man3/libder.3 create mode 100644 static/freebsd/man3/libder_obj.3 create mode 100644 static/freebsd/man3/libder_read.3 create mode 100644 static/freebsd/man3/libder_type.3 create mode 100644 static/freebsd/man3/libder_write.3 create mode 100644 static/freebsd/man3/libgeom.3 create mode 100644 static/freebsd/man3/libmemstat.3 create mode 100644 static/freebsd/man3/libmp.3 create mode 100644 static/freebsd/man3/libprocstat.3 create mode 100644 static/freebsd/man3/libradius.3 create mode 100644 static/freebsd/man3/librss.3 create mode 100644 static/freebsd/man3/librtld_db.3 create mode 100644 static/freebsd/man3/libsa.3 create mode 100644 static/freebsd/man3/libstdbuf.3 create mode 100644 static/freebsd/man3/libtacplus.3 create mode 100644 static/freebsd/man3/libthr.3 create mode 100644 static/freebsd/man3/libucl.3 create mode 100644 static/freebsd/man3/libufs.3 create mode 100644 static/freebsd/man3/libugidfw.3 create mode 100644 static/freebsd/man3/libunbound.3 create mode 100644 static/freebsd/man3/libusb.3 create mode 100644 static/freebsd/man3/libusb20.3 create mode 100644 static/freebsd/man3/libusb20_be_device_foreach.3 create mode 100644 static/freebsd/man3/libusb20_dev_open.3 create mode 100644 static/freebsd/man3/libuvmem.3 create mode 100644 static/freebsd/man3/libxo.3 create mode 100644 static/freebsd/man3/linkaddr.3 create mode 100644 static/freebsd/man3/lm.3 create mode 100644 static/freebsd/man3/localeconv.3 create mode 100644 static/freebsd/man3/lockf.3 create mode 100644 static/freebsd/man3/log.3 create mode 100644 static/freebsd/man3/login_auth.3 create mode 100644 static/freebsd/man3/login_cap.3 create mode 100644 static/freebsd/man3/login_class.3 create mode 100644 static/freebsd/man3/login_ok.3 create mode 100644 static/freebsd/man3/login_times.3 create mode 100644 static/freebsd/man3/login_tty.3 create mode 100644 static/freebsd/man3/lrint.3 create mode 100644 static/freebsd/man3/lround.3 create mode 100644 static/freebsd/man3/lsearch.3 create mode 100644 static/freebsd/man3/mac.3 create mode 100644 static/freebsd/man3/mac_free.3 create mode 100644 static/freebsd/man3/mac_get.3 create mode 100644 static/freebsd/man3/mac_is_present.3 create mode 100644 static/freebsd/man3/mac_prepare.3 create mode 100644 static/freebsd/man3/mac_set.3 create mode 100644 static/freebsd/man3/mac_text.3 create mode 100644 static/freebsd/man3/makecontext.3 create mode 100644 static/freebsd/man3/makedev.3 3.html create mode 100644 static/freebsd/man3/man.cgi.3 create mode 100644 static/freebsd/man3/mandoc.3 create mode 100644 static/freebsd/man3/mandoc_dbg_init.3 create mode 100644 static/freebsd/man3/mandoc_escape.3 create mode 100644 static/freebsd/man3/mandoc_headers.3 create mode 100644 static/freebsd/man3/mandoc_html.3 create mode 100644 static/freebsd/man3/mandoc_malloc.3 create mode 100644 static/freebsd/man3/mansearch.3 create mode 100644 static/freebsd/man3/math.3 create mode 100644 static/freebsd/man3/mblen.3 create mode 100644 static/freebsd/man3/mbrlen.3 create mode 100644 static/freebsd/man3/mbrtowc.3 create mode 100644 static/freebsd/man3/mbsinit.3 create mode 100644 static/freebsd/man3/mbsrtowcs.3 create mode 100644 static/freebsd/man3/mbstowcs.3 create mode 100644 static/freebsd/man3/mbtowc.3 create mode 100644 static/freebsd/man3/mchars_alloc.3 create mode 100644 static/freebsd/man3/mdX.3 create mode 100644 static/freebsd/man3/memalignment.3 create mode 100644 static/freebsd/man3/memccpy.3 create mode 100644 static/freebsd/man3/memchr.3 create mode 100644 static/freebsd/man3/memcmp.3 create mode 100644 static/freebsd/man3/memcpy.3 create mode 100644 static/freebsd/man3/memmem.3 create mode 100644 static/freebsd/man3/memmove.3 create mode 100644 static/freebsd/man3/memory.3 create mode 100644 static/freebsd/man3/memset.3 create mode 100644 static/freebsd/man3/mixer.3 create mode 100644 static/freebsd/man3/mktemp.3 create mode 100644 static/freebsd/man3/mlx5dv_init_obj.3 create mode 100644 static/freebsd/man3/mlx5dv_query_device.3 create mode 100644 static/freebsd/man3/mntopts.3 create mode 100644 static/freebsd/man3/modf.3 create mode 100644 static/freebsd/man3/moncontrol.3 create mode 100644 static/freebsd/man3/mpool.3 create mode 100644 static/freebsd/man3/mq_getfd_np.3 create mode 100644 static/freebsd/man3/mt.3 create mode 100644 static/freebsd/man3/multibyte.3 create mode 100644 static/freebsd/man3/nan.3 create mode 100644 static/freebsd/man3/netgraph.3 create mode 100644 static/freebsd/man3/newctime.3 create mode 100644 static/freebsd/man3/newlocale.3 create mode 100644 static/freebsd/man3/newstrftime.3 create mode 100644 static/freebsd/man3/newtzset.3 create mode 100644 static/freebsd/man3/nextafter.3 create mode 100644 static/freebsd/man3/nextwctype.3 create mode 100644 static/freebsd/man3/nice.3 create mode 100644 static/freebsd/man3/nl_langinfo.3 create mode 100644 static/freebsd/man3/nlist.3 create mode 100644 static/freebsd/man3/nsdispatch.3 create mode 100644 static/freebsd/man3/ntlm.3 create mode 100644 static/freebsd/man3/ntlm_buf.3 create mode 100644 static/freebsd/man3/ntlm_core.3 create mode 100644 static/freebsd/man3/ntlm_type1.3 create mode 100644 static/freebsd/man3/ntlm_type2.3 create mode 100644 static/freebsd/man3/ntlm_type3.3 create mode 100644 static/freebsd/man3/o2i_SCT_LIST.3 create mode 100644 static/freebsd/man3/offsetof.3 4.html create mode 100644 static/freebsd/man3/ohash_init.3 create mode 100644 static/freebsd/man3/ohash_interval.3 create mode 100644 static/freebsd/man3/open_memstream.3 create mode 100644 static/freebsd/man3/openpam.3 create mode 100644 static/freebsd/man3/openpam_borrow_cred.3 create mode 100644 static/freebsd/man3/openpam_free_data.3 create mode 100644 static/freebsd/man3/openpam_free_envlist.3 create mode 100644 static/freebsd/man3/openpam_get_feature.3 create mode 100644 static/freebsd/man3/openpam_get_option.3 create mode 100644 static/freebsd/man3/openpam_log.3 create mode 100644 static/freebsd/man3/openpam_nullconv.3 create mode 100644 static/freebsd/man3/openpam_readline.3 create mode 100644 static/freebsd/man3/openpam_readlinev.3 create mode 100644 static/freebsd/man3/openpam_readword.3 create mode 100644 static/freebsd/man3/openpam_restore_cred.3 create mode 100644 static/freebsd/man3/openpam_set_feature.3 create mode 100644 static/freebsd/man3/openpam_set_option.3 create mode 100644 static/freebsd/man3/openpam_straddch.3 create mode 100644 static/freebsd/man3/openpam_subst.3 create mode 100644 static/freebsd/man3/openpam_ttyconv.3 create mode 100644 static/freebsd/man3/openzfs-2.3 create mode 100644 static/freebsd/man3/openzfsonosx-1.9.3 create mode 100644 static/freebsd/man3/os.3 create mode 100644 static/freebsd/man3/p.3 create mode 100644 static/freebsd/man3/page_ca.3 create mode 100644 static/freebsd/man3/page_cert.3 create mode 100644 static/freebsd/man3/page_cms.3 create mode 100644 static/freebsd/man3/page_des.3 create mode 100644 static/freebsd/man3/page_dh.3 create mode 100644 static/freebsd/man3/page_env.3 create mode 100644 static/freebsd/man3/page_error.3 create mode 100644 static/freebsd/man3/page_evp.3 create mode 100644 static/freebsd/man3/page_keyset.3 create mode 100644 static/freebsd/man3/page_lock.3 create mode 100644 static/freebsd/man3/page_name.3 create mode 100644 static/freebsd/man3/page_peer.3 create mode 100644 static/freebsd/man3/page_print.3 create mode 100644 static/freebsd/man3/page_rand.3 create mode 100644 static/freebsd/man3/page_revoke.3 create mode 100644 static/freebsd/man3/page_rsa.3 create mode 100644 static/freebsd/man3/pam.3 create mode 100644 static/freebsd/man3/pam_acct_mgmt.3 create mode 100644 static/freebsd/man3/pam_authenticate.3 create mode 100644 static/freebsd/man3/pam_chauthtok.3 create mode 100644 static/freebsd/man3/pam_close_session.3 create mode 100644 static/freebsd/man3/pam_conv.3 create mode 100644 static/freebsd/man3/pam_end.3 create mode 100644 static/freebsd/man3/pam_error.3 create mode 100644 static/freebsd/man3/pam_get_authtok.3 create mode 100644 static/freebsd/man3/pam_get_data.3 create mode 100644 static/freebsd/man3/pam_get_item.3 create mode 100644 static/freebsd/man3/pam_get_user.3 create mode 100644 static/freebsd/man3/pam_getenv.3 create mode 100644 static/freebsd/man3/pam_getenvlist.3 create mode 100644 static/freebsd/man3/pam_info.3 create mode 100644 static/freebsd/man3/pam_open_session.3 create mode 100644 static/freebsd/man3/pam_prompt.3 create mode 100644 static/freebsd/man3/pam_putenv.3 create mode 100644 static/freebsd/man3/pam_set_data.3 create mode 100644 static/freebsd/man3/pam_set_item.3 create mode 100644 static/freebsd/man3/pam_setcred.3 create mode 100644 static/freebsd/man3/pam_setenv.3 create mode 100644 static/freebsd/man3/pam_sm_acct_mgmt.3 create mode 100644 static/freebsd/man3/pam_sm_authenticate.3 create mode 100644 static/freebsd/man3/pam_sm_chauthtok.3 create mode 100644 static/freebsd/man3/pam_sm_close_session.3 create mode 100644 static/freebsd/man3/pam_sm_open_session.3 create mode 100644 static/freebsd/man3/pam_sm_setcred.3 create mode 100644 static/freebsd/man3/pam_start.3 create mode 100644 static/freebsd/man3/pam_strerror.3 create mode 100644 static/freebsd/man3/pam_verror.3 create mode 100644 static/freebsd/man3/pam_vinfo.3 create mode 100644 static/freebsd/man3/pam_vprompt.3 create mode 100644 static/freebsd/man3/parse_time.3 create mode 100644 static/freebsd/man3/pause.3 create mode 100644 static/freebsd/man3/pidfile.3 create mode 100644 static/freebsd/man3/pkru.3 create mode 100644 static/freebsd/man3/pmc.3 create mode 100644 static/freebsd/man3/pmc.amd.3 create mode 100644 static/freebsd/man3/pmc.atom.3 create mode 100644 static/freebsd/man3/pmc.atomsilvermont.3 create mode 100644 static/freebsd/man3/pmc.cmn-600.3 create mode 100644 static/freebsd/man3/pmc.core.3 create mode 100644 static/freebsd/man3/pmc.core2.3 create mode 100644 static/freebsd/man3/pmc.corei7.3 create mode 100644 static/freebsd/man3/pmc.corei7uc.3 create mode 100644 static/freebsd/man3/pmc.dmc-620.3 create mode 100644 static/freebsd/man3/pmc.haswell.3 create mode 100644 static/freebsd/man3/pmc.haswelluc.3 create mode 100644 static/freebsd/man3/pmc.haswellxeon.3 create mode 100644 static/freebsd/man3/pmc.iaf.3 create mode 100644 static/freebsd/man3/pmc.ibs.3 create mode 100644 static/freebsd/man3/pmc.ivybridge.3 create mode 100644 static/freebsd/man3/pmc.ivybridgexeon.3 create mode 100644 static/freebsd/man3/pmc.sandybridge.3 create mode 100644 static/freebsd/man3/pmc.sandybridgeuc.3 create mode 100644 static/freebsd/man3/pmc.sandybridgexeon.3 create mode 100644 static/freebsd/man3/pmc.soft.3 create mode 100644 static/freebsd/man3/pmc.tsc.3 create mode 100644 static/freebsd/man3/pmc.ucf.3 create mode 100644 static/freebsd/man3/pmc.westmere.3 create mode 100644 static/freebsd/man3/pmc.westmereuc.3 create mode 100644 static/freebsd/man3/pmc_allocate.3 create mode 100644 static/freebsd/man3/pmc_attach.3 create mode 100644 static/freebsd/man3/pmc_capabilities.3 create mode 100644 static/freebsd/man3/pmc_configure_logfile.3 create mode 100644 static/freebsd/man3/pmc_disable.3 create mode 100644 static/freebsd/man3/pmc_event_names_of_class.3 create mode 100644 static/freebsd/man3/pmc_get_driver_stats.3 create mode 100644 static/freebsd/man3/pmc_get_msr.3 create mode 100644 static/freebsd/man3/pmc_init.3 create mode 100644 static/freebsd/man3/pmc_name_of_capability.3 create mode 100644 static/freebsd/man3/pmc_read.3 create mode 100644 static/freebsd/man3/pmc_set.3 create mode 100644 static/freebsd/man3/pmc_start.3 create mode 100644 static/freebsd/man3/pmclog.3 create mode 100644 static/freebsd/man3/popen.3 create mode 100644 static/freebsd/man3/posix1e.3 create mode 100644 static/freebsd/man3/posix_spawn.3 create mode 100644 static/freebsd/man3/posix_spawn_file_actions_addopen.3 create mode 100644 static/freebsd/man3/posix_spawn_file_actions_init.3 create mode 100644 static/freebsd/man3/posix_spawnattr_getexecfd_np.3 create mode 100644 static/freebsd/man3/posix_spawnattr_getflags.3 create mode 100644 static/freebsd/man3/posix_spawnattr_getpgroup.3 create mode 100644 static/freebsd/man3/posix_spawnattr_getprocdescp_np.3 create mode 100644 static/freebsd/man3/posix_spawnattr_getschedparam.3 create mode 100644 static/freebsd/man3/posix_spawnattr_getschedpolicy.3 create mode 100644 static/freebsd/man3/posix_spawnattr_getsigdefault.3 create mode 100644 static/freebsd/man3/posix_spawnattr_getsigmask.3 create mode 100644 static/freebsd/man3/posix_spawnattr_init.3 create mode 100644 static/freebsd/man3/printf.3 create mode 100644 static/freebsd/man3/printf_l.3 create mode 100644 static/freebsd/man3/property.3 create mode 100644 static/freebsd/man3/psignal.3 create mode 100644 static/freebsd/man3/pthread.3 3.html create mode 100644 static/freebsd/man3/pthread_affinity_np.3 3.html create mode 100644 static/freebsd/man3/pthread_atfork.3 3.html create mode 100644 static/freebsd/man3/pthread_attr.3 3.html create mode 100644 static/freebsd/man3/pthread_attr_affinity_np.3 3.html create mode 100644 static/freebsd/man3/pthread_attr_get_np.3 3.html create mode 100644 static/freebsd/man3/pthread_attr_setcreatesuspend_np.3 3.html create mode 100644 static/freebsd/man3/pthread_barrier_destroy.3 3.html create mode 100644 static/freebsd/man3/pthread_barrierattr.3 3.html create mode 100644 static/freebsd/man3/pthread_cancel.3 3.html create mode 100644 static/freebsd/man3/pthread_cleanup_pop.3 4.html create mode 100644 static/freebsd/man3/pthread_cleanup_push.3 4.html create mode 100644 static/freebsd/man3/pthread_cond_broadcast.3 4.html create mode 100644 static/freebsd/man3/pthread_cond_destroy.3 4.html create mode 100644 static/freebsd/man3/pthread_cond_init.3 3.html create mode 100644 static/freebsd/man3/pthread_cond_signal.3 4.html create mode 100644 static/freebsd/man3/pthread_cond_timedwait.3 3.html create mode 100644 static/freebsd/man3/pthread_cond_wait.3 3.html create mode 100644 static/freebsd/man3/pthread_condattr.3 3.html create mode 100644 static/freebsd/man3/pthread_create.3 3.html create mode 100644 static/freebsd/man3/pthread_detach.3 3.html create mode 100644 static/freebsd/man3/pthread_equal.3 4.html create mode 100644 static/freebsd/man3/pthread_exit.3 3.html create mode 100644 static/freebsd/man3/pthread_getconcurrency.3 3.html create mode 100644 static/freebsd/man3/pthread_getcpuclockid.3 4.html create mode 100644 static/freebsd/man3/pthread_getspecific.3 3.html create mode 100644 static/freebsd/man3/pthread_getthreadid_np.3 4.html create mode 100644 static/freebsd/man3/pthread_join.3 3.html create mode 100644 static/freebsd/man3/pthread_key_create.3 3.html create mode 100644 static/freebsd/man3/pthread_key_delete.3 3.html create mode 100644 static/freebsd/man3/pthread_kill.3 4.html create mode 100644 static/freebsd/man3/pthread_main_np.3 4.html create mode 100644 static/freebsd/man3/pthread_multi_np.3 4.html create mode 100644 static/freebsd/man3/pthread_mutex_consistent.3 3.html create mode 100644 static/freebsd/man3/pthread_mutex_destroy.3 4.html create mode 100644 static/freebsd/man3/pthread_mutex_init.3 3.html create mode 100644 static/freebsd/man3/pthread_mutex_lock.3 3.html create mode 100644 static/freebsd/man3/pthread_mutex_timedlock.3 3.html create mode 100644 static/freebsd/man3/pthread_mutex_trylock.3 3.html create mode 100644 static/freebsd/man3/pthread_mutex_unlock.3 3.html create mode 100644 static/freebsd/man3/pthread_mutexattr.3 3.html create mode 100644 static/freebsd/man3/pthread_mutexattr_getkind_np.3 3.html create mode 100644 static/freebsd/man3/pthread_np.3 3.html create mode 100644 static/freebsd/man3/pthread_once.3 3.html create mode 100644 static/freebsd/man3/pthread_resume_all_np.3 4.html create mode 100644 static/freebsd/man3/pthread_resume_np.3 3.html create mode 100644 static/freebsd/man3/pthread_rwlock_destroy.3 4.html create mode 100644 static/freebsd/man3/pthread_rwlock_init.3 3.html create mode 100644 static/freebsd/man3/pthread_rwlock_rdlock.3 3.html create mode 100644 static/freebsd/man3/pthread_rwlock_timedrdlock.3 3.html create mode 100644 static/freebsd/man3/pthread_rwlock_timedwrlock.3 3.html create mode 100644 static/freebsd/man3/pthread_rwlock_unlock.3 3.html create mode 100644 static/freebsd/man3/pthread_rwlock_wrlock.3 3.html create mode 100644 static/freebsd/man3/pthread_rwlockattr_destroy.3 3.html create mode 100644 static/freebsd/man3/pthread_rwlockattr_getpshared.3 3.html create mode 100644 static/freebsd/man3/pthread_rwlockattr_init.3 4.html create mode 100644 static/freebsd/man3/pthread_rwlockattr_setpshared.3 3.html create mode 100644 static/freebsd/man3/pthread_schedparam.3 3.html create mode 100644 static/freebsd/man3/pthread_self.3 4.html create mode 100644 static/freebsd/man3/pthread_set_name_np.3 3.html create mode 100644 static/freebsd/man3/pthread_setspecific.3 3.html create mode 100644 static/freebsd/man3/pthread_sigmask.3 3.html create mode 100644 static/freebsd/man3/pthread_signals_block_np.3 3.html create mode 100644 static/freebsd/man3/pthread_sigqueue.3 3.html create mode 100644 static/freebsd/man3/pthread_spin_init.3 3.html create mode 100644 static/freebsd/man3/pthread_spin_lock.3 3.html create mode 100644 static/freebsd/man3/pthread_suspend_all_np.3 4.html create mode 100644 static/freebsd/man3/pthread_suspend_np.3 3.html create mode 100644 static/freebsd/man3/pthread_testcancel.3 3.html create mode 100644 static/freebsd/man3/pthread_yield.3 4.html create mode 100644 static/freebsd/man3/ptsname.3 create mode 100644 static/freebsd/man3/pty.3 create mode 100644 static/freebsd/man3/publickey.3 create mode 100644 static/freebsd/man3/putc.3 create mode 100644 static/freebsd/man3/putwc.3 create mode 100644 static/freebsd/man3/pw_util.3 create mode 100644 static/freebsd/man3/pwcache.3 create mode 100644 static/freebsd/man3/qmath.3 3.html create mode 100644 static/freebsd/man3/qsort.3 create mode 100644 static/freebsd/man3/querylocale.3 create mode 100644 static/freebsd/man3/queue.3 3.html create mode 100644 static/freebsd/man3/quick_exit.3 create mode 100644 static/freebsd/man3/quotafile.3 create mode 100644 static/freebsd/man3/radixsort.3 create mode 100644 static/freebsd/man3/raise.3 create mode 100644 static/freebsd/man3/rand.3 create mode 100644 static/freebsd/man3/rand48.3 create mode 100644 static/freebsd/man3/random.3 create mode 100644 static/freebsd/man3/rcmd.3 create mode 100644 static/freebsd/man3/rcmdsh.3 create mode 100644 static/freebsd/man3/rdma_accept.3 create mode 100644 static/freebsd/man3/rdma_ack_cm_event.3 create mode 100644 static/freebsd/man3/rdma_bind_addr.3 create mode 100644 static/freebsd/man3/rdma_connect.3 create mode 100644 static/freebsd/man3/rdma_create_ep.3 create mode 100644 static/freebsd/man3/rdma_create_event_channel.3 create mode 100644 static/freebsd/man3/rdma_create_id.3 create mode 100644 static/freebsd/man3/rdma_create_qp.3 create mode 100644 static/freebsd/man3/rdma_create_srq.3 create mode 100644 static/freebsd/man3/rdma_dereg_mr.3 create mode 100644 static/freebsd/man3/rdma_destroy_ep.3 create mode 100644 static/freebsd/man3/rdma_destroy_event_channel.3 create mode 100644 static/freebsd/man3/rdma_destroy_id.3 create mode 100644 static/freebsd/man3/rdma_destroy_qp.3 create mode 100644 static/freebsd/man3/rdma_destroy_srq.3 create mode 100644 static/freebsd/man3/rdma_disconnect.3 create mode 100644 static/freebsd/man3/rdma_event_str.3 create mode 100644 static/freebsd/man3/rdma_free_devices.3 create mode 100644 static/freebsd/man3/rdma_get_cm_event.3 create mode 100644 static/freebsd/man3/rdma_get_devices.3 create mode 100644 static/freebsd/man3/rdma_get_dst_port.3 create mode 100644 static/freebsd/man3/rdma_get_local_addr.3 create mode 100644 static/freebsd/man3/rdma_get_peer_addr.3 create mode 100644 static/freebsd/man3/rdma_get_recv_comp.3 create mode 100644 static/freebsd/man3/rdma_get_request.3 create mode 100644 static/freebsd/man3/rdma_get_send_comp.3 create mode 100644 static/freebsd/man3/rdma_get_src_port.3 create mode 100644 static/freebsd/man3/rdma_getaddrinfo.3 create mode 100644 static/freebsd/man3/rdma_join_multicast.3 create mode 100644 static/freebsd/man3/rdma_leave_multicast.3 create mode 100644 static/freebsd/man3/rdma_listen.3 create mode 100644 static/freebsd/man3/rdma_migrate_id.3 create mode 100644 static/freebsd/man3/rdma_notify.3 create mode 100644 static/freebsd/man3/rdma_post_read.3 create mode 100644 static/freebsd/man3/rdma_post_readv.3 create mode 100644 static/freebsd/man3/rdma_post_recv.3 create mode 100644 static/freebsd/man3/rdma_post_recvv.3 create mode 100644 static/freebsd/man3/rdma_post_send.3 create mode 100644 static/freebsd/man3/rdma_post_sendv.3 create mode 100644 static/freebsd/man3/rdma_post_ud_send.3 create mode 100644 static/freebsd/man3/rdma_post_write.3 create mode 100644 static/freebsd/man3/rdma_post_writev.3 create mode 100644 static/freebsd/man3/rdma_reg_msgs.3 create mode 100644 static/freebsd/man3/rdma_reg_read.3 create mode 100644 static/freebsd/man3/rdma_reg_write.3 create mode 100644 static/freebsd/man3/rdma_reject.3 create mode 100644 static/freebsd/man3/rdma_resolve_addr.3 create mode 100644 static/freebsd/man3/rdma_resolve_route.3 create mode 100644 static/freebsd/man3/rdma_set_option.3 create mode 100644 static/freebsd/man3/re_comp.3 create mode 100644 static/freebsd/man3/readpassphrase.3 create mode 100644 static/freebsd/man3/realhostname.3 create mode 100644 static/freebsd/man3/realhostname_sa.3 create mode 100644 static/freebsd/man3/reallocarray.3 create mode 100644 static/freebsd/man3/reallocf.3 create mode 100644 static/freebsd/man3/realpath.3 create mode 100644 static/freebsd/man3/recno.3 create mode 100644 static/freebsd/man3/regex.3 create mode 100644 static/freebsd/man3/rel2abs.3 create mode 100644 static/freebsd/man3/remainder.3 create mode 100644 static/freebsd/man3/remove.3 create mode 100644 static/freebsd/man3/resolver.3 create mode 100644 static/freebsd/man3/rexec.3 create mode 100644 static/freebsd/man3/rfork_thread.3 create mode 100644 static/freebsd/man3/rint.3 create mode 100644 static/freebsd/man3/ripemd.3 create mode 100644 static/freebsd/man3/round.3 create mode 100644 static/freebsd/man3/rpc.3 create mode 100644 static/freebsd/man3/rpc_clnt_auth.3 create mode 100644 static/freebsd/man3/rpc_clnt_calls.3 create mode 100644 static/freebsd/man3/rpc_clnt_create.3 create mode 100644 static/freebsd/man3/rpc_gss_get_error.3 create mode 100644 static/freebsd/man3/rpc_gss_get_mech_info.3 create mode 100644 static/freebsd/man3/rpc_gss_get_mechanisms.3 create mode 100644 static/freebsd/man3/rpc_gss_get_principal_name.3 create mode 100644 static/freebsd/man3/rpc_gss_get_versions.3 create mode 100644 static/freebsd/man3/rpc_gss_getcred.3 create mode 100644 static/freebsd/man3/rpc_gss_is_installed.3 create mode 100644 static/freebsd/man3/rpc_gss_max_data_length.3 create mode 100644 static/freebsd/man3/rpc_gss_mech_to_oid.3 create mode 100644 static/freebsd/man3/rpc_gss_oid_to_mech.3 create mode 100644 static/freebsd/man3/rpc_gss_qop_to_num.3 create mode 100644 static/freebsd/man3/rpc_gss_seccreate.3 create mode 100644 static/freebsd/man3/rpc_gss_set_callback.3 create mode 100644 static/freebsd/man3/rpc_gss_set_defaults.3 create mode 100644 static/freebsd/man3/rpc_gss_set_svc_name.3 create mode 100644 static/freebsd/man3/rpc_gss_svc_max_data_length.3 create mode 100644 static/freebsd/man3/rpc_secure.3 create mode 100644 static/freebsd/man3/rpc_soc.3 create mode 100644 static/freebsd/man3/rpc_svc_calls.3 create mode 100644 static/freebsd/man3/rpc_svc_create.3 create mode 100644 static/freebsd/man3/rpc_svc_err.3 create mode 100644 static/freebsd/man3/rpc_svc_reg.3 create mode 100644 static/freebsd/man3/rpc_xdr.3 create mode 100644 static/freebsd/man3/rpcbind.3 create mode 100644 static/freebsd/man3/rpcsec_gss.3 create mode 100644 static/freebsd/man3/rpmatch.3 create mode 100644 static/freebsd/man3/rs256_pk_new.3 create mode 100644 static/freebsd/man3/rtbl.3 create mode 100644 static/freebsd/man3/rtime.3 create mode 100644 static/freebsd/man3/rtld_get_var.3 create mode 100644 static/freebsd/man3/s2i_ASN1_IA5STRING.3 create mode 100644 static/freebsd/man3/sbread.3 create mode 100644 static/freebsd/man3/scalbn.3 create mode 100644 static/freebsd/man3/scandir.3 create mode 100644 static/freebsd/man3/scanf.3 create mode 100644 static/freebsd/man3/scanf_l.3 create mode 100644 static/freebsd/man3/sched_getcpu.3 create mode 100644 static/freebsd/man3/sctp_bindx.3 create mode 100644 static/freebsd/man3/sctp_connectx.3 create mode 100644 static/freebsd/man3/sctp_freepaddrs.3 create mode 100644 static/freebsd/man3/sctp_getaddrlen.3 create mode 100644 static/freebsd/man3/sctp_getassocid.3 create mode 100644 static/freebsd/man3/sctp_getpaddrs.3 create mode 100644 static/freebsd/man3/sctp_opt_info.3 create mode 100644 static/freebsd/man3/sctp_recvmsg.3 create mode 100644 static/freebsd/man3/sctp_send.3 create mode 100644 static/freebsd/man3/sctp_sendmsg.3 create mode 100644 static/freebsd/man3/sdp.3 create mode 100644 static/freebsd/man3/sem_destroy.3 create mode 100644 static/freebsd/man3/sem_getvalue.3 create mode 100644 static/freebsd/man3/sem_init.3 create mode 100644 static/freebsd/man3/sem_open.3 create mode 100644 static/freebsd/man3/sem_post.3 create mode 100644 static/freebsd/man3/sem_timedwait.3 create mode 100644 static/freebsd/man3/sem_wait.3 create mode 100644 static/freebsd/man3/sessionkey.3 create mode 100644 static/freebsd/man3/set_constraint_handler_s.3 create mode 100644 static/freebsd/man3/setbuf.3 create mode 100644 static/freebsd/man3/setjmp.3 create mode 100644 static/freebsd/man3/setlocale.3 create mode 100644 static/freebsd/man3/setmode.3 create mode 100644 static/freebsd/man3/setproctitle.3 create mode 100644 static/freebsd/man3/setruid.3 create mode 100644 static/freebsd/man3/sha.3 create mode 100644 static/freebsd/man3/sha256.3 create mode 100644 static/freebsd/man3/sha512.3 create mode 100644 static/freebsd/man3/sigevent.3 3.html create mode 100644 static/freebsd/man3/siginfo.3 3.html create mode 100644 static/freebsd/man3/siginterrupt.3 create mode 100644 static/freebsd/man3/signal.3 create mode 100644 static/freebsd/man3/signbit.3 create mode 100644 static/freebsd/man3/sigsetops.3 create mode 100644 static/freebsd/man3/sin.3 create mode 100644 static/freebsd/man3/sincos.3 create mode 100644 static/freebsd/man3/sinh.3 create mode 100644 static/freebsd/man3/sinpi.3 create mode 100644 static/freebsd/man3/skein.3 create mode 100644 static/freebsd/man3/sleep.3 create mode 100644 static/freebsd/man3/snl.3 3.html create mode 100644 static/freebsd/man3/snmp_bridge.3 create mode 100644 static/freebsd/man3/snmp_hast.3 create mode 100644 static/freebsd/man3/snmp_hostres.3 create mode 100644 static/freebsd/man3/snmp_lm75.3 create mode 100644 static/freebsd/man3/snmp_mibII.3 create mode 100644 static/freebsd/man3/snmp_netgraph.3 create mode 100644 static/freebsd/man3/snmp_target.3 create mode 100644 static/freebsd/man3/snmp_usm.3 create mode 100644 static/freebsd/man3/snmp_vacm.3 create mode 100644 static/freebsd/man3/snmp_wlan.3 create mode 100644 static/freebsd/man3/snmpmod.3 create mode 100644 static/freebsd/man3/sockatmark.3 create mode 100644 static/freebsd/man3/sourcefilter.3 create mode 100644 static/freebsd/man3/sqrt.3 create mode 100644 static/freebsd/man3/ssp.3 create mode 100644 static/freebsd/man3/stats.3 3.html create mode 100644 static/freebsd/man3/statvfs.3 create mode 100644 static/freebsd/man3/stdarg.3 3.html create mode 100644 static/freebsd/man3/stdbit.3 4.html create mode 100644 static/freebsd/man3/stdc_bit_ceil.3 create mode 100644 static/freebsd/man3/stdc_bit_floor.3 create mode 100644 static/freebsd/man3/stdc_bit_width.3 create mode 100644 static/freebsd/man3/stdc_count_ones.3 create mode 100644 static/freebsd/man3/stdc_count_zeros.3 create mode 100644 static/freebsd/man3/stdc_first_leading_one.3 create mode 100644 static/freebsd/man3/stdc_first_leading_zero.3 create mode 100644 static/freebsd/man3/stdc_first_trailing_one.3 create mode 100644 static/freebsd/man3/stdc_first_trailing_zero.3 create mode 100644 static/freebsd/man3/stdc_has_single_bit.3 create mode 100644 static/freebsd/man3/stdc_leading_ones.3 create mode 100644 static/freebsd/man3/stdc_leading_zeros.3 create mode 100644 static/freebsd/man3/stdc_trailing_ones.3 create mode 100644 static/freebsd/man3/stdc_trailing_zeros.3 create mode 100644 static/freebsd/man3/stdckdint.3 3.html create mode 100644 static/freebsd/man3/stdio.3 create mode 100644 static/freebsd/man3/strcasecmp.3 create mode 100644 static/freebsd/man3/strcat.3 create mode 100644 static/freebsd/man3/strchr.3 create mode 100644 static/freebsd/man3/strcmp.3 create mode 100644 static/freebsd/man3/strcoll.3 create mode 100644 static/freebsd/man3/strcpy.3 create mode 100644 static/freebsd/man3/strdup.3 create mode 100644 static/freebsd/man3/strerror.3 create mode 100644 static/freebsd/man3/strfmon.3 create mode 100644 static/freebsd/man3/strftime.3 create mode 100644 static/freebsd/man3/string.3 create mode 100644 static/freebsd/man3/stringlist.3 create mode 100644 static/freebsd/man3/strlcpy.3 create mode 100644 static/freebsd/man3/strlen.3 create mode 100644 static/freebsd/man3/strmode.3 create mode 100644 static/freebsd/man3/strpbrk.3 create mode 100644 static/freebsd/man3/strptime.3 create mode 100644 static/freebsd/man3/strsep.3 create mode 100644 static/freebsd/man3/strspn.3 create mode 100644 static/freebsd/man3/strstr.3 create mode 100644 static/freebsd/man3/strtod.3 create mode 100644 static/freebsd/man3/strtofflags.3 create mode 100644 static/freebsd/man3/strtok.3 create mode 100644 static/freebsd/man3/strtol.3 create mode 100644 static/freebsd/man3/strtonum.3 create mode 100644 static/freebsd/man3/strtoul.3 create mode 100644 static/freebsd/man3/strverscmp.3 create mode 100644 static/freebsd/man3/strxfrm.3 create mode 100644 static/freebsd/man3/swab.3 create mode 100644 static/freebsd/man3/sysconf.3 create mode 100644 static/freebsd/man3/sysctl.3 create mode 100644 static/freebsd/man3/sysdecode.3 create mode 100644 static/freebsd/man3/sysdecode_abi_to_freebsd_errno.3 create mode 100644 static/freebsd/man3/sysdecode_cap_rights.3 create mode 100644 static/freebsd/man3/sysdecode_cmsg_type.3 create mode 100644 static/freebsd/man3/sysdecode_enum.3 create mode 100644 static/freebsd/man3/sysdecode_fcntl_arg.3 create mode 100644 static/freebsd/man3/sysdecode_ioctlname.3 create mode 100644 static/freebsd/man3/sysdecode_kevent.3 create mode 100644 static/freebsd/man3/sysdecode_mask.3 create mode 100644 static/freebsd/man3/sysdecode_quotactl_cmd.3 create mode 100644 static/freebsd/man3/sysdecode_sctp_sinfo_flags.3 create mode 100644 static/freebsd/man3/sysdecode_sigcode.3 create mode 100644 static/freebsd/man3/sysdecode_socket_protocol.3 create mode 100644 static/freebsd/man3/sysdecode_sockopt_name.3 create mode 100644 static/freebsd/man3/sysdecode_syscallname.3 create mode 100644 static/freebsd/man3/sysdecode_utrace.3 create mode 100644 static/freebsd/man3/sysexits.3 3.html create mode 100644 static/freebsd/man3/syslog.3 create mode 100644 static/freebsd/man3/system.3 create mode 100644 static/freebsd/man3/t.3 create mode 100644 static/freebsd/man3/tan.3 create mode 100644 static/freebsd/man3/tanh.3 create mode 100644 static/freebsd/man3/tanpi.3 create mode 100644 static/freebsd/man3/targetinfo.3 create mode 100644 static/freebsd/man3/targetname.3 create mode 100644 static/freebsd/man3/tbl.3 create mode 100644 static/freebsd/man3/tcgetpgrp.3 create mode 100644 static/freebsd/man3/tcgetsid.3 create mode 100644 static/freebsd/man3/tcgetwinsize.3 create mode 100644 static/freebsd/man3/tcsendbreak.3 create mode 100644 static/freebsd/man3/tcsetattr.3 create mode 100644 static/freebsd/man3/tcsetpgrp.3 create mode 100644 static/freebsd/man3/tcsetsid.3 create mode 100644 static/freebsd/man3/teken.3 create mode 100644 static/freebsd/man3/tgmath.3 3.html create mode 100644 static/freebsd/man3/thrd_create.3 create mode 100644 static/freebsd/man3/time.3 create mode 100644 static/freebsd/man3/time2posix.3 create mode 100644 static/freebsd/man3/timeradd.3 4.html create mode 100644 static/freebsd/man3/times.3 create mode 100644 static/freebsd/man3/timespec_get.3 create mode 100644 static/freebsd/man3/timespec_getres.3 create mode 100644 static/freebsd/man3/timingsafe_bcmp.3 create mode 100644 static/freebsd/man3/tmpnam.3 create mode 100644 static/freebsd/man3/toascii.3 create mode 100644 static/freebsd/man3/tolower.3 create mode 100644 static/freebsd/man3/toupper.3 create mode 100644 static/freebsd/man3/towlower.3 create mode 100644 static/freebsd/man3/towupper.3 create mode 100644 static/freebsd/man3/tree.3 3.html create mode 100644 static/freebsd/man3/trimdomain.3 create mode 100644 static/freebsd/man3/trunc.3 create mode 100644 static/freebsd/man3/tsearch.3 create mode 100644 static/freebsd/man3/ttyname.3 create mode 100644 static/freebsd/man3/tzset.3 create mode 100644 static/freebsd/man3/ualarm.3 create mode 100644 static/freebsd/man3/ucontext.3 create mode 100644 static/freebsd/man3/uexterr_gettext.3 create mode 100644 static/freebsd/man3/ufs_disk_close.3 create mode 100644 static/freebsd/man3/ulimit.3 create mode 100644 static/freebsd/man3/ulog_login.3 create mode 100644 static/freebsd/man3/uname.3 create mode 100644 static/freebsd/man3/ungetc.3 create mode 100644 static/freebsd/man3/ungetwc.3 create mode 100644 static/freebsd/man3/unvis.3 create mode 100644 static/freebsd/man3/usbhid.3 create mode 100644 static/freebsd/man3/uselocale.3 create mode 100644 static/freebsd/man3/username.3 create mode 100644 static/freebsd/man3/usleep.3 create mode 100644 static/freebsd/man3/utempter_add_record.3 create mode 100644 static/freebsd/man3/utime.3 create mode 100644 static/freebsd/man3/uucplock.3 create mode 100644 static/freebsd/man3/uuid.3 create mode 100644 static/freebsd/man3/valloc.3 create mode 100644 static/freebsd/man3/veriexec.3 create mode 100644 static/freebsd/man3/vgl.3 create mode 100644 static/freebsd/man3/vis.3 create mode 100644 static/freebsd/man3/wcrtomb.3 create mode 100644 static/freebsd/man3/wcscoll.3 create mode 100644 static/freebsd/man3/wcsftime.3 create mode 100644 static/freebsd/man3/wcsrtombs.3 create mode 100644 static/freebsd/man3/wcstod.3 create mode 100644 static/freebsd/man3/wcstok.3 create mode 100644 static/freebsd/man3/wcstol.3 create mode 100644 static/freebsd/man3/wcstombs.3 create mode 100644 static/freebsd/man3/wcswidth.3 create mode 100644 static/freebsd/man3/wcsxfrm.3 create mode 100644 static/freebsd/man3/wctomb.3 create mode 100644 static/freebsd/man3/wctrans.3 create mode 100644 static/freebsd/man3/wctype.3 create mode 100644 static/freebsd/man3/wcwidth.3 create mode 100644 static/freebsd/man3/wind.3 create mode 100644 static/freebsd/man3/wind_profile.3 create mode 100644 static/freebsd/man3/wind_punycode_label_toascii.3 create mode 100644 static/freebsd/man3/wind_stringprep.3 create mode 100644 static/freebsd/man3/wind_ucs2read.3 create mode 100644 static/freebsd/man3/wind_ucs2utf8.3 create mode 100644 static/freebsd/man3/wind_ucs2utf8_length.3 create mode 100644 static/freebsd/man3/wind_ucs2write.3 create mode 100644 static/freebsd/man3/wind_ucs4utf8.3 create mode 100644 static/freebsd/man3/wind_ucs4utf8_length.3 create mode 100644 static/freebsd/man3/wind_utf8ucs2.3 create mode 100644 static/freebsd/man3/wind_utf8ucs2_length.3 create mode 100644 static/freebsd/man3/wind_utf8ucs4.3 create mode 100644 static/freebsd/man3/wind_utf8ucs4_length.3 create mode 100644 static/freebsd/man3/wmemchr.3 create mode 100644 static/freebsd/man3/wordexp.3 create mode 100644 static/freebsd/man3/wprintf.3 create mode 100644 static/freebsd/man3/ws.3 create mode 100644 static/freebsd/man3/wscanf.3 create mode 100644 static/freebsd/man3/xdr.3 create mode 100644 static/freebsd/man3/xlocale.3 create mode 100644 static/freebsd/man3/xo_attr.3 create mode 100644 static/freebsd/man3/xo_create.3 create mode 100644 static/freebsd/man3/xo_emit.3 create mode 100644 static/freebsd/man3/xo_emit_err.3 create mode 100644 static/freebsd/man3/xo_emit_f.3 create mode 100644 static/freebsd/man3/xo_emit_field.3 create mode 100644 static/freebsd/man3/xo_err.3 create mode 100644 static/freebsd/man3/xo_error.3 create mode 100644 static/freebsd/man3/xo_finish.3 create mode 100644 static/freebsd/man3/xo_flush.3 create mode 100644 static/freebsd/man3/xo_message.3 create mode 100644 static/freebsd/man3/xo_no_setlocale.3 create mode 100644 static/freebsd/man3/xo_open_container.3 create mode 100644 static/freebsd/man3/xo_open_list.3 create mode 100644 static/freebsd/man3/xo_open_marker.3 create mode 100644 static/freebsd/man3/xo_parse_args.3 create mode 100644 static/freebsd/man3/xo_set_allocator.3 create mode 100644 static/freebsd/man3/xo_set_flags.3 create mode 100644 static/freebsd/man3/xo_set_info.3 create mode 100644 static/freebsd/man3/xo_set_options.3 create mode 100644 static/freebsd/man3/xo_set_style.3 create mode 100644 static/freebsd/man3/xo_set_syslog_enterprise_id.3 create mode 100644 static/freebsd/man3/xo_set_version.3 create mode 100644 static/freebsd/man3/xo_set_writer.3 create mode 100644 static/freebsd/man3/xo_syslog.3 create mode 100644 static/freebsd/man3/zlib.3 create mode 100644 static/freebsd/man3/zopen.3 create mode 100644 static/freebsd/man3lua/intro.3lua 4.html create mode 100644 static/freebsd/man4/1.4 create mode 100644 static/freebsd/man4/2.4 create mode 100644 static/freebsd/man4/3.4 create mode 100644 static/freebsd/man4/4.4 create mode 100644 static/freebsd/man4/5.4 create mode 100644 static/freebsd/man4/6.4 create mode 100644 static/freebsd/man4/7.4 create mode 100644 static/freebsd/man4/8.4 create mode 100644 static/freebsd/man4/9.4 create mode 100644 static/freebsd/man4/CPU_ELAN.4 create mode 100644 static/freebsd/man4/ChangeLog-1.4 create mode 100644 static/freebsd/man4/aac.4 3.html create mode 100644 static/freebsd/man4/aacraid.4 3.html create mode 100644 static/freebsd/man4/abtn.4 create mode 100644 static/freebsd/man4/acpi.4 3.html create mode 100644 static/freebsd/man4/acpi_asus.4 4.html create mode 100644 static/freebsd/man4/acpi_asus_wmi.4 3.html create mode 100644 static/freebsd/man4/acpi_battery.4 3.html create mode 100644 static/freebsd/man4/acpi_dock.4 4.html create mode 100644 static/freebsd/man4/acpi_fujitsu.4 3.html create mode 100644 static/freebsd/man4/acpi_ged.4 4.html create mode 100644 static/freebsd/man4/acpi_hp.4 3.html create mode 100644 static/freebsd/man4/acpi_ibm.4 3.html create mode 100644 static/freebsd/man4/acpi_panasonic.4 3.html create mode 100644 static/freebsd/man4/acpi_rapidstart.4 3.html create mode 100644 static/freebsd/man4/acpi_sony.4 4.html create mode 100644 static/freebsd/man4/acpi_thermal.4 3.html create mode 100644 static/freebsd/man4/acpi_toshiba.4 3.html create mode 100644 static/freebsd/man4/acpi_video.4 3.html create mode 100644 static/freebsd/man4/acpi_wmi.4 3.html create mode 100644 static/freebsd/man4/ada.4 3.html create mode 100644 static/freebsd/man4/adb.4 create mode 100644 static/freebsd/man4/adm6996fc.4 4.html create mode 100644 static/freebsd/man4/ads111x.4 3.html create mode 100644 static/freebsd/man4/ae.4 3.html create mode 100644 static/freebsd/man4/aesni.4 3.html create mode 100644 static/freebsd/man4/age.4 3.html create mode 100644 static/freebsd/man4/agp.4 3.html create mode 100644 static/freebsd/man4/ahc.4 3.html create mode 100644 static/freebsd/man4/ahci.4 3.html create mode 100644 static/freebsd/man4/ahd.4 3.html create mode 100644 static/freebsd/man4/aibs.4 3.html create mode 100644 static/freebsd/man4/aio.4 3.html create mode 100644 static/freebsd/man4/akbd.4 create mode 100644 static/freebsd/man4/alc.4 3.html create mode 100644 static/freebsd/man4/ale.4 3.html create mode 100644 static/freebsd/man4/alpm.4 4.html create mode 100644 static/freebsd/man4/altq.4 3.html create mode 100644 static/freebsd/man4/am335x_dmtpps.4 create mode 100644 static/freebsd/man4/amdpm.4 4.html create mode 100644 static/freebsd/man4/amdsbwd.4 4.html create mode 100644 static/freebsd/man4/amdsmb.4 4.html create mode 100644 static/freebsd/man4/amdsmn.4 4.html create mode 100644 static/freebsd/man4/amdtemp.4 3.html create mode 100644 static/freebsd/man4/ams.4 create mode 100644 static/freebsd/man4/aout.4 3.html create mode 100644 static/freebsd/man4/apic.4 3.html create mode 100644 static/freebsd/man4/apm.4 create mode 100644 static/freebsd/man4/appleir.4 3.html create mode 100644 static/freebsd/man4/aq.4 4.html create mode 100644 static/freebsd/man4/ar40xx.4 create mode 100644 static/freebsd/man4/arcmsr.4 3.html create mode 100644 static/freebsd/man4/armv8crypto.4 create mode 100644 static/freebsd/man4/arp.4 create mode 100644 static/freebsd/man4/arswitch.4 3.html create mode 100644 static/freebsd/man4/asmc.4 3.html create mode 100644 static/freebsd/man4/at45d.4 3.html create mode 100644 static/freebsd/man4/ata.4 3.html create mode 100644 static/freebsd/man4/atf-test-case.4 create mode 100644 static/freebsd/man4/ath.4 3.html create mode 100644 static/freebsd/man4/ath10k.4 3.html create mode 100644 static/freebsd/man4/ath_hal.4 3.html create mode 100644 static/freebsd/man4/atkbd.4 3.html create mode 100644 static/freebsd/man4/atkbdc.4 3.html create mode 100644 static/freebsd/man4/atopcase.4 4.html create mode 100644 static/freebsd/man4/atp.4 3.html create mode 100644 static/freebsd/man4/atrtc.4 4.html create mode 100644 static/freebsd/man4/attimer.4 3.html create mode 100644 static/freebsd/man4/audit.4 3.html create mode 100644 static/freebsd/man4/auditpipe.4 3.html create mode 100644 static/freebsd/man4/aue.4 3.html create mode 100644 static/freebsd/man4/autofs.4 3.html create mode 100644 static/freebsd/man4/aw_gpio.4 4.html create mode 100644 static/freebsd/man4/aw_mmc.4 4.html create mode 100644 static/freebsd/man4/aw_rtc.4 4.html create mode 100644 static/freebsd/man4/aw_sid.4 4.html create mode 100644 static/freebsd/man4/aw_spi.4 4.html create mode 100644 static/freebsd/man4/aw_syscon.4 4.html create mode 100644 static/freebsd/man4/axe.4 3.html create mode 100644 static/freebsd/man4/axge.4 3.html create mode 100644 static/freebsd/man4/axp.4 3.html create mode 100644 static/freebsd/man4/bce.4 3.html create mode 100644 static/freebsd/man4/bcm283x_pwm.4 create mode 100644 static/freebsd/man4/bcm5974.4 4.html create mode 100644 static/freebsd/man4/bcma.4 4.html create mode 100644 static/freebsd/man4/bfe.4 3.html create mode 100644 static/freebsd/man4/bge.4 3.html create mode 100644 static/freebsd/man4/bhnd.4 4.html create mode 100644 static/freebsd/man4/bhnd_chipc.4 3.html create mode 100644 static/freebsd/man4/bhnd_pmu.4 4.html create mode 100644 static/freebsd/man4/bhndb.4 4.html create mode 100644 static/freebsd/man4/bhndb_pci.4 3.html create mode 100644 static/freebsd/man4/bhyve.4 4.html create mode 100644 static/freebsd/man4/blackhole.4 3.html create mode 100644 static/freebsd/man4/bnxt.4 3.html create mode 100644 static/freebsd/man4/bnxt_re.4 3.html create mode 100644 static/freebsd/man4/boottrace.4 3.html create mode 100644 static/freebsd/man4/bpf.4 3.html create mode 100644 static/freebsd/man4/break4.4 create mode 100644 static/freebsd/man4/break5.4 create mode 100644 static/freebsd/man4/bridge.4 3.html create mode 100644 static/freebsd/man4/bsd4.4 create mode 100644 static/freebsd/man4/bwi.4 3.html create mode 100644 static/freebsd/man4/bwn.4 3.html create mode 100644 static/freebsd/man4/bxe.4 3.html create mode 100644 static/freebsd/man4/bytgpio.4 3.html create mode 100644 static/freebsd/man4/capsicum.4 3.html create mode 100644 static/freebsd/man4/cardbus.4 4.html create mode 100644 static/freebsd/man4/carp.4 3.html create mode 100644 static/freebsd/man4/cas.4 3.html create mode 100644 static/freebsd/man4/cc_cdg.4 3.html create mode 100644 static/freebsd/man4/cc_chd.4 3.html create mode 100644 static/freebsd/man4/cc_cubic.4 3.html create mode 100644 static/freebsd/man4/cc_dctcp.4 3.html create mode 100644 static/freebsd/man4/cc_hd.4 3.html create mode 100644 static/freebsd/man4/cc_htcp.4 3.html create mode 100644 static/freebsd/man4/cc_newreno.4 3.html create mode 100644 static/freebsd/man4/cc_vegas.4 3.html create mode 100644 static/freebsd/man4/ccd.4 3.html create mode 100644 static/freebsd/man4/ccr.4 3.html create mode 100644 static/freebsd/man4/cd.4 3.html create mode 100644 static/freebsd/man4/cd9660.4 4.html create mode 100644 static/freebsd/man4/cdce.4 3.html create mode 100644 static/freebsd/man4/cdceem.4 3.html create mode 100644 static/freebsd/man4/cfi.4 3.html create mode 100644 static/freebsd/man4/cfiscsi.4 3.html create mode 100644 static/freebsd/man4/cfumass.4 3.html create mode 100644 static/freebsd/man4/cgem.4 3.html create mode 100644 static/freebsd/man4/ch.4 3.html create mode 100644 static/freebsd/man4/chromebook_platform.4 4.html create mode 100644 static/freebsd/man4/chvgpio.4 3.html create mode 100644 static/freebsd/man4/ciss.4 3.html create mode 100644 static/freebsd/man4/coretemp.4 4.html create mode 100644 static/freebsd/man4/cp2112.4 3.html create mode 100644 static/freebsd/man4/cpuctl.4 3.html create mode 100644 static/freebsd/man4/cpufreq.4 3.html create mode 100644 static/freebsd/man4/crypto.4 3.html create mode 100644 static/freebsd/man4/csh.4 create mode 100644 static/freebsd/man4/ctl.4 3.html create mode 100644 static/freebsd/man4/cuda.4 create mode 100644 static/freebsd/man4/cue.4 3.html create mode 100644 static/freebsd/man4/cxgb.4 3.html create mode 100644 static/freebsd/man4/cxgbe.4 3.html create mode 100644 static/freebsd/man4/cxgbev.4 3.html create mode 100644 static/freebsd/man4/cyapa.4 3.html create mode 100644 static/freebsd/man4/da.4 3.html create mode 100644 static/freebsd/man4/dc.4 3.html create mode 100644 static/freebsd/man4/dcons.4 3.html create mode 100644 static/freebsd/man4/dcons_crom.4 4.html create mode 100644 static/freebsd/man4/ddb.4 3.html create mode 100644 static/freebsd/man4/devcfg.4 create mode 100644 static/freebsd/man4/devctl.4 3.html create mode 100644 static/freebsd/man4/devfs.4 3.html create mode 100644 static/freebsd/man4/disc.4 3.html create mode 100644 static/freebsd/man4/disk.4 3.html create mode 100644 static/freebsd/man4/divert.4 3.html create mode 100644 static/freebsd/man4/dpms.4 3.html create mode 100644 static/freebsd/man4/ds1307.4 3.html create mode 100644 static/freebsd/man4/ds3231.4 3.html create mode 100644 static/freebsd/man4/dtrace_audit.4 3.html create mode 100644 static/freebsd/man4/dtrace_callout_execute.4 3.html create mode 100644 static/freebsd/man4/dtrace_cam.4 4.html create mode 100644 static/freebsd/man4/dtrace_dtrace.4 3.html create mode 100644 static/freebsd/man4/dtrace_fbt.4 3.html create mode 100644 static/freebsd/man4/dtrace_io.4 3.html create mode 100644 static/freebsd/man4/dtrace_ip.4 3.html create mode 100644 static/freebsd/man4/dtrace_kinst.4 3.html create mode 100644 static/freebsd/man4/dtrace_lockstat.4 3.html create mode 100644 static/freebsd/man4/dtrace_pid.4 3.html create mode 100644 static/freebsd/man4/dtrace_priv.4 4.html create mode 100644 static/freebsd/man4/dtrace_proc.4 3.html create mode 100644 static/freebsd/man4/dtrace_profile.4 3.html create mode 100644 static/freebsd/man4/dtrace_sched.4 3.html create mode 100644 static/freebsd/man4/dtrace_sctp.4 3.html create mode 100644 static/freebsd/man4/dtrace_tcp.4 3.html create mode 100644 static/freebsd/man4/dtrace_udp.4 3.html create mode 100644 static/freebsd/man4/dtrace_udplite.4 3.html create mode 100644 static/freebsd/man4/dtrace_vfs.4 3.html create mode 100644 static/freebsd/man4/dtsec.4 create mode 100644 static/freebsd/man4/dummymbuf.4 3.html create mode 100644 static/freebsd/man4/dummynet.4 3.html create mode 100644 static/freebsd/man4/dwcotg.4 create mode 100644 static/freebsd/man4/e6000sw.4 3.html create mode 100644 static/freebsd/man4/e6060sw.4 3.html create mode 100644 static/freebsd/man4/edsc.4 3.html create mode 100644 static/freebsd/man4/efidev.4 3.html create mode 100644 static/freebsd/man4/ehci.4 3.html create mode 100644 static/freebsd/man4/em.4 3.html create mode 100644 static/freebsd/man4/ena.4 3.html create mode 100644 static/freebsd/man4/enc.4 3.html create mode 100644 static/freebsd/man4/enetc.4 create mode 100644 static/freebsd/man4/enic.4 4.html create mode 100644 static/freebsd/man4/epair.4 3.html create mode 100644 static/freebsd/man4/est.4 3.html create mode 100644 static/freebsd/man4/et.4 3.html create mode 100644 static/freebsd/man4/etherswitch.4 3.html create mode 100644 static/freebsd/man4/eventtimers.4 3.html create mode 100644 static/freebsd/man4/example.4 create mode 100644 static/freebsd/man4/exca.4 4.html create mode 100644 static/freebsd/man4/expected.status.4 create mode 100644 static/freebsd/man4/expected.stderr.4 create mode 100644 static/freebsd/man4/expected.stdout.4 create mode 100644 static/freebsd/man4/ext2fs.4 3.html create mode 100644 static/freebsd/man4/fd.4 4.html create mode 100644 static/freebsd/man4/fdc.4 3.html create mode 100644 static/freebsd/man4/fdescfs.4 3.html create mode 100644 static/freebsd/man4/fdt.4 3.html create mode 100644 static/freebsd/man4/fdt_pinctrl.4 3.html create mode 100644 static/freebsd/man4/fdtbus.4 3.html create mode 100644 static/freebsd/man4/felix.4 create mode 100644 static/freebsd/man4/ffclock.4 3.html create mode 100644 static/freebsd/man4/ffs.4 3.html create mode 100644 static/freebsd/man4/filemon.4 3.html create mode 100644 static/freebsd/man4/firewire.4 3.html create mode 100644 static/freebsd/man4/ftgpio.4 4.html create mode 100644 static/freebsd/man4/ftwd.4 3.html create mode 100644 static/freebsd/man4/full.4 3.html create mode 100644 static/freebsd/man4/fusefs.4 3.html create mode 100644 static/freebsd/man4/fwe.4 3.html create mode 100644 static/freebsd/man4/fwip.4 3.html create mode 100644 static/freebsd/man4/fwohci.4 3.html create mode 100644 static/freebsd/man4/fxp.4 3.html create mode 100644 static/freebsd/man4/gdb.4 3.html create mode 100644 static/freebsd/man4/gem.4 3.html create mode 100644 static/freebsd/man4/genet.4 3.html create mode 100644 static/freebsd/man4/genetlink.4 3.html create mode 100644 static/freebsd/man4/geneve.4 3.html create mode 100644 static/freebsd/man4/geom.4 3.html create mode 100644 static/freebsd/man4/geom_linux_lvm.4 3.html create mode 100644 static/freebsd/man4/geom_uzip.4 3.html create mode 100644 static/freebsd/man4/geom_zero.4 3.html create mode 100644 static/freebsd/man4/gif.4 3.html create mode 100644 static/freebsd/man4/glxiic.4 create mode 100644 static/freebsd/man4/glxsb.4 create mode 100644 static/freebsd/man4/gpio.4 3.html create mode 100644 static/freebsd/man4/gpioiic.4 3.html create mode 100644 static/freebsd/man4/gpiokeys.4 3.html create mode 100644 static/freebsd/man4/gpioled.4 3.html create mode 100644 static/freebsd/man4/gpioths.4 3.html create mode 100644 static/freebsd/man4/gre.4 3.html create mode 100644 static/freebsd/man4/gve.4 3.html create mode 100644 static/freebsd/man4/h_ertt.4 3.html create mode 100644 static/freebsd/man4/hconf.4 3.html create mode 100644 static/freebsd/man4/hcons.4 3.html create mode 100644 static/freebsd/man4/hgame.4 3.html create mode 100644 static/freebsd/man4/hidbus.4 3.html create mode 100644 static/freebsd/man4/hidquirk.4 3.html create mode 100644 static/freebsd/man4/hidraw.4 3.html create mode 100644 static/freebsd/man4/hkbd.4 3.html create mode 100644 static/freebsd/man4/hms.4 4.html create mode 100644 static/freebsd/man4/hmt.4 3.html create mode 100644 static/freebsd/man4/hpen.4 4.html create mode 100644 static/freebsd/man4/hpet.4 3.html create mode 100644 static/freebsd/man4/hpt27xx.4 3.html create mode 100644 static/freebsd/man4/hptiop.4 3.html create mode 100644 static/freebsd/man4/hptmv.4 3.html create mode 100644 static/freebsd/man4/hptnr.4 4.html create mode 100644 static/freebsd/man4/hptrr.4 3.html create mode 100644 static/freebsd/man4/hsctrl.4 4.html create mode 100644 static/freebsd/man4/htu21.4 3.html create mode 100644 static/freebsd/man4/hv_kvp.4 3.html create mode 100644 static/freebsd/man4/hv_netvsc.4 3.html create mode 100644 static/freebsd/man4/hv_storvsc.4 3.html create mode 100644 static/freebsd/man4/hv_utils.4 3.html create mode 100644 static/freebsd/man4/hv_vmbus.4 3.html create mode 100644 static/freebsd/man4/hv_vss.4 3.html create mode 100644 static/freebsd/man4/hwpmc.4 3.html create mode 100644 static/freebsd/man4/hwpstate_intel.4 3.html create mode 100644 static/freebsd/man4/hwt.4 3.html create mode 100644 static/freebsd/man4/i2ctinyusb.4 4.html create mode 100644 static/freebsd/man4/iavf.4 3.html create mode 100644 static/freebsd/man4/ice.4 3.html create mode 100644 static/freebsd/man4/ichsmb.4 4.html create mode 100644 static/freebsd/man4/ichwd.4 3.html create mode 100644 static/freebsd/man4/icmp.4 3.html create mode 100644 static/freebsd/man4/icmp6.4 3.html create mode 100644 static/freebsd/man4/ida.4 3.html create mode 100644 static/freebsd/man4/ietp.4 4.html create mode 100644 static/freebsd/man4/if_ipsec.4 3.html create mode 100644 static/freebsd/man4/if_ntb.4 4.html create mode 100644 static/freebsd/man4/iflib.4 3.html create mode 100644 static/freebsd/man4/ifmib.4 3.html create mode 100644 static/freebsd/man4/ig4.4 3.html create mode 100644 static/freebsd/man4/igc.4 3.html create mode 100644 static/freebsd/man4/igmp.4 3.html create mode 100644 static/freebsd/man4/iic.4 3.html create mode 100644 static/freebsd/man4/iic_gpiomux.4 4.html create mode 100644 static/freebsd/man4/iicbb.4 4.html create mode 100644 static/freebsd/man4/iicbus.4 3.html create mode 100644 static/freebsd/man4/iichid.4 3.html create mode 100644 static/freebsd/man4/iicmux.4 3.html create mode 100644 static/freebsd/man4/iicsmb.4 4.html create mode 100644 static/freebsd/man4/imcsmb.4 3.html create mode 100644 static/freebsd/man4/imx6_ahci.4 create mode 100644 static/freebsd/man4/imx6_snvs.4 create mode 100644 static/freebsd/man4/imx_spi.4 create mode 100644 static/freebsd/man4/imx_wdog.4 create mode 100644 static/freebsd/man4/inet.4 3.html create mode 100644 static/freebsd/man4/inet6.4 3.html create mode 100644 static/freebsd/man4/intpm.4 4.html create mode 100644 static/freebsd/man4/intro.4 3.html create mode 100644 static/freebsd/man4/io.4 3.html create mode 100644 static/freebsd/man4/ioat.4 4.html create mode 100644 static/freebsd/man4/ip.4 3.html create mode 100644 static/freebsd/man4/ip17x.4 4.html create mode 100644 static/freebsd/man4/ip6.4 3.html create mode 100644 static/freebsd/man4/ipf.4 create mode 100644 static/freebsd/man4/ipfilter.4 create mode 100644 static/freebsd/man4/ipfirewall.4 3.html create mode 100644 static/freebsd/man4/ipheth.4 3.html create mode 100644 static/freebsd/man4/ipl.4 create mode 100644 static/freebsd/man4/ipmi.4 3.html create mode 100644 static/freebsd/man4/ipnat.4 create mode 100644 static/freebsd/man4/ips.4 3.html create mode 100644 static/freebsd/man4/ipsec.4 3.html create mode 100644 static/freebsd/man4/ipv6.4 create mode 100644 static/freebsd/man4/ipw.4 4.html create mode 100644 static/freebsd/man4/ipwfw.4 4.html create mode 100644 static/freebsd/man4/irdma.4 3.html create mode 100644 static/freebsd/man4/isci.4 4.html create mode 100644 static/freebsd/man4/iscsi.4 3.html create mode 100644 static/freebsd/man4/iser.4 3.html create mode 100644 static/freebsd/man4/isl.4 3.html create mode 100644 static/freebsd/man4/ismt.4 4.html create mode 100644 static/freebsd/man4/isp.4 3.html create mode 100644 static/freebsd/man4/ispfw.4 4.html create mode 100644 static/freebsd/man4/itwd.4 4.html create mode 100644 static/freebsd/man4/iwi.4 3.html create mode 100644 static/freebsd/man4/iwifw.4 4.html create mode 100644 static/freebsd/man4/iwlwifi.4 3.html create mode 100644 static/freebsd/man4/iwlwififw.4 3.html create mode 100644 static/freebsd/man4/iwm.4 4.html create mode 100644 static/freebsd/man4/iwmfw.4 4.html create mode 100644 static/freebsd/man4/iwn.4 4.html create mode 100644 static/freebsd/man4/iwnfw.4 4.html create mode 100644 static/freebsd/man4/iwx.4 3.html create mode 100644 static/freebsd/man4/ix.4 3.html create mode 100644 static/freebsd/man4/ixl.4 3.html create mode 100644 static/freebsd/man4/jedec_dimm.4 3.html create mode 100644 static/freebsd/man4/jme.4 3.html create mode 100644 static/freebsd/man4/kbdmux.4 4.html create mode 100644 static/freebsd/man4/kcov.4 3.html create mode 100644 static/freebsd/man4/keyboard.4 3.html create mode 100644 static/freebsd/man4/kld.4 3.html create mode 100644 static/freebsd/man4/ksyms.4 3.html create mode 100644 static/freebsd/man4/ksz8995ma.4 4.html create mode 100644 static/freebsd/man4/ktls.4 3.html create mode 100644 static/freebsd/man4/ktr.4 3.html create mode 100644 static/freebsd/man4/kue.4 4.html create mode 100644 static/freebsd/man4/kvmclock.4 3.html create mode 100644 static/freebsd/man4/lagg.4 3.html create mode 100644 static/freebsd/man4/led.4 4.html create mode 100644 static/freebsd/man4/lge.4 3.html create mode 100644 static/freebsd/man4/lindebugfs.4 3.html create mode 100644 static/freebsd/man4/linprocfs.4 3.html create mode 100644 static/freebsd/man4/linsysfs.4 4.html create mode 100644 static/freebsd/man4/linux.4 3.html create mode 100644 static/freebsd/man4/linuxkpi.4 4.html create mode 100644 static/freebsd/man4/linuxkpi_wlan.4 3.html create mode 100644 static/freebsd/man4/liquidio.4 3.html create mode 100644 static/freebsd/man4/llan.4 create mode 100644 static/freebsd/man4/lm75.4 3.html create mode 100644 static/freebsd/man4/lo.4 3.html create mode 100644 static/freebsd/man4/longrun.4 create mode 100644 static/freebsd/man4/lp.4 3.html create mode 100644 static/freebsd/man4/lpbb.4 4.html create mode 100644 static/freebsd/man4/lpt.4 3.html create mode 100644 static/freebsd/man4/ltc430x.4 3.html create mode 100644 static/freebsd/man4/mac.4 3.html create mode 100644 static/freebsd/man4/mac_biba.4 3.html create mode 100644 static/freebsd/man4/mac_bsdextended.4 3.html create mode 100644 static/freebsd/man4/mac_ddb.4 3.html create mode 100644 static/freebsd/man4/mac_do.4 3.html create mode 100644 static/freebsd/man4/mac_ifoff.4 3.html create mode 100644 static/freebsd/man4/mac_ipacl.4 3.html create mode 100644 static/freebsd/man4/mac_lomac.4 3.html create mode 100644 static/freebsd/man4/mac_mls.4 3.html create mode 100644 static/freebsd/man4/mac_none.4 4.html create mode 100644 static/freebsd/man4/mac_ntpd.4 3.html create mode 100644 static/freebsd/man4/mac_partition.4 3.html create mode 100644 static/freebsd/man4/mac_portacl.4 3.html create mode 100644 static/freebsd/man4/mac_priority.4 3.html create mode 100644 static/freebsd/man4/mac_seeotheruids.4 3.html create mode 100644 static/freebsd/man4/mac_stub.4 3.html create mode 100644 static/freebsd/man4/mac_test.4 3.html create mode 100644 static/freebsd/man4/malo.4 3.html create mode 100644 static/freebsd/man4/man4.aarch64/armv8crypto.4 3.html create mode 100644 static/freebsd/man4/man4.aarch64/enetc.4 3.html create mode 100644 static/freebsd/man4/man4.aarch64/felix.4 3.html create mode 100644 static/freebsd/man4/man4.aarch64/rk_gpio.4 3.html create mode 100644 static/freebsd/man4/man4.aarch64/rk_grf.4 3.html create mode 100644 static/freebsd/man4/man4.aarch64/rk_grf_gpio.4 3.html create mode 100644 static/freebsd/man4/man4.aarch64/rk_i2c.4 3.html create mode 100644 static/freebsd/man4/man4.aarch64/rk_pinctrl.4 3.html create mode 100644 static/freebsd/man4/man4.arm/am335x_dmtpps.4 3.html create mode 100644 static/freebsd/man4/man4.arm/ar40xx.4 3.html create mode 100644 static/freebsd/man4/man4.arm/bcm283x_pwm.4 3.html create mode 100644 static/freebsd/man4/man4.arm/devcfg.4 3.html create mode 100644 static/freebsd/man4/man4.arm/dwcotg.4 3.html create mode 100644 static/freebsd/man4/man4.arm/imx6_ahci.4 3.html create mode 100644 static/freebsd/man4/man4.arm/imx6_snvs.4 3.html create mode 100644 static/freebsd/man4/man4.arm/imx_spi.4 3.html create mode 100644 static/freebsd/man4/man4.arm/imx_wdog.4 3.html create mode 100644 static/freebsd/man4/man4.arm/mge.4 3.html create mode 100644 static/freebsd/man4/man4.arm/ti_adc.4 3.html create mode 100644 static/freebsd/man4/man4.i386/CPU_ELAN.4 3.html create mode 100644 static/freebsd/man4/man4.i386/apm.4 3.html create mode 100644 static/freebsd/man4/man4.i386/glxiic.4 3.html create mode 100644 static/freebsd/man4/man4.i386/glxsb.4 3.html create mode 100644 static/freebsd/man4/man4.i386/longrun.4 3.html create mode 100644 static/freebsd/man4/man4.i386/npx.4 3.html create mode 100644 static/freebsd/man4/man4.i386/pae.4 3.html create mode 100644 static/freebsd/man4/man4.i386/pbio.4 3.html create mode 100644 static/freebsd/man4/man4.i386/pnp.4 3.html create mode 100644 static/freebsd/man4/man4.i386/pnpbios.4 3.html create mode 100644 static/freebsd/man4/man4.i386/sbni.4 3.html create mode 100644 static/freebsd/man4/man4.i386/smapi.4 3.html create mode 100644 static/freebsd/man4/man4.i386/vpd.4 3.html create mode 100644 static/freebsd/man4/man4.powerpc/abtn.4 3.html create mode 100644 static/freebsd/man4/man4.powerpc/adb.4 3.html create mode 100644 static/freebsd/man4/man4.powerpc/akbd.4 3.html create mode 100644 static/freebsd/man4/man4.powerpc/ams.4 3.html create mode 100644 static/freebsd/man4/man4.powerpc/cuda.4 3.html create mode 100644 static/freebsd/man4/man4.powerpc/dtsec.4 3.html create mode 100644 static/freebsd/man4/man4.powerpc/llan.4 3.html create mode 100644 static/freebsd/man4/man4.powerpc/ofw_console.4 3.html create mode 100644 static/freebsd/man4/man4.powerpc/pmu.4 3.html create mode 100644 static/freebsd/man4/man4.powerpc/powermac_nvram.4 3.html create mode 100644 static/freebsd/man4/man4.powerpc/smu.4 3.html create mode 100644 static/freebsd/man4/man4.powerpc/snd_ai2s.4 3.html create mode 100644 static/freebsd/man4/man4.powerpc/snd_davbus.4 3.html create mode 100644 static/freebsd/man4/man4.powerpc/tsec.4 3.html create mode 100644 static/freebsd/man4/max44009.4 4.html create mode 100644 static/freebsd/man4/mca.4 3.html create mode 100644 static/freebsd/man4/md.4 3.html create mode 100644 static/freebsd/man4/mdio.4 4.html create mode 100644 static/freebsd/man4/me.4 4.html create mode 100644 static/freebsd/man4/mem.4 3.html create mode 100644 static/freebsd/man4/mfi.4 3.html create mode 100644 static/freebsd/man4/mgb.4 4.html create mode 100644 static/freebsd/man4/mge.4 create mode 100644 static/freebsd/man4/miibus.4 3.html create mode 100644 static/freebsd/man4/mld.4 3.html create mode 100644 static/freebsd/man4/mlx.4 3.html create mode 100644 static/freebsd/man4/mlx4en.4 4.html create mode 100644 static/freebsd/man4/mlx4ib.4 3.html create mode 100644 static/freebsd/man4/mlx5en.4 3.html create mode 100644 static/freebsd/man4/mlx5ib.4 3.html create mode 100644 static/freebsd/man4/mlx5io.4 3.html create mode 100644 static/freebsd/man4/mmc.4 4.html create mode 100644 static/freebsd/man4/mmcsd.4 4.html create mode 100644 static/freebsd/man4/mod_cc.4 3.html create mode 100644 static/freebsd/man4/mos.4 3.html create mode 100644 static/freebsd/man4/mouse.4 3.html create mode 100644 static/freebsd/man4/mpi3mr.4 3.html create mode 100644 static/freebsd/man4/mpr.4 3.html create mode 100644 static/freebsd/man4/mps.4 3.html create mode 100644 static/freebsd/man4/mpt.4 3.html create mode 100644 static/freebsd/man4/mqueuefs.4 3.html create mode 100644 static/freebsd/man4/mrsas.4 3.html create mode 100644 static/freebsd/man4/msdosfs.4 3.html create mode 100644 static/freebsd/man4/msk.4 3.html create mode 100644 static/freebsd/man4/mt7915.4 3.html create mode 100644 static/freebsd/man4/mt7921.4 3.html create mode 100644 static/freebsd/man4/mtio.4 3.html create mode 100644 static/freebsd/man4/mtkswitch.4 4.html create mode 100644 static/freebsd/man4/mtw.4 4.html create mode 100644 static/freebsd/man4/muge.4 4.html create mode 100644 static/freebsd/man4/multicast.4 3.html create mode 100644 static/freebsd/man4/mvs.4 3.html create mode 100644 static/freebsd/man4/mwl.4 3.html create mode 100644 static/freebsd/man4/mwlfw.4 4.html create mode 100644 static/freebsd/man4/mx25l.4 4.html create mode 100644 static/freebsd/man4/mxge.4 3.html create mode 100644 static/freebsd/man4/my.4 4.html create mode 100644 static/freebsd/man4/nctgpio.4 4.html create mode 100644 static/freebsd/man4/ncthwm.4 4.html create mode 100644 static/freebsd/man4/nda.4 3.html create mode 100644 static/freebsd/man4/net80211.4 3.html create mode 100644 static/freebsd/man4/netdump.4 3.html create mode 100644 static/freebsd/man4/netfpga10g_nf10bmac.4 4.html create mode 100644 static/freebsd/man4/netgdb.4 3.html create mode 100644 static/freebsd/man4/netgraph.4 3.html create mode 100644 static/freebsd/man4/netintro.4 3.html create mode 100644 static/freebsd/man4/netlink.4 3.html create mode 100644 static/freebsd/man4/netmap.4 3.html create mode 100644 static/freebsd/man4/nfe.4 3.html create mode 100644 static/freebsd/man4/nfslockd.4 4.html create mode 100644 static/freebsd/man4/nfsmb.4 4.html create mode 100644 static/freebsd/man4/nfsv4.4 create mode 100644 static/freebsd/man4/ng_UI.4 4.html create mode 100644 static/freebsd/man4/ng_async.4 3.html create mode 100644 static/freebsd/man4/ng_bluetooth.4 3.html create mode 100644 static/freebsd/man4/ng_bpf.4 3.html create mode 100644 static/freebsd/man4/ng_bridge.4 3.html create mode 100644 static/freebsd/man4/ng_btsocket.4 3.html create mode 100644 static/freebsd/man4/ng_car.4 3.html create mode 100644 static/freebsd/man4/ng_checksum.4 3.html create mode 100644 static/freebsd/man4/ng_cisco.4 3.html create mode 100644 static/freebsd/man4/ng_deflate.4 3.html create mode 100644 static/freebsd/man4/ng_device.4 3.html create mode 100644 static/freebsd/man4/ng_echo.4 4.html create mode 100644 static/freebsd/man4/ng_eiface.4 3.html create mode 100644 static/freebsd/man4/ng_etf.4 3.html create mode 100644 static/freebsd/man4/ng_ether.4 3.html create mode 100644 static/freebsd/man4/ng_ether_echo.4 4.html create mode 100644 static/freebsd/man4/ng_frame_relay.4 3.html create mode 100644 static/freebsd/man4/ng_gif.4 3.html create mode 100644 static/freebsd/man4/ng_gif_demux.4 4.html create mode 100644 static/freebsd/man4/ng_hci.4 3.html create mode 100644 static/freebsd/man4/ng_hole.4 3.html create mode 100644 static/freebsd/man4/ng_hub.4 3.html create mode 100644 static/freebsd/man4/ng_iface.4 3.html create mode 100644 static/freebsd/man4/ng_ip_input.4 4.html create mode 100644 static/freebsd/man4/ng_ipfw.4 3.html create mode 100644 static/freebsd/man4/ng_ksocket.4 3.html create mode 100644 static/freebsd/man4/ng_l2cap.4 3.html create mode 100644 static/freebsd/man4/ng_l2tp.4 3.html create mode 100644 static/freebsd/man4/ng_lmi.4 3.html create mode 100644 static/freebsd/man4/ng_macfilter.4 3.html create mode 100644 static/freebsd/man4/ng_mppc.4 3.html create mode 100644 static/freebsd/man4/ng_nat.4 3.html create mode 100644 static/freebsd/man4/ng_netflow.4 3.html create mode 100644 static/freebsd/man4/ng_one2many.4 3.html create mode 100644 static/freebsd/man4/ng_patch.4 3.html create mode 100644 static/freebsd/man4/ng_pipe.4 3.html create mode 100644 static/freebsd/man4/ng_ppp.4 3.html create mode 100644 static/freebsd/man4/ng_pppoe.4 3.html create mode 100644 static/freebsd/man4/ng_pptpgre.4 3.html create mode 100644 static/freebsd/man4/ng_pred1.4 3.html create mode 100644 static/freebsd/man4/ng_rfc1490.4 3.html create mode 100644 static/freebsd/man4/ng_socket.4 3.html create mode 100644 static/freebsd/man4/ng_source.4 3.html create mode 100644 static/freebsd/man4/ng_split.4 4.html create mode 100644 static/freebsd/man4/ng_tag.4 3.html create mode 100644 static/freebsd/man4/ng_tcpmss.4 3.html create mode 100644 static/freebsd/man4/ng_tee.4 3.html create mode 100644 static/freebsd/man4/ng_tty.4 3.html create mode 100644 static/freebsd/man4/ng_ubt.4 3.html create mode 100644 static/freebsd/man4/ng_vjc.4 3.html create mode 100644 static/freebsd/man4/ng_vlan.4 3.html create mode 100644 static/freebsd/man4/ng_vlan_rotate.4 3.html create mode 100644 static/freebsd/man4/nge.4 3.html create mode 100644 static/freebsd/man4/nlsysevent.4 3.html create mode 100644 static/freebsd/man4/nmdm.4 4.html create mode 100644 static/freebsd/man4/npx.4 create mode 100644 static/freebsd/man4/ntb.4 3.html create mode 100644 static/freebsd/man4/ntb_hw_amd.4 3.html create mode 100644 static/freebsd/man4/ntb_hw_intel.4 3.html create mode 100644 static/freebsd/man4/ntb_hw_plx.4 3.html create mode 100644 static/freebsd/man4/ntb_transport.4 3.html create mode 100644 static/freebsd/man4/null.4 4.html create mode 100644 static/freebsd/man4/nullfs.4 4.html create mode 100644 static/freebsd/man4/numa.4 3.html create mode 100644 static/freebsd/man4/nvd.4 3.html create mode 100644 static/freebsd/man4/nvdimm.4 3.html create mode 100644 static/freebsd/man4/nvme.4 3.html create mode 100644 static/freebsd/man4/nvmf.4 3.html create mode 100644 static/freebsd/man4/nvmf_che.4 3.html create mode 100644 static/freebsd/man4/nvmf_tcp.4 3.html create mode 100644 static/freebsd/man4/nvmft.4 3.html create mode 100644 static/freebsd/man4/nvram.4 3.html create mode 100644 static/freebsd/man4/oce.4 3.html create mode 100644 static/freebsd/man4/ocs_fc.4 3.html create mode 100644 static/freebsd/man4/ofw_console.4 create mode 100644 static/freebsd/man4/ohci.4 4.html create mode 100644 static/freebsd/man4/openfirm.4 3.html create mode 100644 static/freebsd/man4/openzfs-2.4 create mode 100644 static/freebsd/man4/orm.4 4.html create mode 100644 static/freebsd/man4/ossl.4 4.html create mode 100644 static/freebsd/man4/otus.4 3.html create mode 100644 static/freebsd/man4/otusfw.4 4.html create mode 100644 static/freebsd/man4/ovpn.4 4.html create mode 100644 static/freebsd/man4/ow.4 4.html create mode 100644 static/freebsd/man4/ow_temp.4 3.html create mode 100644 static/freebsd/man4/owc.4 3.html create mode 100644 static/freebsd/man4/p.4 create mode 100644 static/freebsd/man4/p9fs.4 3.html create mode 100644 static/freebsd/man4/padlock.4 3.html create mode 100644 static/freebsd/man4/pae.4 create mode 100644 static/freebsd/man4/pass.4 3.html create mode 100644 static/freebsd/man4/pbio.4 create mode 100644 static/freebsd/man4/pca954x.4 3.html create mode 100644 static/freebsd/man4/pccbb.4 4.html create mode 100644 static/freebsd/man4/pcf.4 4.html create mode 100644 static/freebsd/man4/pcf8574.4 3.html create mode 100644 static/freebsd/man4/pcf8591.4 4.html create mode 100644 static/freebsd/man4/pchtherm.4 3.html create mode 100644 static/freebsd/man4/pci.4 3.html create mode 100644 static/freebsd/man4/pcib.4 3.html create mode 100644 static/freebsd/man4/pcm.4 3.html create mode 100644 static/freebsd/man4/pf.4 3.html create mode 100644 static/freebsd/man4/pflog.4 3.html create mode 100644 static/freebsd/man4/pflow.4 3.html create mode 100644 static/freebsd/man4/pfsync.4 3.html create mode 100644 static/freebsd/man4/pim.4 3.html create mode 100644 static/freebsd/man4/pms.4 3.html create mode 100644 static/freebsd/man4/pmu.4 create mode 100644 static/freebsd/man4/pnfs.4 create mode 100644 static/freebsd/man4/pnfsserver.4 create mode 100644 static/freebsd/man4/pnp.4 create mode 100644 static/freebsd/man4/pnpbios.4 create mode 100644 static/freebsd/man4/polling.4 3.html create mode 100644 static/freebsd/man4/powermac_nvram.4 create mode 100644 static/freebsd/man4/ppbus.4 3.html create mode 100644 static/freebsd/man4/ppc.4 3.html create mode 100644 static/freebsd/man4/ppi.4 4.html create mode 100644 static/freebsd/man4/procdesc.4 3.html create mode 100644 static/freebsd/man4/procfs.4 3.html create mode 100644 static/freebsd/man4/proto.4 3.html create mode 100644 static/freebsd/man4/ps4dshock.4 3.html create mode 100644 static/freebsd/man4/psm.4 3.html create mode 100644 static/freebsd/man4/pst.4 3.html create mode 100644 static/freebsd/man4/pt.4 3.html create mode 100644 static/freebsd/man4/ptnet.4 3.html create mode 100644 static/freebsd/man4/pts.4 3.html create mode 100644 static/freebsd/man4/pty.4 3.html create mode 100644 static/freebsd/man4/puc.4 4.html create mode 100644 static/freebsd/man4/pvscsi.4 3.html create mode 100644 static/freebsd/man4/pwmc.4 3.html create mode 100644 static/freebsd/man4/qat.4 3.html create mode 100644 static/freebsd/man4/qat_c2xxx.4 3.html create mode 100644 static/freebsd/man4/qlnxe.4 3.html create mode 100644 static/freebsd/man4/qlxgb.4 3.html create mode 100644 static/freebsd/man4/qlxgbe.4 3.html create mode 100644 static/freebsd/man4/qlxge.4 3.html create mode 100644 static/freebsd/man4/ral.4 3.html create mode 100644 static/freebsd/man4/random.4 3.html create mode 100644 static/freebsd/man4/rccgpio.4 4.html create mode 100644 static/freebsd/man4/rctl.4 3.html create mode 100644 static/freebsd/man4/re.4 3.html create mode 100644 static/freebsd/man4/return6.4 create mode 100644 static/freebsd/man4/return7.4 create mode 100644 static/freebsd/man4/rge.4 3.html create mode 100644 static/freebsd/man4/rgephy.4 3.html create mode 100644 static/freebsd/man4/rights.4 3.html create mode 100644 static/freebsd/man4/rk_gpio.4 create mode 100644 static/freebsd/man4/rk_grf.4 create mode 100644 static/freebsd/man4/rk_grf_gpio.4 create mode 100644 static/freebsd/man4/rk_i2c.4 create mode 100644 static/freebsd/man4/rk_pinctrl.4 create mode 100644 static/freebsd/man4/rl.4 3.html create mode 100644 static/freebsd/man4/rndtest.4 4.html create mode 100644 static/freebsd/man4/route.4 3.html create mode 100644 static/freebsd/man4/rsu.4 3.html create mode 100644 static/freebsd/man4/rsufw.4 4.html create mode 100644 static/freebsd/man4/rtnetlink.4 3.html create mode 100644 static/freebsd/man4/rtsx.4 3.html create mode 100644 static/freebsd/man4/rtw88.4 3.html create mode 100644 static/freebsd/man4/rtw89.4 3.html create mode 100644 static/freebsd/man4/rtwn.4 3.html create mode 100644 static/freebsd/man4/rtwn_pci.4 4.html create mode 100644 static/freebsd/man4/rtwn_usb.4 3.html create mode 100644 static/freebsd/man4/rtwnfw.4 3.html create mode 100644 static/freebsd/man4/rue.4 3.html create mode 100644 static/freebsd/man4/rum.4 3.html create mode 100644 static/freebsd/man4/run.4 3.html create mode 100644 static/freebsd/man4/runfw.4 4.html create mode 100644 static/freebsd/man4/sa.4 3.html create mode 100644 static/freebsd/man4/safe.4 3.html create mode 100644 static/freebsd/man4/safexcel.4 4.html create mode 100644 static/freebsd/man4/sbni.4 create mode 100644 static/freebsd/man4/sbp.4 3.html create mode 100644 static/freebsd/man4/sbp_targ.4 4.html create mode 100644 static/freebsd/man4/scc.4 4.html create mode 100644 static/freebsd/man4/sched_4bsd.4 3.html create mode 100644 static/freebsd/man4/sched_ule.4 4.html create mode 100644 static/freebsd/man4/screen.4 3.html create mode 100644 static/freebsd/man4/scsi.4 3.html create mode 100644 static/freebsd/man4/sctp.4 3.html create mode 100644 static/freebsd/man4/sdhci.4 3.html create mode 100644 static/freebsd/man4/sem.4 3.html create mode 100644 static/freebsd/man4/send.4 3.html create mode 100644 static/freebsd/man4/ses.4 3.html create mode 100644 static/freebsd/man4/sfxge.4 3.html create mode 100644 static/freebsd/man4/sg.4 4.html create mode 100644 static/freebsd/man4/sge.4 3.html create mode 100644 static/freebsd/man4/siba.4 3.html create mode 100644 static/freebsd/man4/siftr.4 3.html create mode 100644 static/freebsd/man4/siis.4 3.html create mode 100644 static/freebsd/man4/simplebus.4 4.html create mode 100644 static/freebsd/man4/sis.4 3.html create mode 100644 static/freebsd/man4/sk.4 3.html create mode 100644 static/freebsd/man4/smapi.4 create mode 100644 static/freebsd/man4/smartpqi.4 3.html create mode 100644 static/freebsd/man4/smb.4 3.html create mode 100644 static/freebsd/man4/smbfs.4 3.html create mode 100644 static/freebsd/man4/smbios.4 4.html create mode 100644 static/freebsd/man4/smbus.4 3.html create mode 100644 static/freebsd/man4/smp.4 3.html create mode 100644 static/freebsd/man4/smsc.4 4.html create mode 100644 static/freebsd/man4/smu.4 create mode 100644 static/freebsd/man4/snd_ai2s.4 create mode 100644 static/freebsd/man4/snd_als4000.4 4.html create mode 100644 static/freebsd/man4/snd_atiixp.4 3.html create mode 100644 static/freebsd/man4/snd_cmi.4 4.html create mode 100644 static/freebsd/man4/snd_cs4281.4 4.html create mode 100644 static/freebsd/man4/snd_csa.4 4.html create mode 100644 static/freebsd/man4/snd_davbus.4 create mode 100644 static/freebsd/man4/snd_dummy.4 4.html create mode 100644 static/freebsd/man4/snd_emu10k1.4 3.html create mode 100644 static/freebsd/man4/snd_emu10kx.4 3.html create mode 100644 static/freebsd/man4/snd_envy24.4 4.html create mode 100644 static/freebsd/man4/snd_envy24ht.4 4.html create mode 100644 static/freebsd/man4/snd_es137x.4 3.html create mode 100644 static/freebsd/man4/snd_fm801.4 4.html create mode 100644 static/freebsd/man4/snd_hda.4 3.html create mode 100644 static/freebsd/man4/snd_hdsp.4 3.html create mode 100644 static/freebsd/man4/snd_hdspe.4 3.html create mode 100644 static/freebsd/man4/snd_ich.4 4.html create mode 100644 static/freebsd/man4/snd_maestro3.4 3.html create mode 100644 static/freebsd/man4/snd_neomagic.4 4.html create mode 100644 static/freebsd/man4/snd_solo.4 4.html create mode 100644 static/freebsd/man4/snd_spicds.4 3.html create mode 100644 static/freebsd/man4/snd_t4dwave.4 3.html create mode 100644 static/freebsd/man4/snd_uaudio.4 3.html create mode 100644 static/freebsd/man4/snd_via8233.4 4.html create mode 100644 static/freebsd/man4/snd_via82c686.4 3.html create mode 100644 static/freebsd/man4/snd_vibes.4 4.html create mode 100644 static/freebsd/man4/sndstat.4 3.html create mode 100644 static/freebsd/man4/snp.4 3.html create mode 100644 static/freebsd/man4/spigen.4 3.html create mode 100644 static/freebsd/man4/spkr.4 3.html create mode 100644 static/freebsd/man4/spl.4 create mode 100644 static/freebsd/man4/splash.4 3.html create mode 100644 static/freebsd/man4/ste.4 3.html create mode 100644 static/freebsd/man4/stf.4 3.html create mode 100644 static/freebsd/man4/stge.4 3.html create mode 100644 static/freebsd/man4/sume.4 3.html create mode 100644 static/freebsd/man4/superio.4 3.html create mode 100644 static/freebsd/man4/sym.4 3.html create mode 100644 static/freebsd/man4/syncache.4 3.html create mode 100644 static/freebsd/man4/syncer.4 3.html create mode 100644 static/freebsd/man4/syscons.4 3.html create mode 100644 static/freebsd/man4/sysmouse.4 3.html create mode 100644 static/freebsd/man4/t.4 create mode 100644 static/freebsd/man4/tap.4 3.html create mode 100644 static/freebsd/man4/tarfs.4 3.html create mode 100644 static/freebsd/man4/targ.4 3.html create mode 100644 static/freebsd/man4/tcp.4 3.html create mode 100644 static/freebsd/man4/tcp_bbr.4 3.html create mode 100644 static/freebsd/man4/tcp_rack.4 3.html create mode 100644 static/freebsd/man4/tdfx.4 3.html create mode 100644 static/freebsd/man4/termios.4 3.html create mode 100644 static/freebsd/man4/textdump.4 3.html create mode 100644 static/freebsd/man4/thunderbolt.4 4.html create mode 100644 static/freebsd/man4/ti.4 3.html create mode 100644 static/freebsd/man4/ti_adc.4 create mode 100644 static/freebsd/man4/timecounters.4 3.html create mode 100644 static/freebsd/man4/tmpfs.4 3.html create mode 100644 static/freebsd/man4/tpm.4 4.html create mode 100644 static/freebsd/man4/tsec.4 create mode 100644 static/freebsd/man4/tslog.4 3.html create mode 100644 static/freebsd/man4/tty.4 3.html create mode 100644 static/freebsd/man4/tun.4 3.html create mode 100644 static/freebsd/man4/tws.4 3.html create mode 100644 static/freebsd/man4/u2f.4 4.html create mode 100644 static/freebsd/man4/u3g.4 3.html create mode 100644 static/freebsd/man4/uark.4 3.html create mode 100644 static/freebsd/man4/uart.4 3.html create mode 100644 static/freebsd/man4/uath.4 3.html create mode 100644 static/freebsd/man4/ubsa.4 4.html create mode 100644 static/freebsd/man4/ubser.4 4.html create mode 100644 static/freebsd/man4/ubtbcmfw.4 3.html create mode 100644 static/freebsd/man4/uchcom.4 4.html create mode 100644 static/freebsd/man4/ucom.4 3.html create mode 100644 static/freebsd/man4/ucycom.4 4.html create mode 100644 static/freebsd/man4/udav.4 4.html create mode 100644 static/freebsd/man4/udbc.4 3.html create mode 100644 static/freebsd/man4/udbp.4 3.html create mode 100644 static/freebsd/man4/udl.4 4.html create mode 100644 static/freebsd/man4/udp.4 3.html create mode 100644 static/freebsd/man4/udplite.4 3.html create mode 100644 static/freebsd/man4/uep.4 3.html create mode 100644 static/freebsd/man4/ufintek.4 4.html create mode 100644 static/freebsd/man4/ufoma.4 3.html create mode 100644 static/freebsd/man4/ufshci.4 3.html create mode 100644 static/freebsd/man4/uftdi.4 4.html create mode 100644 static/freebsd/man4/ugen.4 3.html create mode 100644 static/freebsd/man4/ugold.4 3.html create mode 100644 static/freebsd/man4/uhci.4 4.html create mode 100644 static/freebsd/man4/uhid.4 3.html create mode 100644 static/freebsd/man4/uhso.4 3.html create mode 100644 static/freebsd/man4/uipaq.4 4.html create mode 100644 static/freebsd/man4/ukbd.4 3.html create mode 100644 static/freebsd/man4/uled.4 4.html create mode 100644 static/freebsd/man4/ulpt.4 3.html create mode 100644 static/freebsd/man4/umass.4 3.html create mode 100644 static/freebsd/man4/umb.4 3.html create mode 100644 static/freebsd/man4/umcs.4 4.html create mode 100644 static/freebsd/man4/umct.4 4.html create mode 100644 static/freebsd/man4/umodem.4 3.html create mode 100644 static/freebsd/man4/umoscom.4 4.html create mode 100644 static/freebsd/man4/ums.4 4.html create mode 100644 static/freebsd/man4/unionfs.4 3.html create mode 100644 static/freebsd/man4/unix.4 3.html create mode 100644 static/freebsd/man4/upgt.4 3.html create mode 100644 static/freebsd/man4/uplcom.4 3.html create mode 100644 static/freebsd/man4/ural.4 3.html create mode 100644 static/freebsd/man4/ure.4 3.html create mode 100644 static/freebsd/man4/urio.4 4.html create mode 100644 static/freebsd/man4/urndis.4 3.html create mode 100644 static/freebsd/man4/urtw.4 3.html create mode 100644 static/freebsd/man4/usb.4 4.html create mode 100644 static/freebsd/man4/usb_quirk.4 3.html create mode 100644 static/freebsd/man4/usb_template.4 3.html create mode 100644 static/freebsd/man4/usbhid.4 3.html create mode 100644 static/freebsd/man4/usfs.4 3.html create mode 100644 static/freebsd/man4/uslcom.4 3.html create mode 100644 static/freebsd/man4/uvisor.4 4.html create mode 100644 static/freebsd/man4/uvscom.4 4.html create mode 100644 static/freebsd/man4/vale.4 3.html create mode 100644 static/freebsd/man4/veriexec.4 4.html create mode 100644 static/freebsd/man4/vga.4 3.html create mode 100644 static/freebsd/man4/vge.4 3.html create mode 100644 static/freebsd/man4/viapm.4 3.html create mode 100644 static/freebsd/man4/viawd.4 3.html create mode 100644 static/freebsd/man4/virtio.4 3.html create mode 100644 static/freebsd/man4/virtio_balloon.4 4.html create mode 100644 static/freebsd/man4/virtio_blk.4 3.html create mode 100644 static/freebsd/man4/virtio_console.4 4.html create mode 100644 static/freebsd/man4/virtio_gpu.4 4.html create mode 100644 static/freebsd/man4/virtio_random.4 4.html create mode 100644 static/freebsd/man4/virtio_scsi.4 4.html create mode 100644 static/freebsd/man4/vkbd.4 3.html create mode 100644 static/freebsd/man4/vlan.4 3.html create mode 100644 static/freebsd/man4/vmci.4 3.html create mode 100644 static/freebsd/man4/vmd.4 4.html create mode 100644 static/freebsd/man4/vmgenc.4 3.html create mode 100644 static/freebsd/man4/vmm.4 3.html create mode 100644 static/freebsd/man4/vmx.4 3.html create mode 100644 static/freebsd/man4/vpd.4 create mode 100644 static/freebsd/man4/vr.4 3.html create mode 100644 static/freebsd/man4/vt.4 3.html create mode 100644 static/freebsd/man4/vte.4 3.html create mode 100644 static/freebsd/man4/vtnet.4 3.html create mode 100644 static/freebsd/man4/vxlan.4 3.html create mode 100644 static/freebsd/man4/watchdog.4 3.html create mode 100644 static/freebsd/man4/wbwd.4 3.html create mode 100644 static/freebsd/man4/wdatwd.4 3.html create mode 100644 static/freebsd/man4/wg.4 3.html create mode 100644 static/freebsd/man4/witness.4 3.html create mode 100644 static/freebsd/man4/wlan.4 3.html create mode 100644 static/freebsd/man4/wlan_acl.4 4.html create mode 100644 static/freebsd/man4/wlan_amrr.4 4.html create mode 100644 static/freebsd/man4/wlan_ccmp.4 4.html create mode 100644 static/freebsd/man4/wlan_gcmp.4 3.html create mode 100644 static/freebsd/man4/wlan_tkip.4 4.html create mode 100644 static/freebsd/man4/wlan_wep.4 3.html create mode 100644 static/freebsd/man4/wlan_xauth.4 3.html create mode 100644 static/freebsd/man4/wmt.4 4.html create mode 100644 static/freebsd/man4/wpi.4 3.html create mode 100644 static/freebsd/man4/wsp.4 3.html create mode 100644 static/freebsd/man4/xb360gp.4 4.html create mode 100644 static/freebsd/man4/xdma.4 3.html create mode 100644 static/freebsd/man4/xen.4 3.html create mode 100644 static/freebsd/man4/xhci.4 3.html create mode 100644 static/freebsd/man4/xl.4 3.html create mode 100644 static/freebsd/man4/xnb.4 3.html create mode 100644 static/freebsd/man4/xpt.4 4.html create mode 100644 static/freebsd/man4/zero.4 3.html create mode 100644 static/freebsd/man4/zfs.4 create mode 100644 static/freebsd/man4/zol-0.6.4 create mode 100644 static/freebsd/man4/zyd.4 4.html create mode 100644 static/freebsd/man5/1.5 create mode 100644 static/freebsd/man5/2.5 create mode 100644 static/freebsd/man5/4.5 create mode 100644 static/freebsd/man5/5.5 create mode 100644 static/freebsd/man5/6.5 create mode 100644 static/freebsd/man5/7.5 create mode 100644 static/freebsd/man5/8.5 create mode 100644 static/freebsd/man5/9.5 create mode 100644 static/freebsd/man5/a.out.5 3.html create mode 100644 static/freebsd/man5/acct.5 3.html create mode 100644 static/freebsd/man5/adduser.conf.5 create mode 100644 static/freebsd/man5/aliases.5 create mode 100644 static/freebsd/man5/ar.5 3.html create mode 100644 static/freebsd/man5/audit.log.5 create mode 100644 static/freebsd/man5/audit_class.5 create mode 100644 static/freebsd/man5/audit_control.5 create mode 100644 static/freebsd/man5/audit_event.5 create mode 100644 static/freebsd/man5/audit_user.5 create mode 100644 static/freebsd/man5/audit_warn.5 create mode 100644 static/freebsd/man5/auditdistd.conf.5 create mode 100644 static/freebsd/man5/auto_master.5 create mode 100644 static/freebsd/man5/bhyve_config.5 create mode 100644 static/freebsd/man5/big5.5 create mode 100644 static/freebsd/man5/blacklistd.conf.5 create mode 100644 static/freebsd/man5/blocklistd.conf.5 create mode 100644 static/freebsd/man5/bluetooth.device.conf.5 3.html create mode 100644 static/freebsd/man5/bluetooth.hosts.5 4.html create mode 100644 static/freebsd/man5/bluetooth.protocols.5 4.html create mode 100644 static/freebsd/man5/boot.config.5 3.html create mode 100644 static/freebsd/man5/bootparams.5 create mode 100644 static/freebsd/man5/bootptab.5 create mode 100644 static/freebsd/man5/config.5 create mode 100644 static/freebsd/man5/core.5 3.html create mode 100644 static/freebsd/man5/cpio.5 create mode 100644 static/freebsd/man5/crontab.5 create mode 100644 static/freebsd/man5/ctf.5 create mode 100644 static/freebsd/man5/ctl.conf.5 create mode 100644 static/freebsd/man5/devd.conf.5 create mode 100644 static/freebsd/man5/devfs.conf.5 3.html create mode 100644 static/freebsd/man5/devfs.rules.5 3.html create mode 100644 static/freebsd/man5/device.hints.5 3.html create mode 100644 static/freebsd/man5/dhclient.conf.5 create mode 100644 static/freebsd/man5/dhclient.leases.5 create mode 100644 static/freebsd/man5/dhcp-options.5 create mode 100644 static/freebsd/man5/dir.5 3.html create mode 100644 static/freebsd/man5/disktab.5 3.html create mode 100644 static/freebsd/man5/dot.k5identity.5 create mode 100644 static/freebsd/man5/dot.k5login.5 create mode 100644 static/freebsd/man5/editrc.5 create mode 100644 static/freebsd/man5/elf.5 3.html create mode 100644 static/freebsd/man5/ethers.5 4.html create mode 100644 static/freebsd/man5/euc.5 create mode 100644 static/freebsd/man5/eui64.5 4.html create mode 100644 static/freebsd/man5/example.5 create mode 100644 static/freebsd/man5/expected.status.5 create mode 100644 static/freebsd/man5/expected.stderr.5 create mode 100644 static/freebsd/man5/expected.stdout.5 create mode 100644 static/freebsd/man5/exports.5 create mode 100644 static/freebsd/man5/fbtab.5 4.html create mode 100644 static/freebsd/man5/finger.conf.5 create mode 100644 static/freebsd/man5/fips_config.5 create mode 100644 static/freebsd/man5/forward.5 4.html create mode 100644 static/freebsd/man5/freebsd-update.conf.5 3.html create mode 100644 static/freebsd/man5/fs.5 3.html create mode 100644 static/freebsd/man5/fstab.5 3.html create mode 100644 static/freebsd/man5/ftpusers.5 create mode 100644 static/freebsd/man5/gb18030.5 create mode 100644 static/freebsd/man5/gb2312.5 create mode 100644 static/freebsd/man5/gbk.5 create mode 100644 static/freebsd/man5/gettytab.5 create mode 100644 static/freebsd/man5/group.5 3.html create mode 100644 static/freebsd/man5/hast.conf.5 create mode 100644 static/freebsd/man5/hcsecd.conf.5 create mode 100644 static/freebsd/man5/hesiod.conf.5 4.html create mode 100644 static/freebsd/man5/hostapd.conf.5 create mode 100644 static/freebsd/man5/hosts.5 3.html create mode 100644 static/freebsd/man5/hosts.equiv.5 3.html create mode 100644 static/freebsd/man5/hosts.lpd.5 4.html create mode 100644 static/freebsd/man5/hosts_access.5 create mode 100644 static/freebsd/man5/hosts_options.5 create mode 100644 static/freebsd/man5/intro.5 4.html create mode 100644 static/freebsd/man5/iovctl.conf.5 create mode 100644 static/freebsd/man5/ipf.5 create mode 100644 static/freebsd/man5/ipfilter.5 create mode 100644 static/freebsd/man5/ipmon.5 create mode 100644 static/freebsd/man5/ipnat.5 create mode 100644 static/freebsd/man5/ippool.5 create mode 100644 static/freebsd/man5/ipscan.5 create mode 100644 static/freebsd/man5/ipsend.5 create mode 100644 static/freebsd/man5/ipv6.5 create mode 100644 static/freebsd/man5/iscsi.conf.5 create mode 100644 static/freebsd/man5/jail.conf.5 create mode 100644 static/freebsd/man5/kbdmap.5 create mode 100644 static/freebsd/man5/krb5.conf.5 create mode 100644 static/freebsd/man5/libarchive-formats.5 create mode 100644 static/freebsd/man5/libmap.conf.5 3.html create mode 100644 static/freebsd/man5/link.5 3.html create mode 100644 static/freebsd/man5/loader.conf.5 create mode 100644 static/freebsd/man5/loader.conf.lua.5 create mode 100644 static/freebsd/man5/login.access.5 create mode 100644 static/freebsd/man5/login.conf.5 create mode 100644 static/freebsd/man5/mac.conf.5 create mode 100644 static/freebsd/man5/mailer.conf.5 3.html create mode 100644 static/freebsd/man5/make.conf.5 3.html create mode 100644 static/freebsd/man5/man.conf.5 create mode 100644 static/freebsd/man5/mandoc.db.5 create mode 100644 static/freebsd/man5/mech.5 create mode 100644 static/freebsd/man5/moduli.5 3.html create mode 100644 static/freebsd/man5/motd.5 4.html create mode 100644 static/freebsd/man5/mount.conf.5 3.html create mode 100644 static/freebsd/man5/moused.conf.5 create mode 100644 static/freebsd/man5/mskanji.5 create mode 100644 static/freebsd/man5/mtree.5 create mode 100644 static/freebsd/man5/netconfig.5 create mode 100644 static/freebsd/man5/netgroup.5 create mode 100644 static/freebsd/man5/netid.5 create mode 100644 static/freebsd/man5/networks.5 4.html create mode 100644 static/freebsd/man5/newsyslog.conf.5 create mode 100644 static/freebsd/man5/nologin.5 create mode 100644 static/freebsd/man5/nscd.conf.5 create mode 100644 static/freebsd/man5/nsmb.conf.5 3.html create mode 100644 static/freebsd/man5/nsswitch.conf.5 3.html create mode 100644 static/freebsd/man5/os-release.5 3.html create mode 100644 static/freebsd/man5/p.5 create mode 100644 static/freebsd/man5/pam.conf.5 create mode 100644 static/freebsd/man5/passwd.5 3.html create mode 100644 static/freebsd/man5/pbm.5 3.html create mode 100644 static/freebsd/man5/pc.5 create mode 100644 static/freebsd/man5/periodic.conf.5 3.html create mode 100644 static/freebsd/man5/pf.conf.5 3.html create mode 100644 static/freebsd/man5/pf.os.5 3.html create mode 100644 static/freebsd/man5/phones.5 4.html create mode 100644 static/freebsd/man5/pkgconf-personality.5 create mode 100644 static/freebsd/man5/portindex.5 3.html create mode 100644 static/freebsd/man5/printcap.5 create mode 100644 static/freebsd/man5/profile.5 create mode 100644 static/freebsd/man5/protocols.5 4.html create mode 100644 static/freebsd/man5/publickey.5 create mode 100644 static/freebsd/man5/pw.conf.5 create mode 100644 static/freebsd/man5/quota.user.5 3.html create mode 100644 static/freebsd/man5/radius.conf.5 create mode 100644 static/freebsd/man5/rc.conf.5 3.html create mode 100644 static/freebsd/man5/rctl.conf.5 4.html create mode 100644 static/freebsd/man5/regdomain.5 4.html create mode 100644 static/freebsd/man5/remote.5 3.html create mode 100644 static/freebsd/man5/resolver.5 3.html create mode 100644 static/freebsd/man5/rpc.5 create mode 100644 static/freebsd/man5/rrenumd.conf.5 create mode 100644 static/freebsd/man5/rtadvd.conf.5 create mode 100644 static/freebsd/man5/scr_dump.5 create mode 100644 static/freebsd/man5/services.5 3.html create mode 100644 static/freebsd/man5/shells.5 4.html create mode 100644 static/freebsd/man5/src.conf.5 3.html create mode 100644 static/freebsd/man5/ssh_config.5 create mode 100644 static/freebsd/man5/sshd_config.5 create mode 100644 static/freebsd/man5/stab.5 3.html create mode 100644 static/freebsd/man5/stablerestart.5 create mode 100644 static/freebsd/man5/style.Makefile.5 3.html create mode 100644 static/freebsd/man5/style.mdoc.5 3.html create mode 100644 static/freebsd/man5/sysctl.conf.5 4.html create mode 100644 static/freebsd/man5/syslog.conf.5 create mode 100644 static/freebsd/man5/tacplus.conf.5 create mode 100644 static/freebsd/man5/tar.5 create mode 100644 static/freebsd/man5/term.5 create mode 100644 static/freebsd/man5/termcap.5 create mode 100644 static/freebsd/man5/ttys.5 create mode 100644 static/freebsd/man5/tzfile.5 create mode 100644 static/freebsd/man5/unbound.conf.5 create mode 100644 static/freebsd/man5/user_caps.5 create mode 100644 static/freebsd/man5/utf8.5 create mode 100644 static/freebsd/man5/uuencode.format.5 create mode 100644 static/freebsd/man5/vdev_id.conf.5 create mode 100644 static/freebsd/man5/vgrindefs.5 create mode 100644 static/freebsd/man5/wpa_supplicant.conf.5 create mode 100644 static/freebsd/man5/x509v3_config.5 create mode 100644 static/freebsd/man5/xo_format.5 create mode 100644 static/freebsd/man5/ypldap.conf.5 create mode 100644 static/freebsd/man5/zol-0.6.5 create mode 100644 static/freebsd/man6/1.6 create mode 100644 static/freebsd/man6/2.6 create mode 100644 static/freebsd/man6/4.6 create mode 100644 static/freebsd/man6/5.6 create mode 100644 static/freebsd/man6/6.6 create mode 100644 static/freebsd/man6/7.6 create mode 100644 static/freebsd/man6/8.6 create mode 100644 static/freebsd/man6/9.6 create mode 100644 static/freebsd/man6/banner.6 create mode 100644 static/freebsd/man6/caesar.6 create mode 100644 static/freebsd/man6/example.6 create mode 100644 static/freebsd/man6/expected.status.6 create mode 100644 static/freebsd/man6/expected.stderr.6 create mode 100644 static/freebsd/man6/expected.stdout.6 create mode 100644 static/freebsd/man6/factor.6 create mode 100644 static/freebsd/man6/fortune.6 create mode 100644 static/freebsd/man6/grdc.6 create mode 100644 static/freebsd/man6/intro.6 4.html create mode 100644 static/freebsd/man6/ipv6.6 create mode 100644 static/freebsd/man6/morse.6 create mode 100644 static/freebsd/man6/number.6 create mode 100644 static/freebsd/man6/p.6 create mode 100644 static/freebsd/man6/pom.6 create mode 100644 static/freebsd/man6/random.6 create mode 100644 static/freebsd/man6/t.6 create mode 100644 static/freebsd/man7/1.7 create mode 100644 static/freebsd/man7/2.7 create mode 100644 static/freebsd/man7/4.7 create mode 100644 static/freebsd/man7/5.7 create mode 100644 static/freebsd/man7/7.7 create mode 100644 static/freebsd/man7/8.7 create mode 100644 static/freebsd/man7/9.7 create mode 100644 static/freebsd/man7/EVP_ASYM_CIPHER-RSA.7 create mode 100644 static/freebsd/man7/EVP_ASYM_CIPHER-SM2.7 create mode 100644 static/freebsd/man7/EVP_CIPHER-AES.7 create mode 100644 static/freebsd/man7/EVP_CIPHER-ARIA.7 create mode 100644 static/freebsd/man7/EVP_CIPHER-BLOWFISH.7 create mode 100644 static/freebsd/man7/EVP_CIPHER-CAMELLIA.7 create mode 100644 static/freebsd/man7/EVP_CIPHER-CAST.7 create mode 100644 static/freebsd/man7/EVP_CIPHER-CHACHA.7 create mode 100644 static/freebsd/man7/EVP_CIPHER-DES.7 create mode 100644 static/freebsd/man7/EVP_CIPHER-IDEA.7 create mode 100644 static/freebsd/man7/EVP_CIPHER-NULL.7 create mode 100644 static/freebsd/man7/EVP_CIPHER-RC2.7 create mode 100644 static/freebsd/man7/EVP_CIPHER-RC4.7 create mode 100644 static/freebsd/man7/EVP_CIPHER-RC5.7 create mode 100644 static/freebsd/man7/EVP_CIPHER-SEED.7 create mode 100644 static/freebsd/man7/EVP_CIPHER-SM4.7 create mode 100644 static/freebsd/man7/EVP_KDF-ARGON2.7 create mode 100644 static/freebsd/man7/EVP_KDF-HKDF.7 create mode 100644 static/freebsd/man7/EVP_KDF-HMAC-DRBG.7 create mode 100644 static/freebsd/man7/EVP_KDF-KB.7 create mode 100644 static/freebsd/man7/EVP_KDF-KRB5KDF.7 create mode 100644 static/freebsd/man7/EVP_KDF-PBKDF1.7 create mode 100644 static/freebsd/man7/EVP_KDF-PBKDF2.7 create mode 100644 static/freebsd/man7/EVP_KDF-PKCS12KDF.7 create mode 100644 static/freebsd/man7/EVP_KDF-PVKKDF.7 create mode 100644 static/freebsd/man7/EVP_KDF-SCRYPT.7 create mode 100644 static/freebsd/man7/EVP_KDF-SS.7 create mode 100644 static/freebsd/man7/EVP_KDF-SSHKDF.7 create mode 100644 static/freebsd/man7/EVP_KDF-TLS13_KDF.7 create mode 100644 static/freebsd/man7/EVP_KDF-TLS1_PRF.7 create mode 100644 static/freebsd/man7/EVP_KDF-X942-ASN1.7 create mode 100644 static/freebsd/man7/EVP_KDF-X942-CONCAT.7 create mode 100644 static/freebsd/man7/EVP_KDF-X963.7 create mode 100644 static/freebsd/man7/EVP_KEM-EC.7 create mode 100644 static/freebsd/man7/EVP_KEM-ML-KEM.7 create mode 100644 static/freebsd/man7/EVP_KEM-RSA.7 create mode 100644 static/freebsd/man7/EVP_KEM-X25519.7 create mode 100644 static/freebsd/man7/EVP_KEYEXCH-DH.7 create mode 100644 static/freebsd/man7/EVP_KEYEXCH-ECDH.7 create mode 100644 static/freebsd/man7/EVP_KEYEXCH-X25519.7 create mode 100644 static/freebsd/man7/EVP_MAC-BLAKE2.7 create mode 100644 static/freebsd/man7/EVP_MAC-CMAC.7 create mode 100644 static/freebsd/man7/EVP_MAC-GMAC.7 create mode 100644 static/freebsd/man7/EVP_MAC-HMAC.7 create mode 100644 static/freebsd/man7/EVP_MAC-KMAC.7 create mode 100644 static/freebsd/man7/EVP_MAC-Poly1305.7 create mode 100644 static/freebsd/man7/EVP_MAC-Siphash.7 create mode 100644 static/freebsd/man7/EVP_MD-BLAKE2.7 create mode 100644 static/freebsd/man7/EVP_MD-KECCAK.7 create mode 100644 static/freebsd/man7/EVP_MD-MD2.7 create mode 100644 static/freebsd/man7/EVP_MD-MD4.7 create mode 100644 static/freebsd/man7/EVP_MD-MD5-SHA1.7 create mode 100644 static/freebsd/man7/EVP_MD-MD5.7 create mode 100644 static/freebsd/man7/EVP_MD-MDC2.7 create mode 100644 static/freebsd/man7/EVP_MD-NULL.7 create mode 100644 static/freebsd/man7/EVP_MD-RIPEMD160.7 create mode 100644 static/freebsd/man7/EVP_MD-SHA1.7 create mode 100644 static/freebsd/man7/EVP_MD-SHA2.7 create mode 100644 static/freebsd/man7/EVP_MD-SHA3.7 create mode 100644 static/freebsd/man7/EVP_MD-SHAKE.7 create mode 100644 static/freebsd/man7/EVP_MD-SM3.7 create mode 100644 static/freebsd/man7/EVP_MD-WHIRLPOOL.7 create mode 100644 static/freebsd/man7/EVP_MD-common.7 create mode 100644 static/freebsd/man7/EVP_PKEY-DH.7 create mode 100644 static/freebsd/man7/EVP_PKEY-DSA.7 create mode 100644 static/freebsd/man7/EVP_PKEY-EC.7 create mode 100644 static/freebsd/man7/EVP_PKEY-FFC.7 create mode 100644 static/freebsd/man7/EVP_PKEY-HMAC.7 create mode 100644 static/freebsd/man7/EVP_PKEY-ML-DSA.7 create mode 100644 static/freebsd/man7/EVP_PKEY-ML-KEM.7 create mode 100644 static/freebsd/man7/EVP_PKEY-RSA.7 create mode 100644 static/freebsd/man7/EVP_PKEY-SLH-DSA.7 create mode 100644 static/freebsd/man7/EVP_PKEY-SM2.7 create mode 100644 static/freebsd/man7/EVP_PKEY-X25519.7 create mode 100644 static/freebsd/man7/EVP_RAND-CRNG-TEST.7 create mode 100644 static/freebsd/man7/EVP_RAND-CTR-DRBG.7 create mode 100644 static/freebsd/man7/EVP_RAND-HASH-DRBG.7 create mode 100644 static/freebsd/man7/EVP_RAND-HMAC-DRBG.7 create mode 100644 static/freebsd/man7/EVP_RAND-JITTER.7 create mode 100644 static/freebsd/man7/EVP_RAND-SEED-SRC.7 create mode 100644 static/freebsd/man7/EVP_RAND-TEST-RAND.7 create mode 100644 static/freebsd/man7/EVP_RAND.7 create mode 100644 static/freebsd/man7/EVP_SIGNATURE-DSA.7 create mode 100644 static/freebsd/man7/EVP_SIGNATURE-ECDSA.7 create mode 100644 static/freebsd/man7/EVP_SIGNATURE-ED25519.7 create mode 100644 static/freebsd/man7/EVP_SIGNATURE-HMAC.7 create mode 100644 static/freebsd/man7/EVP_SIGNATURE-ML-DSA.7 create mode 100644 static/freebsd/man7/EVP_SIGNATURE-RSA.7 create mode 100644 static/freebsd/man7/EVP_SIGNATURE-SLH-DSA.7 create mode 100644 static/freebsd/man7/OSSL_PROVIDER-FIPS.7 create mode 100644 static/freebsd/man7/OSSL_PROVIDER-base.7 create mode 100644 static/freebsd/man7/OSSL_PROVIDER-default.7 create mode 100644 static/freebsd/man7/OSSL_PROVIDER-legacy.7 create mode 100644 static/freebsd/man7/OSSL_PROVIDER-null.7 create mode 100644 static/freebsd/man7/OSSL_STORE-winstore.7 create mode 100644 static/freebsd/man7/RAND.7 create mode 100644 static/freebsd/man7/RSA-PSS.7 create mode 100644 static/freebsd/man7/X25519.7 create mode 100644 static/freebsd/man7/alpine-3.7 create mode 100644 static/freebsd/man7/arch.7 3.html create mode 100644 static/freebsd/man7/ascii.7 3.html create mode 100644 static/freebsd/man7/bio.7 create mode 100644 static/freebsd/man7/bsd.snmpmod.mk.7 3.html create mode 100644 static/freebsd/man7/build.7 3.html create mode 100644 static/freebsd/man7/c.7 3.html create mode 100644 static/freebsd/man7/clocks.7 3.html create mode 100644 static/freebsd/man7/crypto.7 3.html create mode 100644 static/freebsd/man7/ct.7 create mode 100644 static/freebsd/man7/d.7 3.html create mode 100644 static/freebsd/man7/des_modes.7 create mode 100644 static/freebsd/man7/development.7 3.html create mode 100644 static/freebsd/man7/dracut.zfs.7 create mode 100644 static/freebsd/man7/editline.7 create mode 100644 static/freebsd/man7/environ.7 3.html create mode 100644 static/freebsd/man7/eqn.7 create mode 100644 static/freebsd/man7/eval8.7 create mode 100644 static/freebsd/man7/evp.7 create mode 100644 static/freebsd/man7/example.7 create mode 100644 static/freebsd/man7/expected.status.7 create mode 100644 static/freebsd/man7/expected.stderr.7 create mode 100644 static/freebsd/man7/expected.stdout.7 create mode 100644 static/freebsd/man7/fips_module.7 create mode 100644 static/freebsd/man7/firewall.7 3.html create mode 100644 static/freebsd/man7/freebsd-base.7 3.html create mode 100644 static/freebsd/man7/growfs.7 3.html create mode 100644 static/freebsd/man7/hier.7 3.html create mode 100644 static/freebsd/man7/hostname.7 3.html create mode 100644 static/freebsd/man7/intro.7 4.html create mode 100644 static/freebsd/man7/libxo-csv.7 create mode 100644 static/freebsd/man7/life_cycle-cipher.7 create mode 100644 static/freebsd/man7/life_cycle-digest.7 create mode 100644 static/freebsd/man7/life_cycle-kdf.7 create mode 100644 static/freebsd/man7/life_cycle-mac.7 create mode 100644 static/freebsd/man7/life_cycle-pkey.7 create mode 100644 static/freebsd/man7/life_cycle-rand.7 create mode 100644 static/freebsd/man7/maclabel.7 3.html create mode 100644 static/freebsd/man7/man.7 create mode 100644 static/freebsd/man7/mandoc_char.7 create mode 100644 static/freebsd/man7/mdoc.7 create mode 100644 static/freebsd/man7/mitigations.7 3.html create mode 100644 static/freebsd/man7/mlx5dv.7 create mode 100644 static/freebsd/man7/named_attribute.7 3.html create mode 100644 static/freebsd/man7/networking.7 4.html create mode 100644 static/freebsd/man7/nuageinit.7 create mode 100644 static/freebsd/man7/openssl-core.h.7 create mode 100644 static/freebsd/man7/openssl-core_dispatch.h.7 create mode 100644 static/freebsd/man7/openssl-core_names.h.7 create mode 100644 static/freebsd/man7/openssl-env.7 create mode 100644 static/freebsd/man7/openssl-glossary.7 create mode 100644 static/freebsd/man7/openssl-qlog.7 create mode 100644 static/freebsd/man7/openssl-quic-concurrency.7 create mode 100644 static/freebsd/man7/openssl-quic.7 create mode 100644 static/freebsd/man7/openssl-threads.7 create mode 100644 static/freebsd/man7/openssl_user_macros.7 create mode 100644 static/freebsd/man7/operator.7 4.html create mode 100644 static/freebsd/man7/orders.7 3.html create mode 100644 static/freebsd/man7/ossl-guide-introduction.7 create mode 100644 static/freebsd/man7/ossl-guide-libcrypto-introduction.7 create mode 100644 static/freebsd/man7/ossl-guide-libraries-introduction.7 create mode 100644 static/freebsd/man7/ossl-guide-libssl-introduction.7 create mode 100644 static/freebsd/man7/ossl-guide-migration.7 create mode 100644 static/freebsd/man7/ossl-guide-quic-client-block.7 create mode 100644 static/freebsd/man7/ossl-guide-quic-client-non-block.7 create mode 100644 static/freebsd/man7/ossl-guide-quic-introduction.7 create mode 100644 static/freebsd/man7/ossl-guide-quic-multi-stream.7 create mode 100644 static/freebsd/man7/ossl-guide-quic-server-block.7 create mode 100644 static/freebsd/man7/ossl-guide-quic-server-non-block.7 create mode 100644 static/freebsd/man7/ossl-guide-tls-client-block.7 create mode 100644 static/freebsd/man7/ossl-guide-tls-client-non-block.7 create mode 100644 static/freebsd/man7/ossl-guide-tls-introduction.7 create mode 100644 static/freebsd/man7/ossl-guide-tls-server-block.7 create mode 100644 static/freebsd/man7/ossl_store-file.7 create mode 100644 static/freebsd/man7/ossl_store.7 create mode 100644 static/freebsd/man7/p.7 create mode 100644 static/freebsd/man7/passphrase-encoding.7 create mode 100644 static/freebsd/man7/pkg.7 create mode 100644 static/freebsd/man7/pkg.m4.7 create mode 100644 static/freebsd/man7/ports.7 3.html create mode 100644 static/freebsd/man7/property.7 create mode 100644 static/freebsd/man7/provider-asym_cipher.7 create mode 100644 static/freebsd/man7/provider-base.7 create mode 100644 static/freebsd/man7/provider-cipher.7 create mode 100644 static/freebsd/man7/provider-decoder.7 create mode 100644 static/freebsd/man7/provider-digest.7 create mode 100644 static/freebsd/man7/provider-encoder.7 create mode 100644 static/freebsd/man7/provider-kdf.7 create mode 100644 static/freebsd/man7/provider-kem.7 create mode 100644 static/freebsd/man7/provider-keyexch.7 create mode 100644 static/freebsd/man7/provider-keymgmt.7 create mode 100644 static/freebsd/man7/provider-mac.7 create mode 100644 static/freebsd/man7/provider-object.7 create mode 100644 static/freebsd/man7/provider-rand.7 create mode 100644 static/freebsd/man7/provider-signature.7 create mode 100644 static/freebsd/man7/provider-skeymgmt.7 create mode 100644 static/freebsd/man7/provider-storemgmt.7 create mode 100644 static/freebsd/man7/provider.7 create mode 100644 static/freebsd/man7/proxy-certificates.7 create mode 100644 static/freebsd/man7/rdma_cm.7 create mode 100644 static/freebsd/man7/re_format.7 create mode 100644 static/freebsd/man7/release.7 3.html create mode 100644 static/freebsd/man7/roff.7 create mode 100644 static/freebsd/man7/sdoc.7 3.html create mode 100644 static/freebsd/man7/security.7 3.html create mode 100644 static/freebsd/man7/simd.7 4.html create mode 100644 static/freebsd/man7/sizeof.7 3.html create mode 100644 static/freebsd/man7/sprog.7 3.html create mode 100644 static/freebsd/man7/stats.7 4.html create mode 100644 static/freebsd/man7/stdint.7 3.html create mode 100644 static/freebsd/man7/sticky.7 4.html create mode 100644 static/freebsd/man7/symlink.7 create mode 100644 static/freebsd/man7/tbl.7 create mode 100644 static/freebsd/man7/term.7 create mode 100644 static/freebsd/man7/tests.7 3.html create mode 100644 static/freebsd/man7/tracing.7 3.html create mode 100644 static/freebsd/man7/tuning.7 3.html create mode 100644 static/freebsd/man7/vdevprops.7 create mode 100644 static/freebsd/man7/x509.7 create mode 100644 static/freebsd/man7/xo_options.7 create mode 100644 static/freebsd/man7/zfsconcepts.7 create mode 100644 static/freebsd/man7/zfsprops.7 create mode 100644 static/freebsd/man7/zol-0.7 create mode 100644 static/freebsd/man7/zpool-features.7 create mode 100644 static/freebsd/man7/zpoolconcepts.7 create mode 100644 static/freebsd/man7/zpoolprops.7 create mode 100644 static/freebsd/man8/1.8 create mode 100644 static/freebsd/man8/2.8 create mode 100644 static/freebsd/man8/4.8 create mode 100644 static/freebsd/man8/5.8 create mode 100644 static/freebsd/man8/7.8 create mode 100644 static/freebsd/man8/8.8 create mode 100644 static/freebsd/man8/9.8 create mode 100644 static/freebsd/man8/ac.8 create mode 100644 static/freebsd/man8/accton.8 create mode 100644 static/freebsd/man8/acpiconf.8 create mode 100644 static/freebsd/man8/acpidb.8 create mode 100644 static/freebsd/man8/acpidump.8 create mode 100644 static/freebsd/man8/adduser.8 create mode 100644 static/freebsd/man8/adjkerntz.8 create mode 100644 static/freebsd/man8/apm.8 create mode 100644 static/freebsd/man8/apmd.8 create mode 100644 static/freebsd/man8/arp.8 create mode 100644 static/freebsd/man8/ath3kfw.8 create mode 100644 static/freebsd/man8/audit.8 create mode 100644 static/freebsd/man8/auditd.8 create mode 100644 static/freebsd/man8/auditdistd.8 create mode 100644 static/freebsd/man8/auditfilterd.8 create mode 100644 static/freebsd/man8/authpf.8 create mode 100644 static/freebsd/man8/automount.8 create mode 100644 static/freebsd/man8/automountd.8 create mode 100644 static/freebsd/man8/autounmountd.8 create mode 100644 static/freebsd/man8/backlight.8 create mode 100644 static/freebsd/man8/bcmfw.8 create mode 100644 static/freebsd/man8/beastie.4th.8 create mode 100644 static/freebsd/man8/bectl.8 create mode 100644 static/freebsd/man8/beinstall.8 3.html create mode 100644 static/freebsd/man8/bhyve.8 create mode 100644 static/freebsd/man8/bhyvectl.8 create mode 100644 static/freebsd/man8/bhyveload.8 create mode 100644 static/freebsd/man8/binmiscctl.8 create mode 100644 static/freebsd/man8/blacklistctl.8 create mode 100644 static/freebsd/man8/blacklistd.8 create mode 100644 static/freebsd/man8/blocklistctl.8 create mode 100644 static/freebsd/man8/blocklistd.8 create mode 100644 static/freebsd/man8/bluetooth-config.8 create mode 100644 static/freebsd/man8/boot0cfg.8 create mode 100644 static/freebsd/man8/boot1.efi.8 create mode 100644 static/freebsd/man8/boot_i386.8 create mode 100644 static/freebsd/man8/bootparamd.8 create mode 100644 static/freebsd/man8/bootpd.8 create mode 100644 static/freebsd/man8/bootpef.8 create mode 100644 static/freebsd/man8/bootptest.8 create mode 100644 static/freebsd/man8/boottrace.8 create mode 100644 static/freebsd/man8/brand.4th.8 create mode 100644 static/freebsd/man8/bridge.8 create mode 100644 static/freebsd/man8/bsdconfig.8 create mode 100644 static/freebsd/man8/bsdinstall.8 create mode 100644 static/freebsd/man8/bsdlabel.8 create mode 100644 static/freebsd/man8/bthidcontrol.8 create mode 100644 static/freebsd/man8/bthidd.8 create mode 100644 static/freebsd/man8/btpand.8 create mode 100644 static/freebsd/man8/btxld.8 create mode 100644 static/freebsd/man8/camcontrol.8 create mode 100644 static/freebsd/man8/camdd.8 create mode 100644 static/freebsd/man8/catman.8 create mode 100644 static/freebsd/man8/ccdconfig.8 create mode 100644 static/freebsd/man8/cdboot.8 create mode 100644 static/freebsd/man8/certctl.8 create mode 100644 static/freebsd/man8/chat.8 create mode 100644 static/freebsd/man8/check-password.4th.8 create mode 100644 static/freebsd/man8/check_lft_balance.8 create mode 100644 static/freebsd/man8/chkgrp.8 create mode 100644 static/freebsd/man8/chkprintcap.8 create mode 100644 static/freebsd/man8/chown.8 create mode 100644 static/freebsd/man8/chroot.8 create mode 100644 static/freebsd/man8/clear_locks.8 create mode 100644 static/freebsd/man8/cli.lua.8 create mode 100644 static/freebsd/man8/clri.8 create mode 100644 static/freebsd/man8/color.4th.8 create mode 100644 static/freebsd/man8/color.lua.8 create mode 100644 static/freebsd/man8/comcontrol.8 create mode 100644 static/freebsd/man8/comsat.8 create mode 100644 static/freebsd/man8/config.8 create mode 100644 static/freebsd/man8/config.lua.8 create mode 100644 static/freebsd/man8/conscontrol.8 create mode 100644 static/freebsd/man8/core.lua.8 create mode 100644 static/freebsd/man8/cpucontrol.8 create mode 100644 static/freebsd/man8/crash.8 3.html create mode 100644 static/freebsd/man8/crashinfo.8 create mode 100644 static/freebsd/man8/cron.8 create mode 100644 static/freebsd/man8/ctladm.8 create mode 100644 static/freebsd/man8/ctld.8 create mode 100644 static/freebsd/man8/ctlstat.8 create mode 100644 static/freebsd/man8/cxgbetool.8 create mode 100644 static/freebsd/man8/daemon.8 create mode 100644 static/freebsd/man8/dconschat.8 create mode 100644 static/freebsd/man8/ddb.8 create mode 100644 static/freebsd/man8/debug.sh.8 3.html create mode 100644 static/freebsd/man8/decryptcore.8 create mode 100644 static/freebsd/man8/delay.4th.8 create mode 100644 static/freebsd/man8/devctl.8 create mode 100644 static/freebsd/man8/devd.8 create mode 100644 static/freebsd/man8/devfs.8 create mode 100644 static/freebsd/man8/devinfo.8 create mode 100644 static/freebsd/man8/devmatch.8 create mode 100644 static/freebsd/man8/dhclient-script.8 create mode 100644 static/freebsd/man8/dhclient.8 create mode 100644 static/freebsd/man8/diskinfo.8 create mode 100644 static/freebsd/man8/diskless.8 3.html create mode 100644 static/freebsd/man8/dma.8 create mode 100644 static/freebsd/man8/dmesg.8 create mode 100644 static/freebsd/man8/drawer.lua.8 create mode 100644 static/freebsd/man8/dump.8 create mode 100644 static/freebsd/man8/dump_fts.8 create mode 100644 static/freebsd/man8/dumpcis.8 create mode 100644 static/freebsd/man8/dumpfs.8 create mode 100644 static/freebsd/man8/dumpon.8 create mode 100644 static/freebsd/man8/editmap.8 create mode 100644 static/freebsd/man8/edquota.8 create mode 100644 static/freebsd/man8/efibootmgr.8 create mode 100644 static/freebsd/man8/efidp.8 create mode 100644 static/freebsd/man8/efitable.8 create mode 100644 static/freebsd/man8/efivar.8 create mode 100644 static/freebsd/man8/efiwake.8 create mode 100644 static/freebsd/man8/etcupdate.8 create mode 100644 static/freebsd/man8/etherswitchcfg.8 create mode 100644 static/freebsd/man8/example.8 create mode 100644 static/freebsd/man8/exit2.8 create mode 100644 static/freebsd/man8/extattrctl.8 create mode 100644 static/freebsd/man8/fdcontrol.8 create mode 100644 static/freebsd/man8/fdformat.8 create mode 100644 static/freebsd/man8/fdisk.8 create mode 100644 static/freebsd/man8/ffsinfo.8 create mode 100644 static/freebsd/man8/fingerd.8 create mode 100644 static/freebsd/man8/flowctl.8 create mode 100644 static/freebsd/man8/freebsd-update.8 create mode 100644 static/freebsd/man8/fsck.8 create mode 100644 static/freebsd/man8/fsck.zfs.8 create mode 100644 static/freebsd/man8/fsck_ffs.8 create mode 100644 static/freebsd/man8/fsck_msdosfs.8 create mode 100644 static/freebsd/man8/fsdb.8 create mode 100644 static/freebsd/man8/fsirand.8 create mode 100644 static/freebsd/man8/fstyp.8 create mode 100644 static/freebsd/man8/ftp-proxy.8 create mode 100644 static/freebsd/man8/ftpd.8 create mode 100644 static/freebsd/man8/fwcontrol.8 create mode 100644 static/freebsd/man8/fwget.8 create mode 100644 static/freebsd/man8/gcache.8 create mode 100644 static/freebsd/man8/gconcat.8 create mode 100644 static/freebsd/man8/geli.8 create mode 100644 static/freebsd/man8/geom.8 create mode 100644 static/freebsd/man8/getfmac.8 create mode 100644 static/freebsd/man8/getpmac.8 create mode 100644 static/freebsd/man8/getty.8 create mode 100644 static/freebsd/man8/gfx.lua.8 create mode 100644 static/freebsd/man8/ggatec.8 create mode 100644 static/freebsd/man8/ggated.8 create mode 100644 static/freebsd/man8/ggatel.8 create mode 100644 static/freebsd/man8/gjournal.8 create mode 100644 static/freebsd/man8/glabel.8 create mode 100644 static/freebsd/man8/gmirror.8 create mode 100644 static/freebsd/man8/gmountver.8 create mode 100644 static/freebsd/man8/gmultipath.8 create mode 100644 static/freebsd/man8/gnop.8 create mode 100644 static/freebsd/man8/gpart.8 create mode 100644 static/freebsd/man8/gpioctl.8 create mode 100644 static/freebsd/man8/gptboot.8 create mode 100644 static/freebsd/man8/gptboot.efi.8 create mode 100644 static/freebsd/man8/gptzfsboot.8 create mode 100644 static/freebsd/man8/graid.8 create mode 100644 static/freebsd/man8/graid3.8 create mode 100644 static/freebsd/man8/growfs.8 create mode 100644 static/freebsd/man8/gshsec.8 create mode 100644 static/freebsd/man8/gssd.8 create mode 100644 static/freebsd/man8/gstat.8 create mode 100644 static/freebsd/man8/gstripe.8 create mode 100644 static/freebsd/man8/gunion.8 create mode 100644 static/freebsd/man8/gvirstor.8 create mode 100644 static/freebsd/man8/hastctl.8 create mode 100644 static/freebsd/man8/hastd.8 create mode 100644 static/freebsd/man8/hccontrol.8 create mode 100644 static/freebsd/man8/hcsecd.8 create mode 100644 static/freebsd/man8/hook.lua.8 create mode 100644 static/freebsd/man8/hostapd.8 create mode 100644 static/freebsd/man8/hostapd_cli.8 create mode 100644 static/freebsd/man8/hprop.8 create mode 100644 static/freebsd/man8/hpropd.8 create mode 100644 static/freebsd/man8/hv_kvp_daemon.8 create mode 100644 static/freebsd/man8/hv_vss_daemon.8 create mode 100644 static/freebsd/man8/i2c.8 create mode 100644 static/freebsd/man8/iasl.8 create mode 100644 static/freebsd/man8/ibaddr.8 create mode 100644 static/freebsd/man8/ibcacheedit.8 create mode 100644 static/freebsd/man8/ibccconfig.8 create mode 100644 static/freebsd/man8/ibccquery.8 create mode 100644 static/freebsd/man8/ibfindnodesusing.8 create mode 100644 static/freebsd/man8/ibhosts.8 create mode 100644 static/freebsd/man8/ibidsverify.8 create mode 100644 static/freebsd/man8/iblinkinfo.8 create mode 100644 static/freebsd/man8/ibnetdiscover.8 create mode 100644 static/freebsd/man8/ibnodes.8 create mode 100644 static/freebsd/man8/ibping.8 create mode 100644 static/freebsd/man8/ibportstate.8 create mode 100644 static/freebsd/man8/ibqueryerrors.8 create mode 100644 static/freebsd/man8/ibroute.8 create mode 100644 static/freebsd/man8/ibrouters.8 create mode 100644 static/freebsd/man8/ibstat.8 create mode 100644 static/freebsd/man8/ibstatus.8 create mode 100644 static/freebsd/man8/ibswitches.8 create mode 100644 static/freebsd/man8/ibsysstat.8 create mode 100644 static/freebsd/man8/ibtracert.8 create mode 100644 static/freebsd/man8/ifconfig.8 create mode 100644 static/freebsd/man8/ifmcstat.8 create mode 100644 static/freebsd/man8/inetd.8 create mode 100644 static/freebsd/man8/infiniband-diags.8 create mode 100644 static/freebsd/man8/init.8 create mode 100644 static/freebsd/man8/intro.8 4.html create mode 100644 static/freebsd/man8/ioatcontrol.8 create mode 100644 static/freebsd/man8/iostat.8 create mode 100644 static/freebsd/man8/iovctl.8 create mode 100644 static/freebsd/man8/ip6addrctl.8 create mode 100644 static/freebsd/man8/ipf.8 create mode 100644 static/freebsd/man8/ipfs.8 create mode 100644 static/freebsd/man8/ipfstat.8 create mode 100644 static/freebsd/man8/ipfw.8 create mode 100644 static/freebsd/man8/ipfwpcap.8 create mode 100644 static/freebsd/man8/ipmon.8 create mode 100644 static/freebsd/man8/ipnat.8 create mode 100644 static/freebsd/man8/ippool.8 create mode 100644 static/freebsd/man8/iprop-log.8 create mode 100644 static/freebsd/man8/iprop.8 create mode 100644 static/freebsd/man8/ipscan.8 create mode 100644 static/freebsd/man8/iscsictl.8 create mode 100644 static/freebsd/man8/iscsid.8 create mode 100644 static/freebsd/man8/isoboot.8 create mode 100644 static/freebsd/man8/iwmbtfw.8 create mode 100644 static/freebsd/man8/jail.8 create mode 100644 static/freebsd/man8/jexec.8 create mode 100644 static/freebsd/man8/jls.8 create mode 100644 static/freebsd/man8/kadmin.8 create mode 100644 static/freebsd/man8/kadmin.local.8 create mode 100644 static/freebsd/man8/kadmind.8 create mode 100644 static/freebsd/man8/kcm.8 create mode 100644 static/freebsd/man8/kdc.8 create mode 100644 static/freebsd/man8/kdigest.8 create mode 100644 static/freebsd/man8/kerberos.8 create mode 100644 static/freebsd/man8/kfd.8 create mode 100644 static/freebsd/man8/kimpersonate.8 create mode 100644 static/freebsd/man8/kldconfig.8 create mode 100644 static/freebsd/man8/kldload.8 create mode 100644 static/freebsd/man8/kldstat.8 create mode 100644 static/freebsd/man8/kldunload.8 create mode 100644 static/freebsd/man8/kldxref.8 create mode 100644 static/freebsd/man8/kpasswdd.8 create mode 100644 static/freebsd/man8/kstash.8 create mode 100644 static/freebsd/man8/ktrdump.8 create mode 100644 static/freebsd/man8/ktutil.8 create mode 100644 static/freebsd/man8/l2control.8 create mode 100644 static/freebsd/man8/l2ping.8 create mode 100644 static/freebsd/man8/lastlogin.8 create mode 100644 static/freebsd/man8/lb.8 create mode 100644 static/freebsd/man8/ldconfig.8 create mode 100644 static/freebsd/man8/loader.4th.8 create mode 100644 static/freebsd/man8/loader.8 create mode 100644 static/freebsd/man8/loader.efi.8 create mode 100644 static/freebsd/man8/loader.lua.8 create mode 100644 static/freebsd/man8/loader_4th.8 create mode 100644 static/freebsd/man8/loader_lua.8 create mode 100644 static/freebsd/man8/loader_simp.8 create mode 100644 static/freebsd/man8/locate.updatedb.8 create mode 100644 static/freebsd/man8/lpc.8 create mode 100644 static/freebsd/man8/lpd.8 create mode 100644 static/freebsd/man8/lptcontrol.8 create mode 100644 static/freebsd/man8/mail.local.8 create mode 100644 static/freebsd/man8/mailstats.8 create mode 100644 static/freebsd/man8/mailwrapper.8 create mode 100644 static/freebsd/man8/makefs.8 create mode 100644 static/freebsd/man8/makemap.8 create mode 100644 static/freebsd/man8/makeroot.8 create mode 100644 static/freebsd/man8/makewhatis.8 create mode 100644 static/freebsd/man8/makewhatis.local.8 create mode 100644 static/freebsd/man8/man.cgi.8 create mode 100644 static/freebsd/man8/manctl.8 create mode 100644 static/freebsd/man8/mandocd.8 create mode 100644 static/freebsd/man8/mdconfig.8 create mode 100644 static/freebsd/man8/mdmfs.8 create mode 100644 static/freebsd/man8/memcontrol.8 create mode 100644 static/freebsd/man8/menu.4th.8 create mode 100644 static/freebsd/man8/menu.lua.8 create mode 100644 static/freebsd/man8/menusets.4th.8 create mode 100644 static/freebsd/man8/mfiutil.8 create mode 100644 static/freebsd/man8/mixer.8 create mode 100644 static/freebsd/man8/mknetid.8 create mode 100644 static/freebsd/man8/mknod.8 create mode 100644 static/freebsd/man8/mksnap_ffs.8 create mode 100644 static/freebsd/man8/mkuzip.8 create mode 100644 static/freebsd/man8/mld6query.8 create mode 100644 static/freebsd/man8/mlx5tool.8 create mode 100644 static/freebsd/man8/mlxcontrol.8 create mode 100644 static/freebsd/man8/mount.8 create mode 100644 static/freebsd/man8/mount.zfs.8 create mode 100644 static/freebsd/man8/mount_cd9660.8 create mode 100644 static/freebsd/man8/mount_fusefs.8 create mode 100644 static/freebsd/man8/mount_msdosfs.8 create mode 100644 static/freebsd/man8/mount_nfs.8 create mode 100644 static/freebsd/man8/mount_nullfs.8 create mode 100644 static/freebsd/man8/mount_smbfs.8 create mode 100644 static/freebsd/man8/mount_udf.8 create mode 100644 static/freebsd/man8/mount_unionfs.8 create mode 100644 static/freebsd/man8/mountd.8 create mode 100644 static/freebsd/man8/moused.8 create mode 100644 static/freebsd/man8/mpsutil.8 create mode 100644 static/freebsd/man8/mptutil.8 create mode 100644 static/freebsd/man8/msconvd.8 create mode 100644 static/freebsd/man8/mtest.8 create mode 100644 static/freebsd/man8/mtree.8 create mode 100644 static/freebsd/man8/nanobsd.8 3.html create mode 100644 static/freebsd/man8/natd.8 create mode 100644 static/freebsd/man8/ndp.8 create mode 100644 static/freebsd/man8/newfs.8 create mode 100644 static/freebsd/man8/newfs_msdos.8 create mode 100644 static/freebsd/man8/newsyslog.8 create mode 100644 static/freebsd/man8/nextboot.8 create mode 100644 static/freebsd/man8/nfscbd.8 create mode 100644 static/freebsd/man8/nfsd.8 create mode 100644 static/freebsd/man8/nfsdumpstate.8 create mode 100644 static/freebsd/man8/nfsiod.8 create mode 100644 static/freebsd/man8/nfsrevoke.8 create mode 100644 static/freebsd/man8/nfsuserd.8 create mode 100644 static/freebsd/man8/ngctl.8 create mode 100644 static/freebsd/man8/nghook.8 create mode 100644 static/freebsd/man8/nmreplay.8 create mode 100644 static/freebsd/man8/nologin.8 create mode 100644 static/freebsd/man8/nos-tun.8 create mode 100644 static/freebsd/man8/nscd.8 create mode 100644 static/freebsd/man8/nss_tacplus.8 create mode 100644 static/freebsd/man8/ntpdate.8 create mode 100644 static/freebsd/man8/ntptime.8 create mode 100644 static/freebsd/man8/ntptrace.8 create mode 100644 static/freebsd/man8/nvmecontrol.8 create mode 100644 static/freebsd/man8/nvmfd.8 create mode 100644 static/freebsd/man8/nvram.8 create mode 100644 static/freebsd/man8/ofwdump.8 create mode 100644 static/freebsd/man8/opensm.8 create mode 100644 static/freebsd/man8/p.8 create mode 100644 static/freebsd/man8/pac.8 create mode 100644 static/freebsd/man8/pam-krb5.8 create mode 100644 static/freebsd/man8/pam_chroot.8 create mode 100644 static/freebsd/man8/pam_deny.8 create mode 100644 static/freebsd/man8/pam_echo.8 create mode 100644 static/freebsd/man8/pam_exec.8 create mode 100644 static/freebsd/man8/pam_ftpusers.8 create mode 100644 static/freebsd/man8/pam_group.8 create mode 100644 static/freebsd/man8/pam_guest.8 create mode 100644 static/freebsd/man8/pam_krb5.8 create mode 100644 static/freebsd/man8/pam_ksu.8 create mode 100644 static/freebsd/man8/pam_lastlog.8 create mode 100644 static/freebsd/man8/pam_login_access.8 create mode 100644 static/freebsd/man8/pam_nologin.8 create mode 100644 static/freebsd/man8/pam_passwdqc.8 create mode 100644 static/freebsd/man8/pam_permit.8 create mode 100644 static/freebsd/man8/pam_radius.8 create mode 100644 static/freebsd/man8/pam_rhosts.8 create mode 100644 static/freebsd/man8/pam_rootok.8 create mode 100644 static/freebsd/man8/pam_securetty.8 create mode 100644 static/freebsd/man8/pam_self.8 create mode 100644 static/freebsd/man8/pam_ssh.8 create mode 100644 static/freebsd/man8/pam_tacplus.8 create mode 100644 static/freebsd/man8/pam_unix.8 create mode 100644 static/freebsd/man8/pam_xdg.8 create mode 100644 static/freebsd/man8/pam_zfs_key.8 create mode 100644 static/freebsd/man8/password.lua.8 create mode 100644 static/freebsd/man8/pciconf.8 create mode 100644 static/freebsd/man8/perfquery.8 create mode 100644 static/freebsd/man8/periodic.8 create mode 100644 static/freebsd/man8/pfctl.8 create mode 100644 static/freebsd/man8/pfilctl.8 create mode 100644 static/freebsd/man8/pflogd.8 create mode 100644 static/freebsd/man8/pflowctl.8 create mode 100644 static/freebsd/man8/phttpget.8 create mode 100644 static/freebsd/man8/ping.8 create mode 100644 static/freebsd/man8/pkg-serve.8 create mode 100644 static/freebsd/man8/pkt-gen.8 create mode 100644 static/freebsd/man8/pmcannotate.8 create mode 100644 static/freebsd/man8/pmccontrol.8 create mode 100644 static/freebsd/man8/pmcstat.8 create mode 100644 static/freebsd/man8/pmcstudy.8 create mode 100644 static/freebsd/man8/pnfsdscopymr.8 create mode 100644 static/freebsd/man8/pnfsdsfile.8 create mode 100644 static/freebsd/man8/pnfsdskill.8 create mode 100644 static/freebsd/man8/pnpinfo.8 create mode 100644 static/freebsd/man8/powerd.8 create mode 100644 static/freebsd/man8/ppp.8 create mode 100644 static/freebsd/man8/pppctl.8 create mode 100644 static/freebsd/man8/pppoed.8 create mode 100644 static/freebsd/man8/praliases.8 create mode 100644 static/freebsd/man8/prometheus_sysctl_exporter.8 create mode 100644 static/freebsd/man8/pstat.8 create mode 100644 static/freebsd/man8/push.8 create mode 100644 static/freebsd/man8/pw.8 create mode 100644 static/freebsd/man8/pwd_mkdb.8 create mode 100644 static/freebsd/man8/pwm.8 create mode 100644 static/freebsd/man8/pxeboot.8 create mode 100644 static/freebsd/man8/qtool.8 create mode 100644 static/freebsd/man8/quot.8 create mode 100644 static/freebsd/man8/quotacheck.8 create mode 100644 static/freebsd/man8/quotaon.8 create mode 100644 static/freebsd/man8/rarpd.8 create mode 100644 static/freebsd/man8/rbootd.8 create mode 100644 static/freebsd/man8/rc.8 3.html create mode 100644 static/freebsd/man8/rc.subr.8 3.html create mode 100644 static/freebsd/man8/rcorder.8 create mode 100644 static/freebsd/man8/rctl.8 create mode 100644 static/freebsd/man8/reboot.8 create mode 100644 static/freebsd/man8/renice.8 create mode 100644 static/freebsd/man8/repquota.8 create mode 100644 static/freebsd/man8/rescue.8 3.html create mode 100644 static/freebsd/man8/restore.8 create mode 100644 static/freebsd/man8/revnetgroup.8 create mode 100644 static/freebsd/man8/rfcomm_pppd.8 create mode 100644 static/freebsd/man8/rip6query.8 create mode 100644 static/freebsd/man8/rmail.8 create mode 100644 static/freebsd/man8/rmextattr.8 create mode 100644 static/freebsd/man8/rmt.8 create mode 100644 static/freebsd/man8/rmuser.8 create mode 100644 static/freebsd/man8/route.8 create mode 100644 static/freebsd/man8/route6d.8 create mode 100644 static/freebsd/man8/routed.8 create mode 100644 static/freebsd/man8/rpc.lockd.8 create mode 100644 static/freebsd/man8/rpc.rquotad.8 create mode 100644 static/freebsd/man8/rpc.rstatd.8 create mode 100644 static/freebsd/man8/rpc.rusersd.8 create mode 100644 static/freebsd/man8/rpc.rwalld.8 create mode 100644 static/freebsd/man8/rpc.sprayd.8 create mode 100644 static/freebsd/man8/rpc.statd.8 create mode 100644 static/freebsd/man8/rpc.tlsclntd.8 create mode 100644 static/freebsd/man8/rpc.tlsservd.8 create mode 100644 static/freebsd/man8/rpc.umntall.8 create mode 100644 static/freebsd/man8/rpc.yppasswdd.8 create mode 100644 static/freebsd/man8/rpc.ypxfrd.8 create mode 100644 static/freebsd/man8/rpcbind.8 create mode 100644 static/freebsd/man8/rpcinfo.8 create mode 100644 static/freebsd/man8/rrenumd.8 create mode 100644 static/freebsd/man8/rshd.8 create mode 100644 static/freebsd/man8/rtadvctl.8 create mode 100644 static/freebsd/man8/rtadvd.8 create mode 100644 static/freebsd/man8/rtlbtfw.8 create mode 100644 static/freebsd/man8/rtquery.8 create mode 100644 static/freebsd/man8/rtsold.8 create mode 100644 static/freebsd/man8/rwhod.8 create mode 100644 static/freebsd/man8/sa.8 create mode 100644 static/freebsd/man8/sade.8 create mode 100644 static/freebsd/man8/saquery.8 create mode 100644 static/freebsd/man8/save-entropy.8 create mode 100644 static/freebsd/man8/savecore.8 create mode 100644 static/freebsd/man8/screen.lua.8 create mode 100644 static/freebsd/man8/scsi_target.8 create mode 100644 static/freebsd/man8/sdpcontrol.8 create mode 100644 static/freebsd/man8/sdpd.8 create mode 100644 static/freebsd/man8/sendmail.8 create mode 100644 static/freebsd/man8/service.8 create mode 100644 static/freebsd/man8/services_mkdb.8 create mode 100644 static/freebsd/man8/sesutil.8 create mode 100644 static/freebsd/man8/setaudit.8 create mode 100644 static/freebsd/man8/setfmac.8 create mode 100644 static/freebsd/man8/setfsmac.8 create mode 100644 static/freebsd/man8/setkey.8 create mode 100644 static/freebsd/man8/setpmac.8 create mode 100644 static/freebsd/man8/sftp-server.8 create mode 100644 static/freebsd/man8/showmount.8 create mode 100644 static/freebsd/man8/shutdown.8 create mode 100644 static/freebsd/man8/smbmsg.8 create mode 100644 static/freebsd/man8/sminfo.8 create mode 100644 static/freebsd/man8/smpdump.8 create mode 100644 static/freebsd/man8/smpquery.8 create mode 100644 static/freebsd/man8/smrsh.8 create mode 100644 static/freebsd/man8/snapinfo.8 create mode 100644 static/freebsd/man8/sndctl.8 create mode 100644 static/freebsd/man8/spi.8 create mode 100644 static/freebsd/man8/spkrtest.8 create mode 100644 static/freebsd/man8/spray.8 create mode 100644 static/freebsd/man8/ssh-keysign.8 create mode 100644 static/freebsd/man8/ssh-pkcs11-helper.8 create mode 100644 static/freebsd/man8/ssh-sk-helper.8 create mode 100644 static/freebsd/man8/sshd.8 create mode 100644 static/freebsd/man8/strfile.8 create mode 100644 static/freebsd/man8/string2key.8 create mode 100644 static/freebsd/man8/swapon.8 create mode 100644 static/freebsd/man8/sync.8 create mode 100644 static/freebsd/man8/sysctl.8 create mode 100644 static/freebsd/man8/syslogd.8 create mode 100644 static/freebsd/man8/sysrc.8 create mode 100644 static/freebsd/man8/talkd.8 create mode 100644 static/freebsd/man8/tcpd.8 create mode 100644 static/freebsd/man8/tcpdchk.8 create mode 100644 static/freebsd/man8/tcpdmatch.8 create mode 100644 static/freebsd/man8/tcpdrop.8 create mode 100644 static/freebsd/man8/tcpsso.8 create mode 100644 static/freebsd/man8/telnetd.8 create mode 100644 static/freebsd/man8/tftp-proxy.8 create mode 100644 static/freebsd/man8/tftpd.8 create mode 100644 static/freebsd/man8/traceroute.8 create mode 100644 static/freebsd/man8/traceroute6.8 create mode 100644 static/freebsd/man8/trim.8 create mode 100644 static/freebsd/man8/tunefs.8 create mode 100644 static/freebsd/man8/tzselect.8 create mode 100644 static/freebsd/man8/tzsetup.8 create mode 100644 static/freebsd/man8/uathload.8 create mode 100644 static/freebsd/man8/uefi.8 3.html create mode 100644 static/freebsd/man8/uefisign.8 create mode 100644 static/freebsd/man8/ugidfw.8 create mode 100644 static/freebsd/man8/umbctl.8 create mode 100644 static/freebsd/man8/umount.8 create mode 100644 static/freebsd/man8/unbound-anchor.8 create mode 100644 static/freebsd/man8/unbound-checkconf.8 create mode 100644 static/freebsd/man8/unbound-control.8 create mode 100644 static/freebsd/man8/unbound.8 create mode 100644 static/freebsd/man8/usbconfig.8 create mode 100644 static/freebsd/man8/usbdump.8 create mode 100644 static/freebsd/man8/utx.8 create mode 100644 static/freebsd/man8/valectl.8 create mode 100644 static/freebsd/man8/vdev_id.8 create mode 100644 static/freebsd/man8/vendstat.8 create mode 100644 static/freebsd/man8/veriexec.8 create mode 100644 static/freebsd/man8/verify_krb5_conf.8 create mode 100644 static/freebsd/man8/version.4th.8 create mode 100644 static/freebsd/man8/vigr.8 create mode 100644 static/freebsd/man8/vimage.8 create mode 100644 static/freebsd/man8/vipw.8 create mode 100644 static/freebsd/man8/virtual_bt_speaker.8 create mode 100644 static/freebsd/man8/virtual_equalizer.8 create mode 100644 static/freebsd/man8/virtual_oss.8 create mode 100644 static/freebsd/man8/virtual_oss_cmd.8 create mode 100644 static/freebsd/man8/vmstat.8 create mode 100644 static/freebsd/man8/vtfontcvt.8 create mode 100644 static/freebsd/man8/wake.8 create mode 100644 static/freebsd/man8/watch.8 create mode 100644 static/freebsd/man8/watchdog.8 create mode 100644 static/freebsd/man8/watchdogd.8 create mode 100644 static/freebsd/man8/wg.8 create mode 100644 static/freebsd/man8/wlandebug.8 create mode 100644 static/freebsd/man8/wlanstat.8 create mode 100644 static/freebsd/man8/wpa_cli.8 create mode 100644 static/freebsd/man8/wpa_passphrase.8 create mode 100644 static/freebsd/man8/wpa_supplicant.8 create mode 100644 static/freebsd/man8/yp.8 3.html create mode 100644 static/freebsd/man8/yp_mkdb.8 create mode 100644 static/freebsd/man8/ypbind.8 create mode 100644 static/freebsd/man8/ypinit.8 create mode 100644 static/freebsd/man8/ypldap.8 create mode 100644 static/freebsd/man8/yppoll.8 create mode 100644 static/freebsd/man8/yppush.8 create mode 100644 static/freebsd/man8/ypserv.8 create mode 100644 static/freebsd/man8/ypset.8 create mode 100644 static/freebsd/man8/ypxfr.8 create mode 100644 static/freebsd/man8/zdb.8 create mode 100644 static/freebsd/man8/zdump.8 create mode 100644 static/freebsd/man8/zfs-allow.8 create mode 100644 static/freebsd/man8/zfs-bookmark.8 create mode 100644 static/freebsd/man8/zfs-clone.8 create mode 100644 static/freebsd/man8/zfs-create.8 create mode 100644 static/freebsd/man8/zfs-destroy.8 create mode 100644 static/freebsd/man8/zfs-diff.8 create mode 100644 static/freebsd/man8/zfs-hold.8 create mode 100644 static/freebsd/man8/zfs-jail.8 create mode 100644 static/freebsd/man8/zfs-list.8 create mode 100644 static/freebsd/man8/zfs-load-key.8 create mode 100644 static/freebsd/man8/zfs-mount.8 create mode 100644 static/freebsd/man8/zfs-program.8 create mode 100644 static/freebsd/man8/zfs-project.8 create mode 100644 static/freebsd/man8/zfs-promote.8 create mode 100644 static/freebsd/man8/zfs-receive.8 create mode 100644 static/freebsd/man8/zfs-rename.8 create mode 100644 static/freebsd/man8/zfs-rewrite.8 create mode 100644 static/freebsd/man8/zfs-rollback.8 create mode 100644 static/freebsd/man8/zfs-send.8 create mode 100644 static/freebsd/man8/zfs-set.8 create mode 100644 static/freebsd/man8/zfs-share.8 create mode 100644 static/freebsd/man8/zfs-snapshot.8 create mode 100644 static/freebsd/man8/zfs-upgrade.8 create mode 100644 static/freebsd/man8/zfs-userspace.8 create mode 100644 static/freebsd/man8/zfs-wait.8 create mode 100644 static/freebsd/man8/zfs-zone.8 create mode 100644 static/freebsd/man8/zfs.8 create mode 100644 static/freebsd/man8/zfs_ids_to_path.8 create mode 100644 static/freebsd/man8/zfsbootcfg.8 create mode 100644 static/freebsd/man8/zfsd.8 create mode 100644 static/freebsd/man8/zgenhostid.8 create mode 100644 static/freebsd/man8/zic.8 create mode 100644 static/freebsd/man8/zinject.8 create mode 100644 static/freebsd/man8/zol-0.8 create mode 100644 static/freebsd/man8/zonectl.8 create mode 100644 static/freebsd/man8/zpool-add.8 create mode 100644 static/freebsd/man8/zpool-attach.8 create mode 100644 static/freebsd/man8/zpool-checkpoint.8 create mode 100644 static/freebsd/man8/zpool-clear.8 create mode 100644 static/freebsd/man8/zpool-create.8 create mode 100644 static/freebsd/man8/zpool-ddtprune.8 create mode 100644 static/freebsd/man8/zpool-destroy.8 create mode 100644 static/freebsd/man8/zpool-detach.8 create mode 100644 static/freebsd/man8/zpool-events.8 create mode 100644 static/freebsd/man8/zpool-export.8 create mode 100644 static/freebsd/man8/zpool-get.8 create mode 100644 static/freebsd/man8/zpool-history.8 create mode 100644 static/freebsd/man8/zpool-import.8 create mode 100644 static/freebsd/man8/zpool-initialize.8 create mode 100644 static/freebsd/man8/zpool-iostat.8 create mode 100644 static/freebsd/man8/zpool-labelclear.8 create mode 100644 static/freebsd/man8/zpool-list.8 create mode 100644 static/freebsd/man8/zpool-offline.8 create mode 100644 static/freebsd/man8/zpool-prefetch.8 create mode 100644 static/freebsd/man8/zpool-reguid.8 create mode 100644 static/freebsd/man8/zpool-remove.8 create mode 100644 static/freebsd/man8/zpool-reopen.8 create mode 100644 static/freebsd/man8/zpool-replace.8 create mode 100644 static/freebsd/man8/zpool-resilver.8 create mode 100644 static/freebsd/man8/zpool-scrub.8 create mode 100644 static/freebsd/man8/zpool-split.8 create mode 100644 static/freebsd/man8/zpool-status.8 create mode 100644 static/freebsd/man8/zpool-sync.8 create mode 100644 static/freebsd/man8/zpool-trim.8 create mode 100644 static/freebsd/man8/zpool-upgrade.8 create mode 100644 static/freebsd/man8/zpool-wait.8 create mode 100644 static/freebsd/man8/zpool.8 create mode 100644 static/freebsd/man8/zpool_influxdb.8 create mode 100644 static/freebsd/man8/zstream.8 create mode 100644 static/freebsd/man8/zzz.8 create mode 100644 static/freebsd/man9/1.9 create mode 100644 static/freebsd/man9/2.9 create mode 100644 static/freebsd/man9/8.9 create mode 100644 static/freebsd/man9/9.9 create mode 100644 static/freebsd/man9/BUF_ISLOCKED.9 4.html create mode 100644 static/freebsd/man9/BUF_LOCK.9 4.html create mode 100644 static/freebsd/man9/BUF_LOCKFREE.9 4.html create mode 100644 static/freebsd/man9/BUF_LOCKINIT.9 4.html create mode 100644 static/freebsd/man9/BUF_RECURSED.9 4.html create mode 100644 static/freebsd/man9/BUF_TIMELOCK.9 4.html create mode 100644 static/freebsd/man9/BUF_UNLOCK.9 4.html create mode 100644 static/freebsd/man9/BUS_ADD_CHILD.9 3.html create mode 100644 static/freebsd/man9/BUS_BIND_INTR.9 3.html create mode 100644 static/freebsd/man9/BUS_CHILD_DELETED.9 4.html create mode 100644 static/freebsd/man9/BUS_CHILD_DETACHED.9 4.html create mode 100644 static/freebsd/man9/BUS_CHILD_LOCATION.9 4.html create mode 100644 static/freebsd/man9/BUS_CHILD_PNPINFO.9 3.html create mode 100644 static/freebsd/man9/BUS_CONFIG_INTR.9 3.html create mode 100644 static/freebsd/man9/BUS_DESCRIBE_INTR.9 3.html create mode 100644 static/freebsd/man9/BUS_GET_CPUS.9 3.html create mode 100644 static/freebsd/man9/BUS_GET_PROPERTY.9 4.html create mode 100644 static/freebsd/man9/BUS_HINTED_CHILD.9 4.html create mode 100644 static/freebsd/man9/BUS_NEW_PASS.9 4.html create mode 100644 static/freebsd/man9/BUS_PRINT_CHILD.9 4.html create mode 100644 static/freebsd/man9/BUS_READ_IVAR.9 4.html create mode 100644 static/freebsd/man9/BUS_RESCAN.9 4.html create mode 100644 static/freebsd/man9/BUS_SETUP_INTR.9 3.html create mode 100644 static/freebsd/man9/CTASSERT.9 4.html create mode 100644 static/freebsd/man9/DB_COMMAND.9 3.html create mode 100644 static/freebsd/man9/DECLARE_GEOM_CLASS.9 3.html create mode 100644 static/freebsd/man9/DECLARE_MODULE.9 3.html create mode 100644 static/freebsd/man9/DEFINE_IFUNC.9 3.html create mode 100644 static/freebsd/man9/DELAY.9 4.html create mode 100644 static/freebsd/man9/DEVICE_ATTACH.9 4.html create mode 100644 static/freebsd/man9/DEVICE_DETACH.9 4.html create mode 100644 static/freebsd/man9/DEVICE_IDENTIFY.9 3.html create mode 100644 static/freebsd/man9/DEVICE_PROBE.9 3.html create mode 100644 static/freebsd/man9/DEVICE_SHUTDOWN.9 4.html create mode 100644 static/freebsd/man9/DEV_MODULE.9 4.html create mode 100644 static/freebsd/man9/DRIVER_MODULE.9 3.html create mode 100644 static/freebsd/man9/EVENTHANDLER.9 3.html create mode 100644 static/freebsd/man9/KASSERT.9 3.html create mode 100644 static/freebsd/man9/LOCK_PROFILING.9 3.html create mode 100644 static/freebsd/man9/MODULE_DEPEND.9 4.html create mode 100644 static/freebsd/man9/MODULE_PNP_INFO.9 4.html create mode 100644 static/freebsd/man9/MODULE_VERSION.9 4.html create mode 100644 static/freebsd/man9/OF_child.9 4.html create mode 100644 static/freebsd/man9/OF_device_from_xref.9 3.html create mode 100644 static/freebsd/man9/OF_finddevice.9 4.html create mode 100644 static/freebsd/man9/OF_getprop.9 4.html create mode 100644 static/freebsd/man9/OF_node_from_xref.9 3.html create mode 100644 static/freebsd/man9/OF_package_to_path.9 4.html create mode 100644 static/freebsd/man9/PCI_IOV_ADD_VF.9 3.html create mode 100644 static/freebsd/man9/PCI_IOV_INIT.9 4.html create mode 100644 static/freebsd/man9/PCI_IOV_UNINIT.9 4.html create mode 100644 static/freebsd/man9/PHOLD.9 4.html create mode 100644 static/freebsd/man9/SDT.9 4.html create mode 100644 static/freebsd/man9/SYSCALL_MODULE.9 4.html create mode 100644 static/freebsd/man9/SYSINIT.9 3.html create mode 100644 static/freebsd/man9/VFS.9 4.html create mode 100644 static/freebsd/man9/VFS_CHECKEXP.9 4.html create mode 100644 static/freebsd/man9/VFS_FHTOVP.9 3.html create mode 100644 static/freebsd/man9/VFS_MOUNT.9 4.html create mode 100644 static/freebsd/man9/VFS_QUOTACTL.9 4.html create mode 100644 static/freebsd/man9/VFS_ROOT.9 4.html create mode 100644 static/freebsd/man9/VFS_SET.9 4.html create mode 100644 static/freebsd/man9/VFS_STATFS.9 4.html create mode 100644 static/freebsd/man9/VFS_SYNC.9 4.html create mode 100644 static/freebsd/man9/VFS_UNMOUNT.9 4.html create mode 100644 static/freebsd/man9/VFS_VGET.9 4.html create mode 100644 static/freebsd/man9/VNET.9 4.html create mode 100644 static/freebsd/man9/VOP_ACCESS.9 4.html create mode 100644 static/freebsd/man9/VOP_ACLCHECK.9 4.html create mode 100644 static/freebsd/man9/VOP_ADVISE.9 4.html create mode 100644 static/freebsd/man9/VOP_ADVLOCK.9 4.html create mode 100644 static/freebsd/man9/VOP_ALLOCATE.9 4.html create mode 100644 static/freebsd/man9/VOP_ATTRIB.9 4.html create mode 100644 static/freebsd/man9/VOP_BMAP.9 4.html create mode 100644 static/freebsd/man9/VOP_BWRITE.9 4.html create mode 100644 static/freebsd/man9/VOP_COPY_FILE_RANGE.9 3.html create mode 100644 static/freebsd/man9/VOP_CREATE.9 4.html create mode 100644 static/freebsd/man9/VOP_DEALLOCATE.9 4.html create mode 100644 static/freebsd/man9/VOP_FSYNC.9 4.html create mode 100644 static/freebsd/man9/VOP_GETACL.9 4.html create mode 100644 static/freebsd/man9/VOP_GETEXTATTR.9 4.html create mode 100644 static/freebsd/man9/VOP_GETPAGES.9 3.html create mode 100644 static/freebsd/man9/VOP_INACTIVE.9 4.html create mode 100644 static/freebsd/man9/VOP_INOTIFY.9 4.html create mode 100644 static/freebsd/man9/VOP_IOCTL.9 4.html create mode 100644 static/freebsd/man9/VOP_LINK.9 4.html create mode 100644 static/freebsd/man9/VOP_LISTEXTATTR.9 4.html create mode 100644 static/freebsd/man9/VOP_LOCK.9 4.html create mode 100644 static/freebsd/man9/VOP_LOOKUP.9 4.html create mode 100644 static/freebsd/man9/VOP_OPENCLOSE.9 4.html create mode 100644 static/freebsd/man9/VOP_PATHCONF.9 4.html create mode 100644 static/freebsd/man9/VOP_PRINT.9 4.html create mode 100644 static/freebsd/man9/VOP_RDWR.9 4.html create mode 100644 static/freebsd/man9/VOP_READDIR.9 4.html create mode 100644 static/freebsd/man9/VOP_READLINK.9 4.html create mode 100644 static/freebsd/man9/VOP_READ_PGCACHE.9 4.html create mode 100644 static/freebsd/man9/VOP_REALLOCBLKS.9 4.html create mode 100644 static/freebsd/man9/VOP_REMOVE.9 4.html create mode 100644 static/freebsd/man9/VOP_RENAME.9 4.html create mode 100644 static/freebsd/man9/VOP_REVOKE.9 4.html create mode 100644 static/freebsd/man9/VOP_SETACL.9 4.html create mode 100644 static/freebsd/man9/VOP_SETEXTATTR.9 4.html create mode 100644 static/freebsd/man9/VOP_SETLABEL.9 3.html create mode 100644 static/freebsd/man9/VOP_STRATEGY.9 4.html create mode 100644 static/freebsd/man9/VOP_VPTOCNP.9 4.html create mode 100644 static/freebsd/man9/VOP_VPTOFH.9 4.html create mode 100644 static/freebsd/man9/accept_filter.9 3.html create mode 100644 static/freebsd/man9/accf_data.9 4.html create mode 100644 static/freebsd/man9/accf_dns.9 3.html create mode 100644 static/freebsd/man9/accf_http.9 3.html create mode 100644 static/freebsd/man9/accf_tls.9 3.html create mode 100644 static/freebsd/man9/acl.9 3.html create mode 100644 static/freebsd/man9/alq.9 3.html create mode 100644 static/freebsd/man9/altq.9 3.html create mode 100644 static/freebsd/man9/atomic.9 3.html create mode 100644 static/freebsd/man9/backlight.9 3.html create mode 100644 static/freebsd/man9/bhnd.9 3.html create mode 100644 static/freebsd/man9/bhnd_erom.9 3.html create mode 100644 static/freebsd/man9/bios.9 3.html create mode 100644 static/freebsd/man9/bitset.9 3.html create mode 100644 static/freebsd/man9/bpf.9 3.html create mode 100644 static/freebsd/man9/buf.9 3.html create mode 100644 static/freebsd/man9/buf_ring.9 3.html create mode 100644 static/freebsd/man9/bus_activate_resource.9 3.html create mode 100644 static/freebsd/man9/bus_adjust_resource.9 4.html create mode 100644 static/freebsd/man9/bus_alloc_resource.9 3.html create mode 100644 static/freebsd/man9/bus_attach_children.9 3.html create mode 100644 static/freebsd/man9/bus_child_present.9 3.html create mode 100644 static/freebsd/man9/bus_dma.9 3.html create mode 100644 static/freebsd/man9/bus_generic_detach.9 4.html create mode 100644 static/freebsd/man9/bus_generic_new_pass.9 4.html create mode 100644 static/freebsd/man9/bus_generic_print_child.9 3.html create mode 100644 static/freebsd/man9/bus_generic_read_ivar.9 4.html create mode 100644 static/freebsd/man9/bus_generic_shutdown.9 4.html create mode 100644 static/freebsd/man9/bus_get_resource.9 4.html create mode 100644 static/freebsd/man9/bus_map_resource.9 3.html create mode 100644 static/freebsd/man9/bus_release_resource.9 4.html create mode 100644 static/freebsd/man9/bus_set_pass.9 4.html create mode 100644 static/freebsd/man9/bus_set_resource.9 4.html create mode 100644 static/freebsd/man9/bus_space.9 3.html create mode 100644 static/freebsd/man9/byteorder.9 4.html create mode 100644 static/freebsd/man9/callout.9 3.html create mode 100644 static/freebsd/man9/casuword.9 3.html create mode 100644 static/freebsd/man9/cd.9 3.html create mode 100644 static/freebsd/man9/cdefs.9 3.html create mode 100644 static/freebsd/man9/cnv.9 4.html create mode 100644 static/freebsd/man9/condvar.9 4.html create mode 100644 static/freebsd/man9/config_intrhook.9 3.html create mode 100644 static/freebsd/man9/contigmalloc.9 3.html create mode 100644 static/freebsd/man9/copy.9 3.html create mode 100644 static/freebsd/man9/coredumper_register.9 3.html create mode 100644 static/freebsd/man9/counter.9 4.html create mode 100644 static/freebsd/man9/cpu_machdep.9 3.html create mode 100644 static/freebsd/man9/cpuset.9 4.html create mode 100644 static/freebsd/man9/cr_bsd_visible.9 3.html create mode 100644 static/freebsd/man9/cr_cansee.9 3.html create mode 100644 static/freebsd/man9/cr_canseejailproc.9 4.html create mode 100644 static/freebsd/man9/cr_canseeothergids.9 4.html create mode 100644 static/freebsd/man9/cr_canseeotheruids.9 4.html create mode 100644 static/freebsd/man9/critical_enter.9 3.html create mode 100644 static/freebsd/man9/crypto.9 3.html create mode 100644 static/freebsd/man9/crypto_buffer.9 3.html create mode 100644 static/freebsd/man9/crypto_driver.9 4.html create mode 100644 static/freebsd/man9/crypto_request.9 4.html create mode 100644 static/freebsd/man9/crypto_session.9 3.html create mode 100644 static/freebsd/man9/deadfs.9 4.html create mode 100644 static/freebsd/man9/dev_clone.9 4.html create mode 100644 static/freebsd/man9/dev_refthread.9 3.html create mode 100644 static/freebsd/man9/devclass.9 4.html create mode 100644 static/freebsd/man9/devclass_find.9 4.html create mode 100644 static/freebsd/man9/devclass_get_count.9 4.html create mode 100644 static/freebsd/man9/devclass_get_device.9 4.html create mode 100644 static/freebsd/man9/devclass_get_devices.9 4.html create mode 100644 static/freebsd/man9/devclass_get_drivers.9 4.html create mode 100644 static/freebsd/man9/devclass_get_maxunit.9 4.html create mode 100644 static/freebsd/man9/devclass_get_name.9 4.html create mode 100644 static/freebsd/man9/devclass_get_softc.9 4.html create mode 100644 static/freebsd/man9/devctl_notify.9 4.html create mode 100644 static/freebsd/man9/devctl_process_running.9 4.html create mode 100644 static/freebsd/man9/devctl_safe_quote_sb.9 4.html create mode 100644 static/freebsd/man9/devfs_set_cdevpriv.9 3.html create mode 100644 static/freebsd/man9/device.9 3.html create mode 100644 static/freebsd/man9/device_add_child.9 3.html create mode 100644 static/freebsd/man9/device_delete_child.9 4.html create mode 100644 static/freebsd/man9/device_delete_children.9 4.html create mode 100644 static/freebsd/man9/device_enable.9 4.html create mode 100644 static/freebsd/man9/device_find_child.9 4.html create mode 100644 static/freebsd/man9/device_get_children.9 3.html create mode 100644 static/freebsd/man9/device_get_devclass.9 4.html create mode 100644 static/freebsd/man9/device_get_driver.9 4.html create mode 100644 static/freebsd/man9/device_get_ivars.9 4.html create mode 100644 static/freebsd/man9/device_get_name.9 4.html create mode 100644 static/freebsd/man9/device_get_parent.9 4.html create mode 100644 static/freebsd/man9/device_get_property.9 3.html create mode 100644 static/freebsd/man9/device_get_softc.9 4.html create mode 100644 static/freebsd/man9/device_get_state.9 3.html create mode 100644 static/freebsd/man9/device_get_sysctl.9 4.html create mode 100644 static/freebsd/man9/device_get_unit.9 4.html create mode 100644 static/freebsd/man9/device_printf.9 4.html create mode 100644 static/freebsd/man9/device_probe_and_attach.9 3.html create mode 100644 static/freebsd/man9/device_quiet.9 4.html create mode 100644 static/freebsd/man9/device_set_desc.9 4.html create mode 100644 static/freebsd/man9/device_set_driver.9 4.html create mode 100644 static/freebsd/man9/device_set_flags.9 4.html create mode 100644 static/freebsd/man9/devstat.9 3.html create mode 100644 static/freebsd/man9/devtoname.9 4.html create mode 100644 static/freebsd/man9/disk.9 3.html create mode 100644 static/freebsd/man9/dnv.9 3.html create mode 100644 static/freebsd/man9/domain.9 3.html create mode 100644 static/freebsd/man9/domainset.9 3.html create mode 100644 static/freebsd/man9/dpcpu.9 4.html create mode 100644 static/freebsd/man9/drbr.9 3.html create mode 100644 static/freebsd/man9/driver.9 3.html create mode 100644 static/freebsd/man9/ecn.9 3.html create mode 100644 static/freebsd/man9/efirt.9 3.html create mode 100644 static/freebsd/man9/epoch.9 4.html create mode 100644 static/freebsd/man9/ether_gen_addr.9 4.html create mode 100644 static/freebsd/man9/eventtimers.9 4.html create mode 100644 static/freebsd/man9/example.9 create mode 100644 static/freebsd/man9/extattr.9 3.html create mode 100644 static/freebsd/man9/exterror.9 3.html create mode 100644 static/freebsd/man9/fail.9 3.html create mode 100644 static/freebsd/man9/fdt_pinctrl.9 3.html create mode 100644 static/freebsd/man9/fetch.9 3.html create mode 100644 static/freebsd/man9/firmware.9 3.html create mode 100644 static/freebsd/man9/fpu_kern.9 3.html create mode 100644 static/freebsd/man9/g_access.9 3.html create mode 100644 static/freebsd/man9/g_attach.9 3.html create mode 100644 static/freebsd/man9/g_bio.9 3.html create mode 100644 static/freebsd/man9/g_consumer.9 3.html create mode 100644 static/freebsd/man9/g_data.9 3.html create mode 100644 static/freebsd/man9/g_event.9 3.html create mode 100644 static/freebsd/man9/g_geom.9 3.html create mode 100644 static/freebsd/man9/g_provider.9 3.html create mode 100644 static/freebsd/man9/g_provider_by_name.9 4.html create mode 100644 static/freebsd/man9/g_wither_geom.9 3.html create mode 100644 static/freebsd/man9/get_cyclecount.9 4.html create mode 100644 static/freebsd/man9/getenv.9 4.html create mode 100644 static/freebsd/man9/getnewvnode.9 4.html create mode 100644 static/freebsd/man9/gone_in.9 4.html create mode 100644 static/freebsd/man9/groupmember.9 4.html create mode 100644 static/freebsd/man9/hardclock.9 3.html create mode 100644 static/freebsd/man9/hash.9 3.html create mode 100644 static/freebsd/man9/hashalloc.9 3.html create mode 100644 static/freebsd/man9/hashinit.9 3.html create mode 100644 static/freebsd/man9/hexdump.9 4.html create mode 100644 static/freebsd/man9/hhook.9 3.html create mode 100644 static/freebsd/man9/hz.9 3.html create mode 100644 static/freebsd/man9/ieee80211.9 3.html create mode 100644 static/freebsd/man9/ieee80211_amrr.9 3.html create mode 100644 static/freebsd/man9/ieee80211_beacon.9 3.html create mode 100644 static/freebsd/man9/ieee80211_bmiss.9 3.html create mode 100644 static/freebsd/man9/ieee80211_crypto.9 3.html create mode 100644 static/freebsd/man9/ieee80211_ddb.9 4.html create mode 100644 static/freebsd/man9/ieee80211_input.9 3.html create mode 100644 static/freebsd/man9/ieee80211_node.9 3.html create mode 100644 static/freebsd/man9/ieee80211_output.9 3.html create mode 100644 static/freebsd/man9/ieee80211_proto.9 3.html create mode 100644 static/freebsd/man9/ieee80211_radiotap.9 3.html create mode 100644 static/freebsd/man9/ieee80211_regdomain.9 3.html create mode 100644 static/freebsd/man9/ieee80211_scan.9 3.html create mode 100644 static/freebsd/man9/ieee80211_vap.9 3.html create mode 100644 static/freebsd/man9/iflib.9 4.html create mode 100644 static/freebsd/man9/iflibdd.9 4.html create mode 100644 static/freebsd/man9/iflibdi.9 4.html create mode 100644 static/freebsd/man9/iflibtxrx.9 3.html create mode 100644 static/freebsd/man9/ifnet.9 3.html create mode 100644 static/freebsd/man9/inittodr.9 3.html create mode 100644 static/freebsd/man9/insmntque.9 3.html create mode 100644 static/freebsd/man9/intr_event.9 3.html create mode 100644 static/freebsd/man9/intro.9 3.html create mode 100644 static/freebsd/man9/kasan.9 3.html create mode 100644 static/freebsd/man9/kern_reboot.9 3.html create mode 100644 static/freebsd/man9/kern_testfrwk.9 3.html create mode 100644 static/freebsd/man9/kern_yield.9 3.html create mode 100644 static/freebsd/man9/kernacc.9 4.html create mode 100644 static/freebsd/man9/kernel_mount.9 3.html create mode 100644 static/freebsd/man9/khelp.9 3.html create mode 100644 static/freebsd/man9/kmsan.9 3.html create mode 100644 static/freebsd/man9/kobj.9 3.html create mode 100644 static/freebsd/man9/kproc.9 3.html create mode 100644 static/freebsd/man9/kqueue.9 4.html create mode 100644 static/freebsd/man9/kstack_contains.9 4.html create mode 100644 static/freebsd/man9/kthread.9 3.html create mode 100644 static/freebsd/man9/ktr.9 4.html create mode 100644 static/freebsd/man9/lock.9 4.html create mode 100644 static/freebsd/man9/locking.9 3.html create mode 100644 static/freebsd/man9/mac.9 3.html create mode 100644 static/freebsd/man9/make_dev.9 4.html create mode 100644 static/freebsd/man9/malloc.9 4.html create mode 100644 static/freebsd/man9/mbchain.9 4.html create mode 100644 static/freebsd/man9/mbuf.9 4.html create mode 100644 static/freebsd/man9/mbuf_tags.9 4.html create mode 100644 static/freebsd/man9/mdchain.9 4.html create mode 100644 static/freebsd/man9/memcchr.9 4.html create mode 100644 static/freebsd/man9/memguard.9 3.html create mode 100644 static/freebsd/man9/mi_switch.9 3.html create mode 100644 static/freebsd/man9/microseq.9 4.html create mode 100644 static/freebsd/man9/microtime.9 4.html create mode 100644 static/freebsd/man9/microuptime.9 4.html create mode 100644 static/freebsd/man9/mod_cc.9 3.html create mode 100644 static/freebsd/man9/module.9 3.html create mode 100644 static/freebsd/man9/mtx_pool.9 3.html create mode 100644 static/freebsd/man9/mutex.9 4.html create mode 100644 static/freebsd/man9/namei.9 3.html create mode 100644 static/freebsd/man9/netisr.9 4.html create mode 100644 static/freebsd/man9/nv.9 4.html create mode 100644 static/freebsd/man9/nvmem.9 3.html create mode 100644 static/freebsd/man9/ofw_bus_is_compatible.9 3.html create mode 100644 static/freebsd/man9/ofw_bus_status_okay.9 4.html create mode 100644 static/freebsd/man9/ofw_graph.9 4.html create mode 100644 static/freebsd/man9/osd.9 4.html create mode 100644 static/freebsd/man9/owll.9 4.html create mode 100644 static/freebsd/man9/own.9 4.html create mode 100644 static/freebsd/man9/p.9 create mode 100644 static/freebsd/man9/p_candebug.9 4.html create mode 100644 static/freebsd/man9/p_cansee.9 4.html create mode 100644 static/freebsd/man9/panic.9 3.html create mode 100644 static/freebsd/man9/pci.9 4.html create mode 100644 static/freebsd/man9/pci_iov_schema.9 3.html create mode 100644 static/freebsd/man9/pfil.9 3.html create mode 100644 static/freebsd/man9/pfind.9 4.html create mode 100644 static/freebsd/man9/pget.9 4.html create mode 100644 static/freebsd/man9/pgfind.9 4.html create mode 100644 static/freebsd/man9/physio.9 4.html create mode 100644 static/freebsd/man9/pmap.9 4.html create mode 100644 static/freebsd/man9/pmap_activate.9 4.html create mode 100644 static/freebsd/man9/pmap_clear_modify.9 4.html create mode 100644 static/freebsd/man9/pmap_copy.9 4.html create mode 100644 static/freebsd/man9/pmap_enter.9 3.html create mode 100644 static/freebsd/man9/pmap_extract.9 4.html create mode 100644 static/freebsd/man9/pmap_growkernel.9 4.html create mode 100644 static/freebsd/man9/pmap_init.9 4.html create mode 100644 static/freebsd/man9/pmap_is_modified.9 4.html create mode 100644 static/freebsd/man9/pmap_is_prefaultable.9 4.html create mode 100644 static/freebsd/man9/pmap_kextract.9 4.html create mode 100644 static/freebsd/man9/pmap_map.9 4.html create mode 100644 static/freebsd/man9/pmap_mincore.9 4.html create mode 100644 static/freebsd/man9/pmap_object_init_pt.9 4.html create mode 100644 static/freebsd/man9/pmap_page_exists_quick.9 4.html create mode 100644 static/freebsd/man9/pmap_page_init.9 4.html create mode 100644 static/freebsd/man9/pmap_pinit.9 4.html create mode 100644 static/freebsd/man9/pmap_protect.9 4.html create mode 100644 static/freebsd/man9/pmap_qenter.9 4.html create mode 100644 static/freebsd/man9/pmap_quick_enter_page.9 4.html create mode 100644 static/freebsd/man9/pmap_release.9 4.html create mode 100644 static/freebsd/man9/pmap_remove.9 4.html create mode 100644 static/freebsd/man9/pmap_resident_count.9 4.html create mode 100644 static/freebsd/man9/pmap_unwire.9 4.html create mode 100644 static/freebsd/man9/pmap_zero_page.9 4.html create mode 100644 static/freebsd/man9/printf.9 3.html create mode 100644 static/freebsd/man9/prison_check.9 4.html create mode 100644 static/freebsd/man9/priv.9 3.html create mode 100644 static/freebsd/man9/prng.9 4.html create mode 100644 static/freebsd/man9/proc_rwmem.9 4.html create mode 100644 static/freebsd/man9/pseudofs.9 4.html create mode 100644 static/freebsd/man9/psignal.9 3.html create mode 100644 static/freebsd/man9/pwmbus.9 3.html create mode 100644 static/freebsd/man9/random.9 4.html create mode 100644 static/freebsd/man9/random_harvest.9 4.html create mode 100644 static/freebsd/man9/ratecheck.9 4.html create mode 100644 static/freebsd/man9/redzone.9 4.html create mode 100644 static/freebsd/man9/refcount.9 3.html create mode 100644 static/freebsd/man9/regulator.9 4.html create mode 100644 static/freebsd/man9/resettodr.9 4.html create mode 100644 static/freebsd/man9/resource_int_value.9 4.html create mode 100644 static/freebsd/man9/rijndael.9 3.html create mode 100644 static/freebsd/man9/rman.9 4.html create mode 100644 static/freebsd/man9/rmlock.9 4.html create mode 100644 static/freebsd/man9/rtentry.9 3.html create mode 100644 static/freebsd/man9/runqueue.9 3.html create mode 100644 static/freebsd/man9/rwlock.9 4.html create mode 100644 static/freebsd/man9/sbuf.9 4.html create mode 100644 static/freebsd/man9/scheduler.9 4.html create mode 100644 static/freebsd/man9/securelevel_gt.9 4.html create mode 100644 static/freebsd/man9/selrecord.9 4.html create mode 100644 static/freebsd/man9/sema.9 4.html create mode 100644 static/freebsd/man9/seqc.9 4.html create mode 100644 static/freebsd/man9/sf_buf.9 3.html create mode 100644 static/freebsd/man9/sglist.9 4.html create mode 100644 static/freebsd/man9/shm_map.9 4.html create mode 100644 static/freebsd/man9/signal.9 4.html create mode 100644 static/freebsd/man9/sleep.9 4.html create mode 100644 static/freebsd/man9/sleepqueue.9 4.html create mode 100644 static/freebsd/man9/smr.9 3.html create mode 100644 static/freebsd/man9/socket.9 4.html create mode 100644 static/freebsd/man9/stack.9 4.html create mode 100644 static/freebsd/man9/store.9 4.html create mode 100644 static/freebsd/man9/style.9 3.html create mode 100644 static/freebsd/man9/style.lua.9 3.html create mode 100644 static/freebsd/man9/superio.9 4.html create mode 100644 static/freebsd/man9/swi.9 3.html create mode 100644 static/freebsd/man9/sx.9 4.html create mode 100644 static/freebsd/man9/syscall_helper_register.9 4.html create mode 100644 static/freebsd/man9/sysctl.9 3.html create mode 100644 static/freebsd/man9/sysctl_add_oid.9 3.html create mode 100644 static/freebsd/man9/sysctl_ctx_init.9 3.html create mode 100644 static/freebsd/man9/taskqueue.9 4.html create mode 100644 static/freebsd/man9/tcp_functions.9 3.html create mode 100644 static/freebsd/man9/thread_exit.9 4.html create mode 100644 static/freebsd/man9/time.9 4.html create mode 100644 static/freebsd/man9/tvtohz.9 4.html create mode 100644 static/freebsd/man9/ucred.9 4.html create mode 100644 static/freebsd/man9/uidinfo.9 4.html create mode 100644 static/freebsd/man9/uio.9 3.html create mode 100644 static/freebsd/man9/unr.9 4.html create mode 100644 static/freebsd/man9/usbdi.9 3.html create mode 100644 static/freebsd/man9/vaccess.9 3.html create mode 100644 static/freebsd/man9/vaccess_acl_nfs4.9 3.html create mode 100644 static/freebsd/man9/vaccess_acl_posix1e.9 3.html create mode 100644 static/freebsd/man9/vflush.9 4.html create mode 100644 static/freebsd/man9/vfs_busy.9 4.html create mode 100644 static/freebsd/man9/vfs_getnewfsid.9 4.html create mode 100644 static/freebsd/man9/vfs_getopt.9 4.html create mode 100644 static/freebsd/man9/vfs_getvfs.9 4.html create mode 100644 static/freebsd/man9/vfs_mountedfrom.9 4.html create mode 100644 static/freebsd/man9/vfs_rootmountalloc.9 4.html create mode 100644 static/freebsd/man9/vfs_suser.9 4.html create mode 100644 static/freebsd/man9/vfs_timestamp.9 4.html create mode 100644 static/freebsd/man9/vfs_unbusy.9 4.html create mode 100644 static/freebsd/man9/vfs_unmountall.9 4.html create mode 100644 static/freebsd/man9/vfsconf.9 3.html create mode 100644 static/freebsd/man9/vget.9 4.html create mode 100644 static/freebsd/man9/vgone.9 4.html create mode 100644 static/freebsd/man9/vhold.9 4.html create mode 100644 static/freebsd/man9/vinvalbuf.9 4.html create mode 100644 static/freebsd/man9/vm_fault_prefault.9 4.html create mode 100644 static/freebsd/man9/vm_map.9 4.html create mode 100644 static/freebsd/man9/vm_map_check_protection.9 4.html create mode 100644 static/freebsd/man9/vm_map_delete.9 4.html create mode 100644 static/freebsd/man9/vm_map_entry_resize_free.9 3.html create mode 100644 static/freebsd/man9/vm_map_find.9 3.html create mode 100644 static/freebsd/man9/vm_map_findspace.9 4.html create mode 100644 static/freebsd/man9/vm_map_inherit.9 4.html create mode 100644 static/freebsd/man9/vm_map_init.9 4.html create mode 100644 static/freebsd/man9/vm_map_insert.9 4.html create mode 100644 static/freebsd/man9/vm_map_lock.9 4.html create mode 100644 static/freebsd/man9/vm_map_lookup.9 3.html create mode 100644 static/freebsd/man9/vm_map_madvise.9 4.html create mode 100644 static/freebsd/man9/vm_map_max.9 4.html create mode 100644 static/freebsd/man9/vm_map_protect.9 3.html create mode 100644 static/freebsd/man9/vm_map_remove.9 4.html create mode 100644 static/freebsd/man9/vm_map_stack.9 3.html create mode 100644 static/freebsd/man9/vm_map_submap.9 3.html create mode 100644 static/freebsd/man9/vm_map_sync.9 4.html create mode 100644 static/freebsd/man9/vm_map_wire.9 3.html create mode 100644 static/freebsd/man9/vm_page_aflag.9 4.html create mode 100644 static/freebsd/man9/vm_page_alloc.9 4.html create mode 100644 static/freebsd/man9/vm_page_bits.9 4.html create mode 100644 static/freebsd/man9/vm_page_busy.9 4.html create mode 100644 static/freebsd/man9/vm_page_deactivate.9 4.html create mode 100644 static/freebsd/man9/vm_page_dontneed.9 4.html create mode 100644 static/freebsd/man9/vm_page_free.9 3.html create mode 100644 static/freebsd/man9/vm_page_grab.9 4.html create mode 100644 static/freebsd/man9/vm_page_insert.9 4.html create mode 100644 static/freebsd/man9/vm_page_lookup.9 4.html create mode 100644 static/freebsd/man9/vm_page_rename.9 4.html create mode 100644 static/freebsd/man9/vm_page_wire.9 4.html create mode 100644 static/freebsd/man9/vm_set_page_size.9 4.html create mode 100644 static/freebsd/man9/vmem.9 3.html create mode 100644 static/freebsd/man9/vn_deallocate.9 4.html create mode 100644 static/freebsd/man9/vn_fullpath.9 3.html create mode 100644 static/freebsd/man9/vn_isdisk.9 4.html create mode 100644 static/freebsd/man9/vnode.9 3.html create mode 100644 static/freebsd/man9/vnode_pager_purge_range.9 4.html create mode 100644 static/freebsd/man9/vnode_pager_setsize.9 4.html create mode 100644 static/freebsd/man9/vref.9 4.html create mode 100644 static/freebsd/man9/vrefcnt.9 4.html create mode 100644 static/freebsd/man9/vrele.9 4.html create mode 100644 static/freebsd/man9/vslock.9 4.html create mode 100644 static/freebsd/man9/watchdog.9 4.html create mode 100644 static/freebsd/man9/zero_region.9 4.html create mode 100644 static/freebsd/man9/zone.9 3.html diff --git a/static/freebsd/Makefile b/static/freebsd/Makefile index 00ad298e..f372f268 100644 --- a/static/freebsd/Makefile +++ b/static/freebsd/Makefile @@ -1,4 +1,5 @@ SUBDIRS = man1 man3 man3lua man4 man5 man6 man7 man8 man9 +export OS="FreeBSD 15.0" include ../subdir.mk diff --git a/static/freebsd/man1/1.1 b/static/freebsd/man1/1.1 new file mode 100644 index 00000000..70fd43b5 --- /dev/null +++ b/static/freebsd/man1/1.1 @@ -0,0 +1,28 @@ +e1_l1_1 +e1_l1_1 +e1_l1_2 +e1_l1_2 +e1_l1_3 +e1_l1_3 +e1_l1_4 +e1_l1_4 +e1_l1_5 +e1_l1_5 +e1_l1_6 +e1_l1_6 +e1_l1_7 +e1_l1_7 +e1_l1_8 +e1_l1_8 +e1_l1_9 +e1_l1_9 +e1_l1_10 +e1_l1_10 +e1_l1_11 +e1_l1_11 +e1_l1_12 +e1_l1_12 +e1_l1_13 +e1_l1_13 +e1_l1_14 +e1_l1_14 diff --git a/static/freebsd/man1/1.4.1 b/static/freebsd/man1/1.4.1 new file mode 100644 index 00000000..3bcc601e --- /dev/null +++ b/static/freebsd/man1/1.4.1 @@ -0,0 +1,14 @@ +l1_1 +l1_2 +l1_3 +l1_4 +l1_5 +l1_6 +l1_7 +l1_8 +l1_9 +l1_10 +l1_11 +l1_12 +l1_13 +l1_14 diff --git a/static/freebsd/man1/2.1 b/static/freebsd/man1/2.1 new file mode 100644 index 00000000..a7c92f0e --- /dev/null +++ b/static/freebsd/man1/2.1 @@ -0,0 +1 @@ +l1_4 diff --git a/static/freebsd/man1/3.1 b/static/freebsd/man1/3.1 new file mode 100644 index 00000000..f963b03f --- /dev/null +++ b/static/freebsd/man1/3.1 @@ -0,0 +1,14 @@ +l1_1 +l1_2 +l1_3 +^l1T4$ +^l1T5$ +^l1T6$ +^l1T7$ +^l1T8$ +^l1T9$ +^l1T10$ +^l1T11$ +^l1T12$ +l1_13 +l1_14 diff --git a/static/freebsd/man1/4.1 b/static/freebsd/man1/4.1 new file mode 100644 index 00000000..455093ce --- /dev/null +++ b/static/freebsd/man1/4.1 @@ -0,0 +1,47 @@ +before_il1_1 +after_ibefore_il1_1 +before_il1_2 +after_ibefore_il1_2 +before_il1_3 +after_ibefore_il1_3 +before_il1_4 +after_ibefore_il1_4 +before_il1_5 +after_ibefore_il1_5 +before_il1_6 +after_ibefore_il1_6 +before_il1_7 +after_ibefore_il1_7 +before_il1_8 +after_ibefore_il1_8 +before_il1_9 +after_ibefore_il1_9 +before_il1_10 +after_ibefore_il1_10 +before_il1_11 +after_ibefore_il1_11 +before_il1_12 +after_ibefore_il1_12 +before_il1_13 +after_ibefore_il1_13 +before_il1_14 +after_ibefore_il1_14 +before_il2_1 +after_ibefore_il2_1 +before_il2_2 +after_ibefore_il2_2 +before_il2_3 +after_ibefore_il2_3 +before_il2_4 +after_ibefore_il2_4 +before_il2_5 +after_ibefore_il2_5 +before_il2_6 +inserted +after_ibefore_il2_6 +before_il2_7 +after_ibefore_il2_7 +before_il2_8 +after_ibefore_il2_8 +before_il2_9 +after_ibefore_il2_9 diff --git a/static/freebsd/man1/5.1 b/static/freebsd/man1/5.1 new file mode 100644 index 00000000..ac9202e6 --- /dev/null +++ b/static/freebsd/man1/5.1 @@ -0,0 +1,17 @@ +label2_l1_1 +label3_label2_l1_1 +label1_l1_2 +label1_l1_3 +label1_l1_4 +label1_l1_5 +label1_l1_6 +label1_l1_7 +label1_l1_8 +label1_l1_9 +label1_l1_10 +label1_l1_11 +label1_l1_12 +label2_l1_13 +label3_label2_l1_13 +label2_l1_14 +label3_label2_l1_14 diff --git a/static/freebsd/man1/6.1 b/static/freebsd/man1/6.1 new file mode 100644 index 00000000..78db2a52 --- /dev/null +++ b/static/freebsd/man1/6.1 @@ -0,0 +1,14 @@ +changed +changed +changed +changed +changed +changed +changed +changed +changed +changed +changed +changed +changed +changed diff --git a/static/freebsd/man1/7.1 b/static/freebsd/man1/7.1 new file mode 100644 index 00000000..586cac7b --- /dev/null +++ b/static/freebsd/man1/7.1 @@ -0,0 +1,15 @@ +\001\002\003\004\005\006\a\b\t$ +\v\f\r\016\017\020\021\022\023\024\025\026\027\030\031\032\ +\033\034\035\036\037 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEF\ +GHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~\ +\177\200\201\202\203\204\205\206\207\210\211\212\213\214\ +\215\216\217\220\221\222\223\224\225\226\227\230\231\232\ +\233\234\235\236\237\240\241\242\243\244\245\246\247\250\ +\251\252\253\254\255\256\257\260\261\262\263\264\265\266\ +\267\270\271\272\273\274\275\276\277\300\301\302\303\304\ +\305\306\307\310\311\312\313\314\315\316\317\320\321\322\ +\323\324\325\326\327\330\331\332\333\334\335\336\337\340\ +\341\342\343\344\345\346\347\350\351\352\353\354\355\356\ +\357\360\361\362\363\364\365\366\367\370\371\372\373\374\ +\375\376\377$ +$ diff --git a/static/freebsd/man1/8.1 b/static/freebsd/man1/8.1 new file mode 100644 index 00000000..dcf124b4 --- /dev/null +++ b/static/freebsd/man1/8.1 @@ -0,0 +1,14 @@ +XXXX +XXXX +XXXX +XXXX +XXXX +XXXX +XXXX +XXXX +XXXX +XXXXX +XXXXX +XXXXX +XXXXX +XXXXX diff --git a/static/freebsd/man1/9.1 b/static/freebsd/man1/9.1 new file mode 100644 index 00000000..d00491fd --- /dev/null +++ b/static/freebsd/man1/9.1 @@ -0,0 +1 @@ +1 diff --git a/static/freebsd/man1/A.1 b/static/freebsd/man1/A.1 new file mode 100644 index 00000000..50c14dd4 --- /dev/null +++ b/static/freebsd/man1/A.1 @@ -0,0 +1,1695 @@ +.\" +.\" SPDX-License-Identifier: BSD-2-Clause +.\" +.\" Copyright (c) 2018-2025 Gavin D. Howard and contributors. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions are met: +.\" +.\" * Redistributions of source code must retain the above copyright notice, +.\" this list of conditions and the following disclaimer. +.\" +.\" * Redistributions in binary form must reproduce the above copyright notice, +.\" this list of conditions and the following disclaimer in the documentation +.\" and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +.\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +.\" LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +.\" POSSIBILITY OF SUCH DAMAGE. +.\" +.TH "DC" "1" "August 2024" "Gavin D. Howard" "General Commands Manual" +.nh +.ad l +.SH Name +dc \- arbitrary\-precision decimal reverse\-Polish notation calculator +.SH SYNOPSIS +\f[B]dc\f[R] [\f[B]\-cChiPRvVx\f[R]] [\f[B]\-\-version\f[R]] +[\f[B]\-\-help\f[R]] [\f[B]\-\-digit\-clamp\f[R]] +[\f[B]\-\-no\-digit\-clamp\f[R]] [\f[B]\-\-interactive\f[R]] +[\f[B]\-\-no\-prompt\f[R]] [\f[B]\-\-no\-read\-prompt\f[R]] +[\f[B]\-\-extended\-register\f[R]] [\f[B]\-e\f[R] \f[I]expr\f[R]] +[\f[B]\-\-expression\f[R]=\f[I]expr\f[R]\&...] +[\f[B]\-f\f[R] \f[I]file\f[R]\&...] +[\f[B]\-\-file\f[R]=\f[I]file\f[R]\&...] +[\f[I]file\f[R]\&...] +[\f[B]\-I\f[R] \f[I]ibase\f[R]] [\f[B]\-\-ibase\f[R]=\f[I]ibase\f[R]] +[\f[B]\-O\f[R] \f[I]obase\f[R]] [\f[B]\-\-obase\f[R]=\f[I]obase\f[R]] +[\f[B]\-S\f[R] \f[I]scale\f[R]] [\f[B]\-\-scale\f[R]=\f[I]scale\f[R]] +[\f[B]\-E\f[R] \f[I]seed\f[R]] [\f[B]\-\-seed\f[R]=\f[I]seed\f[R]] +.SH DESCRIPTION +dc(1) is an arbitrary\-precision calculator. +It uses a stack (reverse Polish notation) to store numbers and results +of computations. +Arithmetic operations pop arguments off of the stack and push the +results. +.PP +If no files are given on the command\-line, then dc(1) reads from +\f[B]stdin\f[R] (see the \f[B]STDIN\f[R] section). +Otherwise, those files are processed, and dc(1) will then exit. +.PP +If a user wants to set up a standard environment, they can use +\f[B]DC_ENV_ARGS\f[R] (see the \f[B]ENVIRONMENT VARIABLES\f[R] section). +For example, if a user wants the \f[B]scale\f[R] always set to +\f[B]10\f[R], they can set \f[B]DC_ENV_ARGS\f[R] to \f[B]\-e 10k\f[R], +and this dc(1) will always start with a \f[B]scale\f[R] of \f[B]10\f[R]. +.SH OPTIONS +The following are the options that dc(1) accepts. +.TP +\f[B]\-C\f[R], \f[B]\-\-no\-digit\-clamp\f[R] +Disables clamping of digits greater than or equal to the current +\f[B]ibase\f[R] when parsing numbers. +.RS +.PP +This means that the value added to a number from a digit is always that +digit\[cq]s value multiplied by the value of ibase raised to the power +of the digit\[cq]s position, which starts from 0 at the least +significant digit. +.PP +If this and/or the \f[B]\-c\f[R] or \f[B]\-\-digit\-clamp\f[R] options +are given multiple times, the last one given is used. +.PP +This option overrides the \f[B]DC_DIGIT_CLAMP\f[R] environment variable +(see the \f[B]ENVIRONMENT VARIABLES\f[R] section) and the default, which +can be queried with the \f[B]\-h\f[R] or \f[B]\-\-help\f[R] options. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-c\f[R], \f[B]\-\-digit\-clamp\f[R] +Enables clamping of digits greater than or equal to the current +\f[B]ibase\f[R] when parsing numbers. +.RS +.PP +This means that digits that the value added to a number from a digit +that is greater than or equal to the ibase is the value of ibase minus 1 +all multiplied by the value of ibase raised to the power of the +digit\[cq]s position, which starts from 0 at the least significant +digit. +.PP +If this and/or the \f[B]\-C\f[R] or \f[B]\-\-no\-digit\-clamp\f[R] +options are given multiple times, the last one given is used. +.PP +This option overrides the \f[B]DC_DIGIT_CLAMP\f[R] environment variable +(see the \f[B]ENVIRONMENT VARIABLES\f[R] section) and the default, which +can be queried with the \f[B]\-h\f[R] or \f[B]\-\-help\f[R] options. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-E\f[R] \f[I]seed\f[R], \f[B]\-\-seed\f[R]=\f[I]seed\f[R] +Sets the builtin variable \f[B]seed\f[R] to the value \f[I]seed\f[R] +assuming that \f[I]seed\f[R] is in base 10. +It is a fatal error if \f[I]seed\f[R] is not a valid number. +.RS +.PP +If multiple instances of this option are given, the last is used. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-e\f[R] \f[I]expr\f[R], \f[B]\-\-expression\f[R]=\f[I]expr\f[R] +Evaluates \f[I]expr\f[R]. +If multiple expressions are given, they are evaluated in order. +If files are given as well (see below), the expressions and files are +evaluated in the order given. +This means that if a file is given before an expression, the file is +read in and evaluated first. +.RS +.PP +If this option is given on the command\-line (i.e., not in +\f[B]DC_ENV_ARGS\f[R], see the \f[B]ENVIRONMENT VARIABLES\f[R] section), +then after processing all expressions and files, dc(1) will exit, unless +\f[B]\-\f[R] (\f[B]stdin\f[R]) was given as an argument at least once to +\f[B]\-f\f[R] or \f[B]\-\-file\f[R], whether on the command\-line or in +\f[B]DC_ENV_ARGS\f[R]. +However, if any other \f[B]\-e\f[R], \f[B]\-\-expression\f[R], +\f[B]\-f\f[R], or \f[B]\-\-file\f[R] arguments are given after +\f[B]\-f\-\f[R] or equivalent is given, dc(1) will give a fatal error +and exit. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-f\f[R] \f[I]file\f[R], \f[B]\-\-file\f[R]=\f[I]file\f[R] +Reads in \f[I]file\f[R] and evaluates it, line by line, as though it +were read through \f[B]stdin\f[R]. +If expressions are also given (see above), the expressions are evaluated +in the order given. +.RS +.PP +If this option is given on the command\-line (i.e., not in +\f[B]DC_ENV_ARGS\f[R], see the \f[B]ENVIRONMENT VARIABLES\f[R] section), +then after processing all expressions and files, dc(1) will exit, unless +\f[B]\-\f[R] (\f[B]stdin\f[R]) was given as an argument at least once to +\f[B]\-f\f[R] or \f[B]\-\-file\f[R]. +However, if any other \f[B]\-e\f[R], \f[B]\-\-expression\f[R], +\f[B]\-f\f[R], or \f[B]\-\-file\f[R] arguments are given after +\f[B]\-f\-\f[R] or equivalent is given, dc(1) will give a fatal error +and exit. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-h\f[R], \f[B]\-\-help\f[R] +Prints a usage message and exits. +.TP +\f[B]\-I\f[R] \f[I]ibase\f[R], \f[B]\-\-ibase\f[R]=\f[I]ibase\f[R] +Sets the builtin variable \f[B]ibase\f[R] to the value \f[I]ibase\f[R] +assuming that \f[I]ibase\f[R] is in base 10. +It is a fatal error if \f[I]ibase\f[R] is not a valid number. +.RS +.PP +If multiple instances of this option are given, the last is used. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-i\f[R], \f[B]\-\-interactive\f[R] +Forces interactive mode. +(See the \f[B]INTERACTIVE MODE\f[R] section.) +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-L\f[R], \f[B]\-\-no\-line\-length\f[R] +Disables line length checking and prints numbers without backslashes and +newlines. +In other words, this option sets \f[B]BC_LINE_LENGTH\f[R] to \f[B]0\f[R] +(see the \f[B]ENVIRONMENT VARIABLES\f[R] section). +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-O\f[R] \f[I]obase\f[R], \f[B]\-\-obase\f[R]=\f[I]obase\f[R] +Sets the builtin variable \f[B]obase\f[R] to the value \f[I]obase\f[R] +assuming that \f[I]obase\f[R] is in base 10. +It is a fatal error if \f[I]obase\f[R] is not a valid number. +.RS +.PP +If multiple instances of this option are given, the last is used. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-P\f[R], \f[B]\-\-no\-prompt\f[R] +Disables the prompt in TTY mode. +(The prompt is only enabled in TTY mode. +See the \f[B]TTY MODE\f[R] section.) +This is mostly for those users that do not want a prompt or are not used +to having them in dc(1). +Most of those users would want to put this option in +\f[B]DC_ENV_ARGS\f[R]. +.RS +.PP +These options override the \f[B]DC_PROMPT\f[R] and \f[B]DC_TTY_MODE\f[R] +environment variables (see the \f[B]ENVIRONMENT VARIABLES\f[R] section). +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-R\f[R], \f[B]\-\-no\-read\-prompt\f[R] +Disables the read prompt in TTY mode. +(The read prompt is only enabled in TTY mode. +See the \f[B]TTY MODE\f[R] section.) +This is mostly for those users that do not want a read prompt or are not +used to having them in dc(1). +Most of those users would want to put this option in +\f[B]BC_ENV_ARGS\f[R] (see the \f[B]ENVIRONMENT VARIABLES\f[R] section). +This option is also useful in hash bang lines of dc(1) scripts that +prompt for user input. +.RS +.PP +This option does not disable the regular prompt because the read prompt +is only used when the \f[B]?\f[R] command is used. +.PP +These options \f[I]do\f[R] override the \f[B]DC_PROMPT\f[R] and +\f[B]DC_TTY_MODE\f[R] environment variables (see the \f[B]ENVIRONMENT +VARIABLES\f[R] section), but only for the read prompt. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-S\f[R] \f[I]scale\f[R], \f[B]\-\-scale\f[R]=\f[I]scale\f[R] +Sets the builtin variable \f[B]scale\f[R] to the value \f[I]scale\f[R] +assuming that \f[I]scale\f[R] is in base 10. +It is a fatal error if \f[I]scale\f[R] is not a valid number. +.RS +.PP +If multiple instances of this option are given, the last is used. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-v\f[R], \f[B]\-V\f[R], \f[B]\-\-version\f[R] +Print the version information (copyright header) and exits. +.TP +\f[B]\-x\f[R] \f[B]\-\-extended\-register\f[R] +Enables extended register mode. +See the \f[I]Extended Register Mode\f[R] subsection of the +\f[B]REGISTERS\f[R] section for more information. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-z\f[R], \f[B]\-\-leading\-zeroes\f[R] +Makes dc(1) print all numbers greater than \f[B]\-1\f[R] and less than +\f[B]1\f[R], and not equal to \f[B]0\f[R], with a leading zero. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.PP +All long options are \f[B]non\-portable extensions\f[R]. +.SH STDIN +If no files are given on the command\-line and no files or expressions +are given by the \f[B]\-f\f[R], \f[B]\-\-file\f[R], \f[B]\-e\f[R], or +\f[B]\-\-expression\f[R] options, then dc(1) reads from \f[B]stdin\f[R]. +.PP +However, there is a caveat to this. +.PP +First, \f[B]stdin\f[R] is evaluated a line at a time. +The only exception to this is if a string has been finished, but not +ended. +This means that, except for escaped brackets, all brackets must be +balanced before dc(1) parses and executes. +.SH STDOUT +Any non\-error output is written to \f[B]stdout\f[R]. +In addition, if history (see the \f[B]HISTORY\f[R] section) and the +prompt (see the \f[B]TTY MODE\f[R] section) are enabled, both are output +to \f[B]stdout\f[R]. +.PP +\f[B]Note\f[R]: Unlike other dc(1) implementations, this dc(1) will +issue a fatal error (see the \f[B]EXIT STATUS\f[R] section) if it cannot +write to \f[B]stdout\f[R], so if \f[B]stdout\f[R] is closed, as in +\f[B]dc >&\-\f[R], it will quit with an error. +This is done so that dc(1) can report problems when \f[B]stdout\f[R] is +redirected to a file. +.PP +If there are scripts that depend on the behavior of other dc(1) +implementations, it is recommended that those scripts be changed to +redirect \f[B]stdout\f[R] to \f[B]/dev/null\f[R]. +.SH STDERR +Any error output is written to \f[B]stderr\f[R]. +.PP +\f[B]Note\f[R]: Unlike other dc(1) implementations, this dc(1) will +issue a fatal error (see the \f[B]EXIT STATUS\f[R] section) if it cannot +write to \f[B]stderr\f[R], so if \f[B]stderr\f[R] is closed, as in +\f[B]dc 2>&\-\f[R], it will quit with an error. +This is done so that dc(1) can exit with an error code when +\f[B]stderr\f[R] is redirected to a file. +.PP +If there are scripts that depend on the behavior of other dc(1) +implementations, it is recommended that those scripts be changed to +redirect \f[B]stderr\f[R] to \f[B]/dev/null\f[R]. +.SH SYNTAX +Each item in the input source code, either a number (see the +\f[B]NUMBERS\f[R] section) or a command (see the \f[B]COMMANDS\f[R] +section), is processed and executed, in order. +Input is processed immediately when entered. +.PP +\f[B]ibase\f[R] is a register (see the \f[B]REGISTERS\f[R] section) that +determines how to interpret constant numbers. +It is the \[lq]input\[rq] base, or the number base used for interpreting +input numbers. +\f[B]ibase\f[R] is initially \f[B]10\f[R]. +The max allowable value for \f[B]ibase\f[R] is \f[B]16\f[R]. +The min allowable value for \f[B]ibase\f[R] is \f[B]2\f[R]. +The max allowable value for \f[B]ibase\f[R] can be queried in dc(1) +programs with the \f[B]T\f[R] command. +.PP +\f[B]obase\f[R] is a register (see the \f[B]REGISTERS\f[R] section) that +determines how to output results. +It is the \[lq]output\[rq] base, or the number base used for outputting +numbers. +\f[B]obase\f[R] is initially \f[B]10\f[R]. +The max allowable value for \f[B]obase\f[R] is \f[B]DC_BASE_MAX\f[R] and +can be queried with the \f[B]U\f[R] command. +The min allowable value for \f[B]obase\f[R] is \f[B]0\f[R]. +If \f[B]obase\f[R] is \f[B]0\f[R], values are output in scientific +notation, and if \f[B]obase\f[R] is \f[B]1\f[R], values are output in +engineering notation. +Otherwise, values are output in the specified base. +.PP +Outputting in scientific and engineering notations are +\f[B]non\-portable extensions\f[R]. +.PP +The \f[I]scale\f[R] of an expression is the number of digits in the +result of the expression right of the decimal point, and \f[B]scale\f[R] +is a register (see the \f[B]REGISTERS\f[R] section) that sets the +precision of any operations (with exceptions). +\f[B]scale\f[R] is initially \f[B]0\f[R]. +\f[B]scale\f[R] cannot be negative. +The max allowable value for \f[B]scale\f[R] can be queried in dc(1) +programs with the \f[B]V\f[R] command. +.PP +\f[B]seed\f[R] is a register containing the current seed for the +pseudo\-random number generator. +If the current value of \f[B]seed\f[R] is queried and stored, then if it +is assigned to \f[B]seed\f[R] later, the pseudo\-random number generator +is guaranteed to produce the same sequence of pseudo\-random numbers +that were generated after the value of \f[B]seed\f[R] was first queried. +.PP +Multiple values assigned to \f[B]seed\f[R] can produce the same sequence +of pseudo\-random numbers. +Likewise, when a value is assigned to \f[B]seed\f[R], it is not +guaranteed that querying \f[B]seed\f[R] immediately after will return +the same value. +In addition, the value of \f[B]seed\f[R] will change after any call to +the \f[B]\[cq]\f[R] command or the \f[B]\[lq]\f[R] command that does not +get receive a value of \f[B]0\f[R] or \f[B]1\f[R]. +The maximum integer returned by the \f[B]\[cq]\f[R] command can be +queried with the \f[B]W\f[R] command. +.PP +\f[B]Note\f[R]: The values returned by the pseudo\-random number +generator with the \f[B]\[cq]\f[R] and \f[B]\[lq]\f[R] commands are +guaranteed to \f[B]NOT\f[R] be cryptographically secure. +This is a consequence of using a seeded pseudo\-random number generator. +However, they \f[I]are\f[R] guaranteed to be reproducible with identical +\f[B]seed\f[R] values. +This means that the pseudo\-random values from dc(1) should only be used +where a reproducible stream of pseudo\-random numbers is +\f[I]ESSENTIAL\f[R]. +In any other case, use a non\-seeded pseudo\-random number generator. +.PP +The pseudo\-random number generator, \f[B]seed\f[R], and all associated +operations are \f[B]non\-portable extensions\f[R]. +.SS Comments +Comments go from \f[B]#\f[R] until, and not including, the next newline. +This is a \f[B]non\-portable extension\f[R]. +.SH NUMBERS +Numbers are strings made up of digits, uppercase letters up to +\f[B]F\f[R], and at most \f[B]1\f[R] period for a radix. +Numbers can have up to \f[B]DC_NUM_MAX\f[R] digits. +Uppercase letters are equal to \f[B]9\f[R] plus their position in the +alphabet (i.e., \f[B]A\f[R] equals \f[B]10\f[R], or \f[B]9+1\f[R]). +.PP +If a digit or letter makes no sense with the current value of +\f[B]ibase\f[R] (i.e., they are greater than or equal to the current +value of \f[B]ibase\f[R]), then the behavior depends on the existence of +the \f[B]\-c\f[R]/\f[B]\-\-digit\-clamp\f[R] or +\f[B]\-C\f[R]/\f[B]\-\-no\-digit\-clamp\f[R] options (see the +\f[B]OPTIONS\f[R] section), the existence and setting of the +\f[B]DC_DIGIT_CLAMP\f[R] environment variable (see the \f[B]ENVIRONMENT +VARIABLES\f[R] section), or the default, which can be queried with the +\f[B]\-h\f[R]/\f[B]\-\-help\f[R] option. +.PP +If clamping is off, then digits or letters that are greater than or +equal to the current value of \f[B]ibase\f[R] are not changed. +Instead, their given value is multiplied by the appropriate power of +\f[B]ibase\f[R] and added into the number. +This means that, with an \f[B]ibase\f[R] of \f[B]3\f[R], the number +\f[B]AB\f[R] is equal to \f[B]3\[ha]1*A+3\[ha]0*B\f[R], which is +\f[B]3\f[R] times \f[B]10\f[R] plus \f[B]11\f[R], or \f[B]41\f[R]. +.PP +If clamping is on, then digits or letters that are greater than or equal +to the current value of \f[B]ibase\f[R] are set to the value of the +highest valid digit in \f[B]ibase\f[R] before being multiplied by the +appropriate power of \f[B]ibase\f[R] and added into the number. +This means that, with an \f[B]ibase\f[R] of \f[B]3\f[R], the number +\f[B]AB\f[R] is equal to \f[B]3\[ha]1*2+3\[ha]0*2\f[R], which is +\f[B]3\f[R] times \f[B]2\f[R] plus \f[B]2\f[R], or \f[B]8\f[R]. +.PP +There is one exception to clamping: single\-character numbers (i.e., +\f[B]A\f[R] alone). +Such numbers are never clamped and always take the value they would have +in the highest possible \f[B]ibase\f[R]. +This means that \f[B]A\f[R] alone always equals decimal \f[B]10\f[R] and +\f[B]Z\f[R] alone always equals decimal \f[B]35\f[R]. +This behavior is mandated by the standard for bc(1) (see the STANDARDS +section) and is meant to provide an easy way to set the current +\f[B]ibase\f[R] (with the \f[B]i\f[R] command) regardless of the current +value of \f[B]ibase\f[R]. +.PP +If clamping is on, and the clamped value of a character is needed, use a +leading zero, i.e., for \f[B]A\f[R], use \f[B]0A\f[R]. +.PP +In addition, dc(1) accepts numbers in scientific notation. +These have the form \f[B]e\f[R]. +The exponent (the portion after the \f[B]e\f[R]) must be an integer. +An example is \f[B]1.89237e9\f[R], which is equal to +\f[B]1892370000\f[R]. +Negative exponents are also allowed, so \f[B]4.2890e_3\f[R] is equal to +\f[B]0.0042890\f[R]. +.PP +\f[B]WARNING\f[R]: Both the number and the exponent in scientific +notation are interpreted according to the current \f[B]ibase\f[R], but +the number is still multiplied by \f[B]10\[ha]exponent\f[R] regardless +of the current \f[B]ibase\f[R]. +For example, if \f[B]ibase\f[R] is \f[B]16\f[R] and dc(1) is given the +number string \f[B]FFeA\f[R], the resulting decimal number will be +\f[B]2550000000000\f[R], and if dc(1) is given the number string +\f[B]10e_4\f[R], the resulting decimal number will be \f[B]0.0016\f[R]. +.PP +Accepting input as scientific notation is a \f[B]non\-portable +extension\f[R]. +.SH COMMANDS +The valid commands are listed below. +.SS Printing +These commands are used for printing. +.PP +Note that both scientific notation and engineering notation are +available for printing numbers. +Scientific notation is activated by assigning \f[B]0\f[R] to +\f[B]obase\f[R] using \f[B]0o\f[R], and engineering notation is +activated by assigning \f[B]1\f[R] to \f[B]obase\f[R] using +\f[B]1o\f[R]. +To deactivate them, just assign a different value to \f[B]obase\f[R]. +.PP +Printing numbers in scientific notation and/or engineering notation is a +\f[B]non\-portable extension\f[R]. +.TP +\f[B]p\f[R] +Prints the value on top of the stack, whether number or string, and +prints a newline after. +.RS +.PP +This does not alter the stack. +.RE +.TP +\f[B]n\f[R] +Prints the value on top of the stack, whether number or string, and pops +it off of the stack. +.TP +\f[B]P\f[R] +Pops a value off the stack. +.RS +.PP +If the value is a number, it is truncated and the absolute value of the +result is printed as though \f[B]obase\f[R] is \f[B]256\f[R] and each +digit is interpreted as an 8\-bit ASCII character, making it a byte +stream. +.PP +If the value is a string, it is printed without a trailing newline. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]f\f[R] +Prints the entire contents of the stack, in order from newest to oldest, +without altering anything. +.RS +.PP +Users should use this command when they get lost. +.RE +.SS Arithmetic +These are the commands used for arithmetic. +.TP +\f[B]+\f[R] +The top two values are popped off the stack, added, and the result is +pushed onto the stack. +The \f[I]scale\f[R] of the result is equal to the max \f[I]scale\f[R] of +both operands. +.TP +\f[B]\-\f[R] +The top two values are popped off the stack, subtracted, and the result +is pushed onto the stack. +The \f[I]scale\f[R] of the result is equal to the max \f[I]scale\f[R] of +both operands. +.TP +\f[B]*\f[R] +The top two values are popped off the stack, multiplied, and the result +is pushed onto the stack. +If \f[B]a\f[R] is the \f[I]scale\f[R] of the first expression and +\f[B]b\f[R] is the \f[I]scale\f[R] of the second expression, the +\f[I]scale\f[R] of the result is equal to +\f[B]min(a+b,max(scale,a,b))\f[R] where \f[B]min()\f[R] and +\f[B]max()\f[R] return the obvious values. +.TP +\f[B]/\f[R] +The top two values are popped off the stack, divided, and the result is +pushed onto the stack. +The \f[I]scale\f[R] of the result is equal to \f[B]scale\f[R]. +.RS +.PP +The first value popped off of the stack must be non\-zero. +.RE +.TP +\f[B]%\f[R] +The top two values are popped off the stack, remaindered, and the result +is pushed onto the stack. +.RS +.PP +Remaindering is equivalent to 1) Computing \f[B]a/b\f[R] to current +\f[B]scale\f[R], and 2) Using the result of step 1 to calculate +\f[B]a\-(a/b)*b\f[R] to \f[I]scale\f[R] +\f[B]max(scale+scale(b),scale(a))\f[R]. +.PP +The first value popped off of the stack must be non\-zero. +.RE +.TP +\f[B]\[ti]\f[R] +The top two values are popped off the stack, divided and remaindered, +and the results (divided first, remainder second) are pushed onto the +stack. +This is equivalent to \f[B]x y / x y %\f[R] except that \f[B]x\f[R] and +\f[B]y\f[R] are only evaluated once. +.RS +.PP +The first value popped off of the stack must be non\-zero. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\[ha]\f[R] +The top two values are popped off the stack, the second is raised to the +power of the first, and the result is pushed onto the stack. +The \f[I]scale\f[R] of the result is equal to \f[B]scale\f[R]. +.RS +.PP +The first value popped off of the stack must be an integer, and if that +value is negative, the second value popped off of the stack must be +non\-zero. +.RE +.TP +\f[B]v\f[R] +The top value is popped off the stack, its square root is computed, and +the result is pushed onto the stack. +The \f[I]scale\f[R] of the result is equal to \f[B]scale\f[R]. +.RS +.PP +The value popped off of the stack must be non\-negative. +.RE +.TP +\f[B]_\f[R] +If this command \f[I]immediately\f[R] precedes a number (i.e., no spaces +or other commands), then that number is input as a negative number. +.RS +.PP +Otherwise, the top value on the stack is popped and copied, and the copy +is negated and pushed onto the stack. +This behavior without a number is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]b\f[R] +The top value is popped off the stack, and if it is zero, it is pushed +back onto the stack. +Otherwise, its absolute value is pushed onto the stack. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]|\f[R] +The top three values are popped off the stack, a modular exponentiation +is computed, and the result is pushed onto the stack. +.RS +.PP +The first value popped is used as the reduction modulus and must be an +integer and non\-zero. +The second value popped is used as the exponent and must be an integer +and non\-negative. +The third value popped is the base and must be an integer. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]$\f[R] +The top value is popped off the stack and copied, and the copy is +truncated and pushed onto the stack. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\[at]\f[R] +The top two values are popped off the stack, and the precision of the +second is set to the value of the first, whether by truncation or +extension. +.RS +.PP +The first value popped off of the stack must be an integer and +non\-negative. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]H\f[R] +The top two values are popped off the stack, and the second is shifted +left (radix shifted right) to the value of the first. +.RS +.PP +The first value popped off of the stack must be an integer and +non\-negative. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]h\f[R] +The top two values are popped off the stack, and the second is shifted +right (radix shifted left) to the value of the first. +.RS +.PP +The first value popped off of the stack must be an integer and +non\-negative. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]G\f[R] +The top two values are popped off of the stack, they are compared, and a +\f[B]1\f[R] is pushed if they are equal, or \f[B]0\f[R] otherwise. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]N\f[R] +The top value is popped off of the stack, and if it a \f[B]0\f[R], a +\f[B]1\f[R] is pushed; otherwise, a \f[B]0\f[R] is pushed. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B](\f[R] +The top two values are popped off of the stack, they are compared, and a +\f[B]1\f[R] is pushed if the first is less than the second, or +\f[B]0\f[R] otherwise. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]{\f[R] +The top two values are popped off of the stack, they are compared, and a +\f[B]1\f[R] is pushed if the first is less than or equal to the second, +or \f[B]0\f[R] otherwise. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B])\f[R] +The top two values are popped off of the stack, they are compared, and a +\f[B]1\f[R] is pushed if the first is greater than the second, or +\f[B]0\f[R] otherwise. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]}\f[R] +The top two values are popped off of the stack, they are compared, and a +\f[B]1\f[R] is pushed if the first is greater than or equal to the +second, or \f[B]0\f[R] otherwise. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]M\f[R] +The top two values are popped off of the stack. +If they are both non\-zero, a \f[B]1\f[R] is pushed onto the stack. +If either of them is zero, or both of them are, then a \f[B]0\f[R] is +pushed onto the stack. +.RS +.PP +This is like the \f[B]&&\f[R] operator in bc(1), and it is \f[I]not\f[R] +a short\-circuit operator. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]m\f[R] +The top two values are popped off of the stack. +If at least one of them is non\-zero, a \f[B]1\f[R] is pushed onto the +stack. +If both of them are zero, then a \f[B]0\f[R] is pushed onto the stack. +.RS +.PP +This is like the \f[B]||\f[R] operator in bc(1), and it is \f[I]not\f[R] +a short\-circuit operator. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.SS Pseudo\-Random Number Generator +dc(1) has a built\-in pseudo\-random number generator. +These commands query the pseudo\-random number generator. +(See Parameters for more information about the \f[B]seed\f[R] value that +controls the pseudo\-random number generator.) +.PP +The pseudo\-random number generator is guaranteed to \f[B]NOT\f[R] be +cryptographically secure. +.TP +\f[B]\[cq]\f[R] +Generates an integer between 0 and \f[B]DC_RAND_MAX\f[R], inclusive (see +the \f[B]LIMITS\f[R] section). +.RS +.PP +The generated integer is made as unbiased as possible, subject to the +limitations of the pseudo\-random number generator. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\[lq]\f[R] +Pops a value off of the stack, which is used as an \f[B]exclusive\f[R] +upper bound on the integer that will be generated. +If the bound is negative or is a non\-integer, an error is raised, and +dc(1) resets (see the \f[B]RESET\f[R] section) while \f[B]seed\f[R] +remains unchanged. +If the bound is larger than \f[B]DC_RAND_MAX\f[R], the higher bound is +honored by generating several pseudo\-random integers, multiplying them +by appropriate powers of \f[B]DC_RAND_MAX+1\f[R], and adding them +together. +Thus, the size of integer that can be generated with this command is +unbounded. +Using this command will change the value of \f[B]seed\f[R], unless the +operand is \f[B]0\f[R] or \f[B]1\f[R]. +In that case, \f[B]0\f[R] is pushed onto the stack, and \f[B]seed\f[R] +is \f[I]not\f[R] changed. +.RS +.PP +The generated integer is made as unbiased as possible, subject to the +limitations of the pseudo\-random number generator. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.SS Stack Control +These commands control the stack. +.TP +\f[B]c\f[R] +Removes all items from (\[lq]clears\[rq]) the stack. +.TP +\f[B]d\f[R] +Copies the item on top of the stack (\[lq]duplicates\[rq]) and pushes +the copy onto the stack. +.TP +\f[B]r\f[R] +Swaps (\[lq]reverses\[rq]) the two top items on the stack. +.TP +\f[B]R\f[R] +Pops (\[lq]removes\[rq]) the top value from the stack. +.SS Register Control +These commands control registers (see the \f[B]REGISTERS\f[R] section). +.TP +\f[B]s\f[R]\f[I]r\f[R] +Pops the value off the top of the stack and stores it into register +\f[I]r\f[R]. +.TP +\f[B]l\f[R]\f[I]r\f[R] +Copies the value in register \f[I]r\f[R] and pushes it onto the stack. +This does not alter the contents of \f[I]r\f[R]. +.TP +\f[B]S\f[R]\f[I]r\f[R] +Pops the value off the top of the (main) stack and pushes it onto the +stack of register \f[I]r\f[R]. +The previous value of the register becomes inaccessible. +.TP +\f[B]L\f[R]\f[I]r\f[R] +Pops the value off the top of the stack for register \f[I]r\f[R] and +push it onto the main stack. +The previous value in the stack for register \f[I]r\f[R], if any, is now +accessible via the \f[B]l\f[R]\f[I]r\f[R] command. +.SS Parameters +These commands control the values of \f[B]ibase\f[R], \f[B]obase\f[R], +\f[B]scale\f[R], and \f[B]seed\f[R]. +Also see the \f[B]SYNTAX\f[R] section. +.TP +\f[B]i\f[R] +Pops the value off of the top of the stack and uses it to set +\f[B]ibase\f[R], which must be between \f[B]2\f[R] and \f[B]16\f[R], +inclusive. +.RS +.PP +If the value on top of the stack has any \f[I]scale\f[R], the +\f[I]scale\f[R] is ignored. +.RE +.TP +\f[B]o\f[R] +Pops the value off of the top of the stack and uses it to set +\f[B]obase\f[R], which must be between \f[B]0\f[R] and +\f[B]DC_BASE_MAX\f[R], inclusive (see the \f[B]LIMITS\f[R] section and +the \f[B]NUMBERS\f[R] section). +.RS +.PP +If the value on top of the stack has any \f[I]scale\f[R], the +\f[I]scale\f[R] is ignored. +.RE +.TP +\f[B]k\f[R] +Pops the value off of the top of the stack and uses it to set +\f[B]scale\f[R], which must be non\-negative. +.RS +.PP +If the value on top of the stack has any \f[I]scale\f[R], the +\f[I]scale\f[R] is ignored. +.RE +.TP +\f[B]j\f[R] +Pops the value off of the top of the stack and uses it to set +\f[B]seed\f[R]. +The meaning of \f[B]seed\f[R] is dependent on the current pseudo\-random +number generator but is guaranteed to not change except for new major +versions. +.RS +.PP +The \f[I]scale\f[R] and sign of the value may be significant. +.PP +If a previously used \f[B]seed\f[R] value is used again, the +pseudo\-random number generator is guaranteed to produce the same +sequence of pseudo\-random numbers as it did when the \f[B]seed\f[R] +value was previously used. +.PP +The exact value assigned to \f[B]seed\f[R] is not guaranteed to be +returned if the \f[B]J\f[R] command is used. +However, if \f[B]seed\f[R] \f[I]does\f[R] return a different value, both +values, when assigned to \f[B]seed\f[R], are guaranteed to produce the +same sequence of pseudo\-random numbers. +This means that certain values assigned to \f[B]seed\f[R] will not +produce unique sequences of pseudo\-random numbers. +.PP +There is no limit to the length (number of significant decimal digits) +or \f[I]scale\f[R] of the value that can be assigned to \f[B]seed\f[R]. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]I\f[R] +Pushes the current value of \f[B]ibase\f[R] onto the main stack. +.TP +\f[B]O\f[R] +Pushes the current value of \f[B]obase\f[R] onto the main stack. +.TP +\f[B]K\f[R] +Pushes the current value of \f[B]scale\f[R] onto the main stack. +.TP +\f[B]J\f[R] +Pushes the current value of \f[B]seed\f[R] onto the main stack. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]T\f[R] +Pushes the maximum allowable value of \f[B]ibase\f[R] onto the main +stack. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]U\f[R] +Pushes the maximum allowable value of \f[B]obase\f[R] onto the main +stack. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]V\f[R] +Pushes the maximum allowable value of \f[B]scale\f[R] onto the main +stack. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]W\f[R] +Pushes the maximum (inclusive) integer that can be generated with the +\f[B]\[cq]\f[R] pseudo\-random number generator command. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.SS Strings +The following commands control strings. +.PP +dc(1) can work with both numbers and strings, and registers (see the +\f[B]REGISTERS\f[R] section) can hold both strings and numbers. +dc(1) always knows whether the contents of a register are a string or a +number. +.PP +While arithmetic operations have to have numbers, and will print an +error if given a string, other commands accept strings. +.PP +Strings can also be executed as macros. +For example, if the string \f[B][1pR]\f[R] is executed as a macro, then +the code \f[B]1pR\f[R] is executed, meaning that the \f[B]1\f[R] will be +printed with a newline after and then popped from the stack. +.TP +\f[B][\f[R]\f[I]characters\f[R]\f[B]]\f[R] +Makes a string containing \f[I]characters\f[R] and pushes it onto the +stack. +.RS +.PP +If there are brackets (\f[B][\f[R] and \f[B]]\f[R]) in the string, then +they must be balanced. +Unbalanced brackets can be escaped using a backslash (\f[B]\[rs]\f[R]) +character. +.PP +If there is a backslash character in the string, the character after it +(even another backslash) is put into the string verbatim, but the +(first) backslash is not. +.RE +.TP +\f[B]a\f[R] +The value on top of the stack is popped. +.RS +.PP +If it is a number, it is truncated and its absolute value is taken. +The result mod \f[B]256\f[R] is calculated. +If that result is \f[B]0\f[R], push an empty string; otherwise, push a +one\-character string where the character is the result of the mod +interpreted as an ASCII character. +.PP +If it is a string, then a new string is made. +If the original string is empty, the new string is empty. +If it is not, then the first character of the original string is used to +create the new string as a one\-character string. +The new string is then pushed onto the stack. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]x\f[R] +Pops a value off of the top of the stack. +.RS +.PP +If it is a number, it is pushed back onto the stack. +.PP +If it is a string, it is executed as a macro. +.PP +This behavior is the norm whenever a macro is executed, whether by this +command or by the conditional execution commands below. +.RE +.TP +\f[B]>\f[R]\f[I]r\f[R] +Pops two values off of the stack that must be numbers and compares them. +If the first value is greater than the second, then the contents of +register \f[I]r\f[R] are executed. +.RS +.PP +For example, \f[B]0 1>a\f[R] will execute the contents of register +\f[B]a\f[R], and \f[B]1 0>a\f[R] will not. +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.RE +.TP +\f[B]>\f[R]\f[I]r\f[R]\f[B]e\f[R]\f[I]s\f[R] +Like the above, but will execute register \f[I]s\f[R] if the comparison +fails. +.RS +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]!>\f[R]\f[I]r\f[R] +Pops two values off of the stack that must be numbers and compares them. +If the first value is not greater than the second (less than or equal +to), then the contents of register \f[I]r\f[R] are executed. +.RS +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.RE +.TP +\f[B]!>\f[R]\f[I]r\f[R]\f[B]e\f[R]\f[I]s\f[R] +Like the above, but will execute register \f[I]s\f[R] if the comparison +fails. +.RS +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]<\f[R]\f[I]r\f[R] +Pops two values off of the stack that must be numbers and compares them. +If the first value is less than the second, then the contents of +register \f[I]r\f[R] are executed. +.RS +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.RE +.TP +\f[B]<\f[R]\f[I]r\f[R]\f[B]e\f[R]\f[I]s\f[R] +Like the above, but will execute register \f[I]s\f[R] if the comparison +fails. +.RS +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]!<\f[R]\f[I]r\f[R] +Pops two values off of the stack that must be numbers and compares them. +If the first value is not less than the second (greater than or equal +to), then the contents of register \f[I]r\f[R] are executed. +.RS +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.RE +.TP +\f[B]!<\f[R]\f[I]r\f[R]\f[B]e\f[R]\f[I]s\f[R] +Like the above, but will execute register \f[I]s\f[R] if the comparison +fails. +.RS +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]=\f[R]\f[I]r\f[R] +Pops two values off of the stack that must be numbers and compares them. +If the first value is equal to the second, then the contents of register +\f[I]r\f[R] are executed. +.RS +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.RE +.TP +\f[B]=\f[R]\f[I]r\f[R]\f[B]e\f[R]\f[I]s\f[R] +Like the above, but will execute register \f[I]s\f[R] if the comparison +fails. +.RS +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]!=\f[R]\f[I]r\f[R] +Pops two values off of the stack that must be numbers and compares them. +If the first value is not equal to the second, then the contents of +register \f[I]r\f[R] are executed. +.RS +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.RE +.TP +\f[B]!=\f[R]\f[I]r\f[R]\f[B]e\f[R]\f[I]s\f[R] +Like the above, but will execute register \f[I]s\f[R] if the comparison +fails. +.RS +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]?\f[R] +Reads a line from the \f[B]stdin\f[R] and executes it. +This is to allow macros to request input from users. +.TP +\f[B]q\f[R] +During execution of a macro, this exits the execution of that macro and +the execution of the macro that executed it. +If there are no macros, or only one macro executing, dc(1) exits. +.TP +\f[B]Q\f[R] +Pops a value from the stack which must be non\-negative and is used the +number of macro executions to pop off of the execution stack. +If the number of levels to pop is greater than the number of executing +macros, dc(1) exits. +.TP +\f[B],\f[R] +Pushes the depth of the execution stack onto the stack. +The execution stack is the stack of string executions. +The number that is pushed onto the stack is exactly as many as is needed +to make dc(1) exit with the \f[B]Q\f[R] command, so the sequence +\f[B],Q\f[R] will make dc(1) exit. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.SS Status +These commands query status of the stack or its top value. +.TP +\f[B]Z\f[R] +Pops a value off of the stack. +.RS +.PP +If it is a number, calculates the number of significant decimal digits +it has and pushes the result. +It will push \f[B]1\f[R] if the argument is \f[B]0\f[R] with no decimal +places. +.PP +If it is a string, pushes the number of characters the string has. +.RE +.TP +\f[B]X\f[R] +Pops a value off of the stack. +.RS +.PP +If it is a number, pushes the \f[I]scale\f[R] of the value onto the +stack. +.PP +If it is a string, pushes \f[B]0\f[R]. +.RE +.TP +\f[B]u\f[R] +Pops one value off of the stack. +If the value is a number, this pushes \f[B]1\f[R] onto the stack. +Otherwise (if it is a string), it pushes \f[B]0\f[R]. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]t\f[R] +Pops one value off of the stack. +If the value is a string, this pushes \f[B]1\f[R] onto the stack. +Otherwise (if it is a number), it pushes \f[B]0\f[R]. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]z\f[R] +Pushes the current depth of the stack (before execution of this command) +onto the stack. +.TP +\f[B]y\f[R]\f[I]r\f[R] +Pushes the current stack depth of the register \f[I]r\f[R] onto the main +stack. +.RS +.PP +Because each register has a depth of \f[B]1\f[R] (with the value +\f[B]0\f[R] in the top item) when dc(1) starts, dc(1) requires that each +register\[cq]s stack must always have at least one item; dc(1) will give +an error and reset otherwise (see the \f[B]RESET\f[R] section). +This means that this command will never push \f[B]0\f[R]. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.SS Arrays +These commands manipulate arrays. +.TP +\f[B]:\f[R]\f[I]r\f[R] +Pops the top two values off of the stack. +The second value will be stored in the array \f[I]r\f[R] (see the +\f[B]REGISTERS\f[R] section), indexed by the first value. +.TP +\f[B];\f[R]\f[I]r\f[R] +Pops the value on top of the stack and uses it as an index into the +array \f[I]r\f[R]. +The selected value is then pushed onto the stack. +.TP +\f[B]Y\f[R]\f[I]r\f[R] +Pushes the length of the array \f[I]r\f[R] onto the stack. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.SS Global Settings +These commands retrieve global settings. +These are the only commands that require multiple specific characters, +and all of them begin with the letter \f[B]g\f[R]. +Only the characters below are allowed after the character \f[B]g\f[R]; +any other character produces a parse error (see the \f[B]ERRORS\f[R] +section). +.TP +\f[B]gl\f[R] +Pushes the line length set by \f[B]DC_LINE_LENGTH\f[R] (see the +\f[B]ENVIRONMENT VARIABLES\f[R] section) onto the stack. +.TP +\f[B]gx\f[R] +Pushes \f[B]1\f[R] onto the stack if extended register mode is on, +\f[B]0\f[R] otherwise. +See the \f[I]Extended Register Mode\f[R] subsection of the +\f[B]REGISTERS\f[R] section for more information. +.TP +\f[B]gz\f[R] +Pushes \f[B]0\f[R] onto the stack if the leading zero setting has not +been enabled with the \f[B]\-z\f[R] or \f[B]\-\-leading\-zeroes\f[R] +options (see the \f[B]OPTIONS\f[R] section), non\-zero otherwise. +.SH REGISTERS +Registers are names that can store strings, numbers, and arrays. +(Number/string registers do not interfere with array registers.) +.PP +Each register is also its own stack, so the current register value is +the top of the stack for the register. +All registers, when first referenced, have one value (\f[B]0\f[R]) in +their stack, and it is a runtime error to attempt to pop that item off +of the register stack. +.PP +In non\-extended register mode, a register name is just the single +character that follows any command that needs a register name. +The only exceptions are: a newline (\f[B]`\[rs]n'\f[R]) and a left +bracket (\f[B]`['\f[R]); it is a parse error for a newline or a left +bracket to be used as a register name. +.SS Extended Register Mode +Unlike most other dc(1) implentations, this dc(1) provides nearly +unlimited amounts of registers, if extended register mode is enabled. +.PP +If extended register mode is enabled (\f[B]\-x\f[R] or +\f[B]\-\-extended\-register\f[R] command\-line arguments are given), +then normal single character registers are used \f[I]unless\f[R] the +character immediately following a command that needs a register name is +a space (according to \f[B]isspace()\f[R]) and not a newline +(\f[B]`\[rs]n'\f[R]). +.PP +In that case, the register name is found according to the regex +\f[B][a\-z][a\-z0\-9_]*\f[R] (like bc(1) identifiers), and it is a parse +error if the next non\-space characters do not match that regex. +.SH RESET +When dc(1) encounters an error or a signal that it has a non\-default +handler for, it resets. +This means that several things happen. +.PP +First, any macros that are executing are stopped and popped off the +execution stack. +The behavior is not unlike that of exceptions in programming languages. +Then the execution point is set so that any code waiting to execute +(after all macros returned) is skipped. +.PP +However, the stack of values is \f[I]not\f[R] cleared; in interactive +mode, users can inspect the stack and manipulate it. +.PP +Thus, when dc(1) resets, it skips any remaining code waiting to be +executed. +Then, if it is interactive mode, and the error was not a fatal error +(see the \f[B]EXIT STATUS\f[R] section), it asks for more input; +otherwise, it exits with the appropriate return code. +.SH PERFORMANCE +Most dc(1) implementations use \f[B]char\f[R] types to calculate the +value of \f[B]1\f[R] decimal digit at a time, but that can be slow. +This dc(1) does something different. +.PP +It uses large integers to calculate more than \f[B]1\f[R] decimal digit +at a time. +If built in a environment where \f[B]DC_LONG_BIT\f[R] (see the +\f[B]LIMITS\f[R] section) is \f[B]64\f[R], then each integer has +\f[B]9\f[R] decimal digits. +If built in an environment where \f[B]DC_LONG_BIT\f[R] is \f[B]32\f[R] +then each integer has \f[B]4\f[R] decimal digits. +This value (the number of decimal digits per large integer) is called +\f[B]DC_BASE_DIGS\f[R]. +.PP +In addition, this dc(1) uses an even larger integer for overflow +checking. +This integer type depends on the value of \f[B]DC_LONG_BIT\f[R], but is +always at least twice as large as the integer type used to store digits. +.SH LIMITS +The following are the limits on dc(1): +.TP +\f[B]DC_LONG_BIT\f[R] +The number of bits in the \f[B]long\f[R] type in the environment where +dc(1) was built. +This determines how many decimal digits can be stored in a single large +integer (see the \f[B]PERFORMANCE\f[R] section). +.TP +\f[B]DC_BASE_DIGS\f[R] +The number of decimal digits per large integer (see the +\f[B]PERFORMANCE\f[R] section). +Depends on \f[B]DC_LONG_BIT\f[R]. +.TP +\f[B]DC_BASE_POW\f[R] +The max decimal number that each large integer can store (see +\f[B]DC_BASE_DIGS\f[R]) plus \f[B]1\f[R]. +Depends on \f[B]DC_BASE_DIGS\f[R]. +.TP +\f[B]DC_OVERFLOW_MAX\f[R] +The max number that the overflow type (see the \f[B]PERFORMANCE\f[R] +section) can hold. +Depends on \f[B]DC_LONG_BIT\f[R]. +.TP +\f[B]DC_BASE_MAX\f[R] +The maximum output base. +Set at \f[B]DC_BASE_POW\f[R]. +.TP +\f[B]DC_DIM_MAX\f[R] +The maximum size of arrays. +Set at \f[B]SIZE_MAX\-1\f[R]. +.TP +\f[B]DC_SCALE_MAX\f[R] +The maximum \f[B]scale\f[R]. +Set at \f[B]DC_OVERFLOW_MAX\-1\f[R]. +.TP +\f[B]DC_STRING_MAX\f[R] +The maximum length of strings. +Set at \f[B]DC_OVERFLOW_MAX\-1\f[R]. +.TP +\f[B]DC_NAME_MAX\f[R] +The maximum length of identifiers. +Set at \f[B]DC_OVERFLOW_MAX\-1\f[R]. +.TP +\f[B]DC_NUM_MAX\f[R] +The maximum length of a number (in decimal digits), which includes +digits after the decimal point. +Set at \f[B]DC_OVERFLOW_MAX\-1\f[R]. +.TP +\f[B]DC_RAND_MAX\f[R] +The maximum integer (inclusive) returned by the \f[B]\[cq]\f[R] command, +if dc(1). +Set at \f[B]2\[ha]DC_LONG_BIT\-1\f[R]. +.TP +Exponent +The maximum allowable exponent (positive or negative). +Set at \f[B]DC_OVERFLOW_MAX\f[R]. +.TP +Number of vars +The maximum number of vars/arrays. +Set at \f[B]SIZE_MAX\-1\f[R]. +.PP +These limits are meant to be effectively non\-existent; the limits are +so large (at least on 64\-bit machines) that there should not be any +point at which they become a problem. +In fact, memory should be exhausted before these limits should be hit. +.SH ENVIRONMENT VARIABLES +As \f[B]non\-portable extensions\f[R], dc(1) recognizes the following +environment variables: +.TP +\f[B]DC_ENV_ARGS\f[R] +This is another way to give command\-line arguments to dc(1). +They should be in the same format as all other command\-line arguments. +These are always processed first, so any files given in +\f[B]DC_ENV_ARGS\f[R] will be processed before arguments and files given +on the command\-line. +This gives the user the ability to set up \[lq]standard\[rq] options and +files to be used at every invocation. +The most useful thing for such files to contain would be useful +functions that the user might want every time dc(1) runs. +Another use would be to use the \f[B]\-e\f[R] option to set +\f[B]scale\f[R] to a value other than \f[B]0\f[R]. +.RS +.PP +The code that parses \f[B]DC_ENV_ARGS\f[R] will correctly handle quoted +arguments, but it does not understand escape sequences. +For example, the string \f[B]\[lq]/home/gavin/some dc file.dc\[rq]\f[R] +will be correctly parsed, but the string \f[B]\[lq]/home/gavin/some +\[dq]dc\[dq] file.dc\[rq]\f[R] will include the backslashes. +.PP +The quote parsing will handle either kind of quotes, \f[B]\[cq]\f[R] or +\f[B]\[lq]\f[R]. +Thus, if you have a file with any number of single quotes in the name, +you can use double quotes as the outside quotes, as in \f[B]\[lq]some +`dc' file.dc\[rq]\f[R], and vice versa if you have a file with double +quotes. +However, handling a file with both kinds of quotes in +\f[B]DC_ENV_ARGS\f[R] is not supported due to the complexity of the +parsing, though such files are still supported on the command\-line +where the parsing is done by the shell. +.RE +.TP +\f[B]DC_LINE_LENGTH\f[R] +If this environment variable exists and contains an integer that is +greater than \f[B]1\f[R] and is less than \f[B]UINT16_MAX\f[R] +(\f[B]2\[ha]16\-1\f[R]), dc(1) will output lines to that length, +including the backslash newline combo. +The default line length is \f[B]70\f[R]. +.RS +.PP +The special value of \f[B]0\f[R] will disable line length checking and +print numbers without regard to line length and without backslashes and +newlines. +.RE +.TP +\f[B]DC_SIGINT_RESET\f[R] +If dc(1) is not in interactive mode (see the \f[B]INTERACTIVE MODE\f[R] +section), then this environment variable has no effect because dc(1) +exits on \f[B]SIGINT\f[R] when not in interactive mode. +.RS +.PP +However, when dc(1) is in interactive mode, then if this environment +variable exists and contains an integer, a non\-zero value makes dc(1) +reset on \f[B]SIGINT\f[R], rather than exit, and zero makes dc(1) exit. +If this environment variable exists and is \f[I]not\f[R] an integer, +then dc(1) will exit on \f[B]SIGINT\f[R]. +.PP +This environment variable overrides the default, which can be queried +with the \f[B]\-h\f[R] or \f[B]\-\-help\f[R] options. +.RE +.TP +\f[B]DC_TTY_MODE\f[R] +If TTY mode is \f[I]not\f[R] available (see the \f[B]TTY MODE\f[R] +section), then this environment variable has no effect. +.RS +.PP +However, when TTY mode is available, then if this environment variable +exists and contains an integer, then a non\-zero value makes dc(1) use +TTY mode, and zero makes dc(1) not use TTY mode. +.PP +This environment variable overrides the default, which can be queried +with the \f[B]\-h\f[R] or \f[B]\-\-help\f[R] options. +.RE +.TP +\f[B]DC_PROMPT\f[R] +If TTY mode is \f[I]not\f[R] available (see the \f[B]TTY MODE\f[R] +section), then this environment variable has no effect. +.RS +.PP +However, when TTY mode is available, then if this environment variable +exists and contains an integer, a non\-zero value makes dc(1) use a +prompt, and zero or a non\-integer makes dc(1) not use a prompt. +If this environment variable does not exist and \f[B]DC_TTY_MODE\f[R] +does, then the value of the \f[B]DC_TTY_MODE\f[R] environment variable +is used. +.PP +This environment variable and the \f[B]DC_TTY_MODE\f[R] environment +variable override the default, which can be queried with the +\f[B]\-h\f[R] or \f[B]\-\-help\f[R] options. +.RE +.TP +\f[B]DC_EXPR_EXIT\f[R] +If any expressions or expression files are given on the command\-line +with \f[B]\-e\f[R], \f[B]\-\-expression\f[R], \f[B]\-f\f[R], or +\f[B]\-\-file\f[R], then if this environment variable exists and +contains an integer, a non\-zero value makes dc(1) exit after executing +the expressions and expression files, and a zero value makes dc(1) not +exit. +.RS +.PP +This environment variable overrides the default, which can be queried +with the \f[B]\-h\f[R] or \f[B]\-\-help\f[R] options. +.RE +.TP +\f[B]DC_DIGIT_CLAMP\f[R] +When parsing numbers and if this environment variable exists and +contains an integer, a non\-zero value makes dc(1) clamp digits that are +greater than or equal to the current \f[B]ibase\f[R] so that all such +digits are considered equal to the \f[B]ibase\f[R] minus 1, and a zero +value disables such clamping so that those digits are always equal to +their value, which is multiplied by the power of the \f[B]ibase\f[R]. +.RS +.PP +This never applies to single\-digit numbers, as per the bc(1) standard +(see the \f[B]STANDARDS\f[R] section). +.PP +This environment variable overrides the default, which can be queried +with the \f[B]\-h\f[R] or \f[B]\-\-help\f[R] options. +.RE +.SH EXIT STATUS +dc(1) returns the following exit statuses: +.TP +\f[B]0\f[R] +No error. +.TP +\f[B]1\f[R] +A math error occurred. +This follows standard practice of using \f[B]1\f[R] for expected errors, +since math errors will happen in the process of normal execution. +.RS +.PP +Math errors include divide by \f[B]0\f[R], taking the square root of a +negative number, using a negative number as a bound for the +pseudo\-random number generator, attempting to convert a negative number +to a hardware integer, overflow when converting a number to a hardware +integer, overflow when calculating the size of a number, and attempting +to use a non\-integer where an integer is required. +.PP +Converting to a hardware integer happens for the second operand of the +power (\f[B]\[ha]\f[R]), places (\f[B]\[at]\f[R]), left shift +(\f[B]H\f[R]), and right shift (\f[B]h\f[R]) operators. +.RE +.TP +\f[B]2\f[R] +A parse error occurred. +.RS +.PP +Parse errors include unexpected \f[B]EOF\f[R], using an invalid +character, failing to find the end of a string or comment, and using a +token where it is invalid. +.RE +.TP +\f[B]3\f[R] +A runtime error occurred. +.RS +.PP +Runtime errors include assigning an invalid number to any global +(\f[B]ibase\f[R], \f[B]obase\f[R], or \f[B]scale\f[R]), giving a bad +expression to a \f[B]read()\f[R] call, calling \f[B]read()\f[R] inside +of a \f[B]read()\f[R] call, type errors (including attempting to execute +a number), and attempting an operation when the stack has too few +elements. +.RE +.TP +\f[B]4\f[R] +A fatal error occurred. +.RS +.PP +Fatal errors include memory allocation errors, I/O errors, failing to +open files, attempting to use files that do not have only ASCII +characters (dc(1) only accepts ASCII characters), attempting to open a +directory as a file, and giving invalid command\-line options. +.RE +.PP +The exit status \f[B]4\f[R] is special; when a fatal error occurs, dc(1) +always exits and returns \f[B]4\f[R], no matter what mode dc(1) is in. +.PP +The other statuses will only be returned when dc(1) is not in +interactive mode (see the \f[B]INTERACTIVE MODE\f[R] section), since +dc(1) resets its state (see the \f[B]RESET\f[R] section) and accepts +more input when one of those errors occurs in interactive mode. +This is also the case when interactive mode is forced by the +\f[B]\-i\f[R] flag or \f[B]\-\-interactive\f[R] option. +.PP +These exit statuses allow dc(1) to be used in shell scripting with error +checking, and its normal behavior can be forced by using the +\f[B]\-i\f[R] flag or \f[B]\-\-interactive\f[R] option. +.SH INTERACTIVE MODE +Like bc(1), dc(1) has an interactive mode and a non\-interactive mode. +Interactive mode is turned on automatically when both \f[B]stdin\f[R] +and \f[B]stdout\f[R] are hooked to a terminal, but the \f[B]\-i\f[R] +flag and \f[B]\-\-interactive\f[R] option can turn it on in other +situations. +.PP +In interactive mode, dc(1) attempts to recover from errors (see the +\f[B]RESET\f[R] section), and in normal execution, flushes +\f[B]stdout\f[R] as soon as execution is done for the current input. +dc(1) may also reset on \f[B]SIGINT\f[R] instead of exit, depending on +the contents of, or default for, the \f[B]DC_SIGINT_RESET\f[R] +environment variable (see the \f[B]ENVIRONMENT VARIABLES\f[R] section). +.SH TTY MODE +If \f[B]stdin\f[R], \f[B]stdout\f[R], and \f[B]stderr\f[R] are all +connected to a TTY, then \[lq]TTY mode\[rq] is considered to be +available, and thus, dc(1) can turn on TTY mode, subject to some +settings. +.PP +If there is the environment variable \f[B]DC_TTY_MODE\f[R] in the +environment (see the \f[B]ENVIRONMENT VARIABLES\f[R] section), then if +that environment variable contains a non\-zero integer, dc(1) will turn +on TTY mode when \f[B]stdin\f[R], \f[B]stdout\f[R], and \f[B]stderr\f[R] +are all connected to a TTY. +If the \f[B]DC_TTY_MODE\f[R] environment variable exists but is +\f[I]not\f[R] a non\-zero integer, then dc(1) will not turn TTY mode on. +.PP +If the environment variable \f[B]DC_TTY_MODE\f[R] does \f[I]not\f[R] +exist, the default setting is used. +The default setting can be queried with the \f[B]\-h\f[R] or +\f[B]\-\-help\f[R] options. +.PP +TTY mode is different from interactive mode because interactive mode is +required in the bc(1) specification (see the \f[B]STANDARDS\f[R] +section), and interactive mode requires only \f[B]stdin\f[R] and +\f[B]stdout\f[R] to be connected to a terminal. +.SS Command\-Line History +Command\-line history is only enabled if TTY mode is, i.e., that +\f[B]stdin\f[R], \f[B]stdout\f[R], and \f[B]stderr\f[R] are connected to +a TTY and the \f[B]DC_TTY_MODE\f[R] environment variable (see the +\f[B]ENVIRONMENT VARIABLES\f[R] section) and its default do not disable +TTY mode. +See the \f[B]COMMAND LINE HISTORY\f[R] section for more information. +.SS Prompt +If TTY mode is available, then a prompt can be enabled. +Like TTY mode itself, it can be turned on or off with an environment +variable: \f[B]DC_PROMPT\f[R] (see the \f[B]ENVIRONMENT VARIABLES\f[R] +section). +.PP +If the environment variable \f[B]DC_PROMPT\f[R] exists and is a +non\-zero integer, then the prompt is turned on when \f[B]stdin\f[R], +\f[B]stdout\f[R], and \f[B]stderr\f[R] are connected to a TTY and the +\f[B]\-P\f[R] and \f[B]\-\-no\-prompt\f[R] options were not used. +The read prompt will be turned on under the same conditions, except that +the \f[B]\-R\f[R] and \f[B]\-\-no\-read\-prompt\f[R] options must also +not be used. +.PP +However, if \f[B]DC_PROMPT\f[R] does not exist, the prompt can be +enabled or disabled with the \f[B]DC_TTY_MODE\f[R] environment variable, +the \f[B]\-P\f[R] and \f[B]\-\-no\-prompt\f[R] options, and the +\f[B]\-R\f[R] and \f[B]\-\-no\-read\-prompt\f[R] options. +See the \f[B]ENVIRONMENT VARIABLES\f[R] and \f[B]OPTIONS\f[R] sections +for more details. +.SH SIGNAL HANDLING +Sending a \f[B]SIGINT\f[R] will cause dc(1) to do one of two things. +.PP +If dc(1) is not in interactive mode (see the \f[B]INTERACTIVE MODE\f[R] +section), or the \f[B]DC_SIGINT_RESET\f[R] environment variable (see the +\f[B]ENVIRONMENT VARIABLES\f[R] section), or its default, is either not +an integer or it is zero, dc(1) will exit. +.PP +However, if dc(1) is in interactive mode, and the +\f[B]DC_SIGINT_RESET\f[R] or its default is an integer and non\-zero, +then dc(1) will stop executing the current input and reset (see the +\f[B]RESET\f[R] section) upon receiving a \f[B]SIGINT\f[R]. +.PP +Note that \[lq]current input\[rq] can mean one of two things. +If dc(1) is processing input from \f[B]stdin\f[R] in interactive mode, +it will ask for more input. +If dc(1) is processing input from a file in interactive mode, it will +stop processing the file and start processing the next file, if one +exists, or ask for input from \f[B]stdin\f[R] if no other file exists. +.PP +This means that if a \f[B]SIGINT\f[R] is sent to dc(1) as it is +executing a file, it can seem as though dc(1) did not respond to the +signal since it will immediately start executing the next file. +This is by design; most files that users execute when interacting with +dc(1) have function definitions, which are quick to parse. +If a file takes a long time to execute, there may be a bug in that file. +The rest of the files could still be executed without problem, allowing +the user to continue. +.PP +\f[B]SIGTERM\f[R] and \f[B]SIGQUIT\f[R] cause dc(1) to clean up and +exit, and it uses the default handler for all other signals. +The one exception is \f[B]SIGHUP\f[R]; in that case, and only when dc(1) +is in TTY mode (see the \f[B]TTY MODE\f[R] section), a \f[B]SIGHUP\f[R] +will cause dc(1) to clean up and exit. +.SH COMMAND LINE HISTORY +dc(1) supports interactive command\-line editing. +.PP +If dc(1) can be in TTY mode (see the \f[B]TTY MODE\f[R] section), +history can be enabled. +This means that command\-line history can only be enabled when +\f[B]stdin\f[R], \f[B]stdout\f[R], and \f[B]stderr\f[R] are all +connected to a TTY. +.PP +Like TTY mode itself, it can be turned on or off with the environment +variable \f[B]DC_TTY_MODE\f[R] (see the \f[B]ENVIRONMENT VARIABLES\f[R] +section). +.PP +\f[B]Note\f[R]: tabs are converted to 8 spaces. +.SH LOCALES +This dc(1) ships with support for adding error messages for different +locales and thus, supports \f[B]LC_MESSAGES\f[R]. +.SH SEE ALSO +bc(1) +.SH STANDARDS +The dc(1) utility operators and some behavior are compliant with the +operators in the IEEE Std 1003.1\-2017 (\[lq]POSIX.1\-2017\[rq]) bc(1) +specification at +https://pubs.opengroup.org/onlinepubs/9699919799/utilities/bc.html . +.SH BUGS +None are known. +Report bugs at https://github.com/gavinhoward/bc . +.SH AUTHOR +Gavin D. Howard \c +.MT gavin@gavinhoward.com +.ME \c +\ and contributors. diff --git a/static/freebsd/man1/CA.pl.1 b/static/freebsd/man1/CA.pl.1 new file mode 100644 index 00000000..17e5f686 --- /dev/null +++ b/static/freebsd/man1/CA.pl.1 @@ -0,0 +1,242 @@ +.\" -*- mode: troff; coding: utf-8 -*- +.\" Automatically generated by Pod::Man v6.0.2 (Pod::Simple 3.45) +.\" +.\" Standard preamble: +.\" ======================================================================== +.de Sp \" Vertical space (when we can't use .PP) +.if t .sp .5v +.if n .sp +.. +.de Vb \" Begin verbatim text +.ft CW +.nf +.ne \\$1 +.. +.de Ve \" End verbatim text +.ft R +.fi +.. +.\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>. +.ie n \{\ +. ds C` "" +. ds C' "" +'br\} +.el\{\ +. ds C` +. ds C' +'br\} +.\" +.\" Escape single quotes in literal strings from groff's Unicode transform. +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" +.\" If the F register is >0, we'll generate index entries on stderr for +.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index +.\" entries marked with X<> in POD. Of course, you'll have to process the +.\" output yourself in some meaningful fashion. +.\" +.\" Avoid warning from groff about undefined register 'F'. +.de IX +.. +.nr rF 0 +.if \n(.g .if rF .nr rF 1 +.if (\n(rF:(\n(.g==0)) \{\ +. if \nF \{\ +. de IX +. tm Index:\\$1\t\\n%\t"\\$2" +.. +. if !\nF==2 \{\ +. nr % 0 +. nr F 2 +. \} +. \} +.\} +.rr rF +.\" +.\" Required to disable full justification in groff 1.23.0. +.if n .ds AD l +.\" ======================================================================== +.\" +.IX Title "CA.PL 1ossl" +.TH CA.PL 1ossl 2026-04-07 3.5.6 OpenSSL +.\" For nroff, turn off justification. Always turn off hyphenation; it makes +.\" way too many mistakes in technical documents. +.if n .ad l +.nh +.SH NAME +CA.pl \- friendlier interface for OpenSSL certificate programs +.SH SYNOPSIS +.IX Header "SYNOPSIS" +\&\fBCA.pl\fR +\&\fB\-?\fR | +\&\fB\-h\fR | +\&\fB\-help\fR +.PP +\&\fBCA.pl\fR +\&\fB\-newcert\fR | +\&\fB\-newreq\fR | +\&\fB\-newreq\-nodes\fR | +\&\fB\-xsign\fR | +\&\fB\-sign\fR | +\&\fB\-signCA\fR | +\&\fB\-signcert\fR | +\&\fB\-crl\fR | +\&\fB\-newca\fR +[\fB\-extra\-\fR\f(BIcmd\fR \fIparameter\fR] +.PP +\&\fBCA.pl\fR \fB\-pkcs12\fR [\fIcertname\fR] +.PP +\&\fBCA.pl\fR \fB\-verify\fR \fIcertfile\fR ... +.PP +\&\fBCA.pl\fR \fB\-revoke\fR \fIcertfile\fR [\fIreason\fR] +.SH DESCRIPTION +.IX Header "DESCRIPTION" +The \fBCA.pl\fR script is a perl script that supplies the relevant command line +arguments to the \fBopenssl\fR\|(1) command for some common certificate operations. +It is intended to simplify the process of certificate creation and management +by the use of some simple options. +.PP +The script is intended as a simple front end for the \fBopenssl\fR\|(1) program for +use by a beginner. Its behaviour isn\*(Aqt always what is wanted. For more control +over the behaviour of the certificate commands call the \fBopenssl\fR\|(1) command +directly. +.PP +Most of the filenames mentioned below can be modified by editing the +\&\fBCA.pl\fR script. +.PP +Under some environments it may not be possible to run the \fBCA.pl\fR script +directly (for example Win32) and the default configuration file location may +be wrong. In this case the command: +.PP +.Vb 1 +\& perl \-S CA.pl +.Ve +.PP +can be used and the \fBOPENSSL_CONF\fR environment variable can be set to point to +the correct path of the configuration file. +.SH OPTIONS +.IX Header "OPTIONS" +.IP "\fB\-?\fR, \fB\-h\fR, \fB\-help\fR" 4 +.IX Item "-?, -h, -help" +Prints a usage message. +.IP \fB\-newcert\fR 4 +.IX Item "-newcert" +Creates a new self signed certificate. The private key is written to the file +\&\fInewkey.pem\fR and the request written to the file \fInewreq.pem\fR. +Invokes \fBopenssl\-req\fR\|(1). +.IP \fB\-newreq\fR 4 +.IX Item "-newreq" +Creates a new certificate request. The private key is written to the file +\&\fInewkey.pem\fR and the request written to the file \fInewreq.pem\fR. +Executes \fBopenssl\-req\fR\|(1) under the hood. +.IP \fB\-newreq\-nodes\fR 4 +.IX Item "-newreq-nodes" +Is like \fB\-newreq\fR except that the private key will not be encrypted. +Uses \fBopenssl\-req\fR\|(1). +.IP \fB\-newca\fR 4 +.IX Item "-newca" +Creates a new CA hierarchy for use with the \fBca\fR program (or the \fB\-signcert\fR +and \fB\-xsign\fR options). The user is prompted to enter the filename of the CA +certificates (which should also contain the private key) or by hitting ENTER +details of the CA will be prompted for. The relevant files and directories +are created in a directory called \fIdemoCA\fR in the current directory. +Uses \fBopenssl\-req\fR\|(1) and \fBopenssl\-ca\fR\|(1). +.Sp +If the \fIdemoCA\fR directory already exists then the \fB\-newca\fR command will not +overwrite it and will do nothing. This can happen if a previous call using +the \fB\-newca\fR option terminated abnormally. To get the correct behaviour +delete the directory if it already exists. +.IP \fB\-pkcs12\fR 4 +.IX Item "-pkcs12" +Create a PKCS#12 file containing the user certificate, private key and CA +certificate. It expects the user certificate and private key to be in the +file \fInewcert.pem\fR and the CA certificate to be in the file \fIdemoCA/cacert.pem\fR, +it creates a file \fInewcert.p12\fR. This command can thus be called after the +\&\fB\-sign\fR option. The PKCS#12 file can be imported directly into a browser. +If there is an additional argument on the command line it will be used as the +"friendly name" for the certificate (which is typically displayed in the browser +list box), otherwise the name "My Certificate" is used. +Delegates work to \fBopenssl\-pkcs12\fR\|(1). +.IP "\fB\-sign\fR, \fB\-xsign\fR" 4 +.IX Item "-sign, -xsign" +Calls the \fBopenssl\-ca\fR\|(1) command to sign a certificate request. It expects the +request to be in the file \fInewreq.pem\fR. The new certificate is written to the +file \fInewcert.pem\fR except in the case of the \fB\-xsign\fR option when it is +written to standard output. +.IP \fB\-signCA\fR 4 +.IX Item "-signCA" +This option is the same as the \fB\-sign\fR option except it uses the +configuration file section \fBv3_ca\fR and so makes the signed request a +valid CA certificate. This is useful when creating intermediate CA from +a root CA. Extra params are passed to \fBopenssl\-ca\fR\|(1). +.IP \fB\-signcert\fR 4 +.IX Item "-signcert" +This option is the same as \fB\-sign\fR except it expects a self signed certificate +to be present in the file \fInewreq.pem\fR. +Extra params are passed to \fBopenssl\-x509\fR\|(1) and \fBopenssl\-ca\fR\|(1). +.IP \fB\-crl\fR 4 +.IX Item "-crl" +Generate a CRL. Executes \fBopenssl\-ca\fR\|(1). +.IP "\fB\-revoke\fR \fIcertfile\fR [\fIreason\fR]" 4 +.IX Item "-revoke certfile [reason]" +Revoke the certificate contained in the specified \fBcertfile\fR. An optional +reason may be specified, and must be one of: \fBunspecified\fR, +\&\fBkeyCompromise\fR, \fBCACompromise\fR, \fBaffiliationChanged\fR, \fBsuperseded\fR, +\&\fBcessationOfOperation\fR, \fBcertificateHold\fR, or \fBremoveFromCRL\fR. +Leverages \fBopenssl\-ca\fR\|(1). +.IP \fB\-verify\fR 4 +.IX Item "-verify" +Verifies certificates against the CA certificate for \fIdemoCA\fR. If no +certificates are specified on the command line it tries to verify the file +\&\fInewcert.pem\fR. Invokes \fBopenssl\-verify\fR\|(1). +.IP "\fB\-extra\-\fR\f(BIcmd\fR \fIparameter\fR" 4 +.IX Item "-extra-cmd parameter" +For each option \fBextra\-\fR\f(BIcmd\fR, pass \fIparameter\fR to the \fBopenssl\fR\|(1) +sub\-command with the same name as \fIcmd\fR, if that sub\-command is invoked. +For example, if \fBopenssl\-req\fR\|(1) is invoked, the \fIparameter\fR given with +\&\fB\-extra\-req\fR will be passed to it. +For multi\-word parameters, either repeat the option or quote the \fIparameters\fR +so it looks like one word to your shell. +See the individual command documentation for more information. +.SH EXAMPLES +.IX Header "EXAMPLES" +Create a CA hierarchy: +.PP +.Vb 1 +\& CA.pl \-newca +.Ve +.PP +Complete certificate creation example: create a CA, create a request, sign +the request and finally create a PKCS#12 file containing it. +.PP +.Vb 4 +\& CA.pl \-newca +\& CA.pl \-newreq +\& CA.pl \-sign +\& CA.pl \-pkcs12 "My Test Certificate" +.Ve +.SH ENVIRONMENT +.IX Header "ENVIRONMENT" +The environment variable \fBOPENSSL\fR may be used to specify the name of +the OpenSSL program. It can be a full pathname, or a relative one. +.PP +The environment variable \fBOPENSSL_CONFIG\fR may be used to specify a +configuration option and value to the \fBreq\fR and \fBca\fR commands invoked by +this script. It\*(Aqs value should be the option and pathname, as in +\&\f(CW\*(C`\-config /path/to/conf\-file\*(C'\fR. +.SH "SEE ALSO" +.IX Header "SEE ALSO" +\&\fBopenssl\fR\|(1), +\&\fBopenssl\-x509\fR\|(1), +\&\fBopenssl\-ca\fR\|(1), +\&\fBopenssl\-req\fR\|(1), +\&\fBopenssl\-pkcs12\fR\|(1), +\&\fBconfig\fR\|(5) +.SH COPYRIGHT +.IX Header "COPYRIGHT" +Copyright 2000\-2026 The OpenSSL Project Authors. All Rights Reserved. +.PP +Licensed under the Apache License 2.0 (the "License"). You may not use +this file except in compliance with the License. You can obtain a copy +in the file LICENSE in the source distribution or at +. diff --git a/static/freebsd/man1/E.1 b/static/freebsd/man1/E.1 new file mode 100644 index 00000000..b079e40e --- /dev/null +++ b/static/freebsd/man1/E.1 @@ -0,0 +1,1474 @@ +.\" +.\" SPDX-License-Identifier: BSD-2-Clause +.\" +.\" Copyright (c) 2018-2025 Gavin D. Howard and contributors. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions are met: +.\" +.\" * Redistributions of source code must retain the above copyright notice, +.\" this list of conditions and the following disclaimer. +.\" +.\" * Redistributions in binary form must reproduce the above copyright notice, +.\" this list of conditions and the following disclaimer in the documentation +.\" and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +.\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +.\" LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +.\" POSSIBILITY OF SUCH DAMAGE. +.\" +.TH "DC" "1" "August 2024" "Gavin D. Howard" "General Commands Manual" +.nh +.ad l +.SH Name +dc \- arbitrary\-precision decimal reverse\-Polish notation calculator +.SH SYNOPSIS +\f[B]dc\f[R] [\f[B]\-cChiPRvVx\f[R]] [\f[B]\-\-version\f[R]] +[\f[B]\-\-help\f[R]] [\f[B]\-\-digit\-clamp\f[R]] +[\f[B]\-\-no\-digit\-clamp\f[R]] [\f[B]\-\-interactive\f[R]] +[\f[B]\-\-no\-prompt\f[R]] [\f[B]\-\-no\-read\-prompt\f[R]] +[\f[B]\-\-extended\-register\f[R]] [\f[B]\-e\f[R] \f[I]expr\f[R]] +[\f[B]\-\-expression\f[R]=\f[I]expr\f[R]\&...] +[\f[B]\-f\f[R] \f[I]file\f[R]\&...] +[\f[B]\-\-file\f[R]=\f[I]file\f[R]\&...] +[\f[I]file\f[R]\&...] +.SH DESCRIPTION +dc(1) is an arbitrary\-precision calculator. +It uses a stack (reverse Polish notation) to store numbers and results +of computations. +Arithmetic operations pop arguments off of the stack and push the +results. +.PP +If no files are given on the command\-line, then dc(1) reads from +\f[B]stdin\f[R] (see the \f[B]STDIN\f[R] section). +Otherwise, those files are processed, and dc(1) will then exit. +.PP +If a user wants to set up a standard environment, they can use +\f[B]DC_ENV_ARGS\f[R] (see the \f[B]ENVIRONMENT VARIABLES\f[R] section). +For example, if a user wants the \f[B]scale\f[R] always set to +\f[B]10\f[R], they can set \f[B]DC_ENV_ARGS\f[R] to \f[B]\-e 10k\f[R], +and this dc(1) will always start with a \f[B]scale\f[R] of \f[B]10\f[R]. +.SH OPTIONS +The following are the options that dc(1) accepts. +.TP +\f[B]\-C\f[R], \f[B]\-\-no\-digit\-clamp\f[R] +Disables clamping of digits greater than or equal to the current +\f[B]ibase\f[R] when parsing numbers. +.RS +.PP +This means that the value added to a number from a digit is always that +digit\[cq]s value multiplied by the value of ibase raised to the power +of the digit\[cq]s position, which starts from 0 at the least +significant digit. +.PP +If this and/or the \f[B]\-c\f[R] or \f[B]\-\-digit\-clamp\f[R] options +are given multiple times, the last one given is used. +.PP +This option overrides the \f[B]DC_DIGIT_CLAMP\f[R] environment variable +(see the \f[B]ENVIRONMENT VARIABLES\f[R] section) and the default, which +can be queried with the \f[B]\-h\f[R] or \f[B]\-\-help\f[R] options. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-c\f[R], \f[B]\-\-digit\-clamp\f[R] +Enables clamping of digits greater than or equal to the current +\f[B]ibase\f[R] when parsing numbers. +.RS +.PP +This means that digits that the value added to a number from a digit +that is greater than or equal to the ibase is the value of ibase minus 1 +all multiplied by the value of ibase raised to the power of the +digit\[cq]s position, which starts from 0 at the least significant +digit. +.PP +If this and/or the \f[B]\-C\f[R] or \f[B]\-\-no\-digit\-clamp\f[R] +options are given multiple times, the last one given is used. +.PP +This option overrides the \f[B]DC_DIGIT_CLAMP\f[R] environment variable +(see the \f[B]ENVIRONMENT VARIABLES\f[R] section) and the default, which +can be queried with the \f[B]\-h\f[R] or \f[B]\-\-help\f[R] options. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-e\f[R] \f[I]expr\f[R], \f[B]\-\-expression\f[R]=\f[I]expr\f[R] +Evaluates \f[I]expr\f[R]. +If multiple expressions are given, they are evaluated in order. +If files are given as well (see below), the expressions and files are +evaluated in the order given. +This means that if a file is given before an expression, the file is +read in and evaluated first. +.RS +.PP +If this option is given on the command\-line (i.e., not in +\f[B]DC_ENV_ARGS\f[R], see the \f[B]ENVIRONMENT VARIABLES\f[R] section), +then after processing all expressions and files, dc(1) will exit, unless +\f[B]\-\f[R] (\f[B]stdin\f[R]) was given as an argument at least once to +\f[B]\-f\f[R] or \f[B]\-\-file\f[R], whether on the command\-line or in +\f[B]DC_ENV_ARGS\f[R]. +However, if any other \f[B]\-e\f[R], \f[B]\-\-expression\f[R], +\f[B]\-f\f[R], or \f[B]\-\-file\f[R] arguments are given after +\f[B]\-f\-\f[R] or equivalent is given, dc(1) will give a fatal error +and exit. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-f\f[R] \f[I]file\f[R], \f[B]\-\-file\f[R]=\f[I]file\f[R] +Reads in \f[I]file\f[R] and evaluates it, line by line, as though it +were read through \f[B]stdin\f[R]. +If expressions are also given (see above), the expressions are evaluated +in the order given. +.RS +.PP +If this option is given on the command\-line (i.e., not in +\f[B]DC_ENV_ARGS\f[R], see the \f[B]ENVIRONMENT VARIABLES\f[R] section), +then after processing all expressions and files, dc(1) will exit, unless +\f[B]\-\f[R] (\f[B]stdin\f[R]) was given as an argument at least once to +\f[B]\-f\f[R] or \f[B]\-\-file\f[R]. +However, if any other \f[B]\-e\f[R], \f[B]\-\-expression\f[R], +\f[B]\-f\f[R], or \f[B]\-\-file\f[R] arguments are given after +\f[B]\-f\-\f[R] or equivalent is given, dc(1) will give a fatal error +and exit. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-h\f[R], \f[B]\-\-help\f[R] +Prints a usage message and exits. +.TP +\f[B]\-I\f[R] \f[I]ibase\f[R], \f[B]\-\-ibase\f[R]=\f[I]ibase\f[R] +Sets the builtin variable \f[B]ibase\f[R] to the value \f[I]ibase\f[R] +assuming that \f[I]ibase\f[R] is in base 10. +It is a fatal error if \f[I]ibase\f[R] is not a valid number. +.RS +.PP +If multiple instances of this option are given, the last is used. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-i\f[R], \f[B]\-\-interactive\f[R] +Forces interactive mode. +(See the \f[B]INTERACTIVE MODE\f[R] section.) +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-L\f[R], \f[B]\-\-no\-line\-length\f[R] +Disables line length checking and prints numbers without backslashes and +newlines. +In other words, this option sets \f[B]BC_LINE_LENGTH\f[R] to \f[B]0\f[R] +(see the \f[B]ENVIRONMENT VARIABLES\f[R] section). +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-O\f[R] \f[I]obase\f[R], \f[B]\-\-obase\f[R]=\f[I]obase\f[R] +Sets the builtin variable \f[B]obase\f[R] to the value \f[I]obase\f[R] +assuming that \f[I]obase\f[R] is in base 10. +It is a fatal error if \f[I]obase\f[R] is not a valid number. +.RS +.PP +If multiple instances of this option are given, the last is used. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-P\f[R], \f[B]\-\-no\-prompt\f[R] +Disables the prompt in TTY mode. +(The prompt is only enabled in TTY mode. +See the \f[B]TTY MODE\f[R] section.) +This is mostly for those users that do not want a prompt or are not used +to having them in dc(1). +Most of those users would want to put this option in +\f[B]DC_ENV_ARGS\f[R]. +.RS +.PP +These options override the \f[B]DC_PROMPT\f[R] and \f[B]DC_TTY_MODE\f[R] +environment variables (see the \f[B]ENVIRONMENT VARIABLES\f[R] section). +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-R\f[R], \f[B]\-\-no\-read\-prompt\f[R] +Disables the read prompt in TTY mode. +(The read prompt is only enabled in TTY mode. +See the \f[B]TTY MODE\f[R] section.) +This is mostly for those users that do not want a read prompt or are not +used to having them in dc(1). +Most of those users would want to put this option in +\f[B]BC_ENV_ARGS\f[R] (see the \f[B]ENVIRONMENT VARIABLES\f[R] section). +This option is also useful in hash bang lines of dc(1) scripts that +prompt for user input. +.RS +.PP +This option does not disable the regular prompt because the read prompt +is only used when the \f[B]?\f[R] command is used. +.PP +These options \f[I]do\f[R] override the \f[B]DC_PROMPT\f[R] and +\f[B]DC_TTY_MODE\f[R] environment variables (see the \f[B]ENVIRONMENT +VARIABLES\f[R] section), but only for the read prompt. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-S\f[R] \f[I]scale\f[R], \f[B]\-\-scale\f[R]=\f[I]scale\f[R] +Sets the builtin variable \f[B]scale\f[R] to the value \f[I]scale\f[R] +assuming that \f[I]scale\f[R] is in base 10. +It is a fatal error if \f[I]scale\f[R] is not a valid number. +.RS +.PP +If multiple instances of this option are given, the last is used. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-v\f[R], \f[B]\-V\f[R], \f[B]\-\-version\f[R] +Print the version information (copyright header) and exits. +.TP +\f[B]\-x\f[R] \f[B]\-\-extended\-register\f[R] +Enables extended register mode. +See the \f[I]Extended Register Mode\f[R] subsection of the +\f[B]REGISTERS\f[R] section for more information. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-z\f[R], \f[B]\-\-leading\-zeroes\f[R] +Makes dc(1) print all numbers greater than \f[B]\-1\f[R] and less than +\f[B]1\f[R], and not equal to \f[B]0\f[R], with a leading zero. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.PP +All long options are \f[B]non\-portable extensions\f[R]. +.SH STDIN +If no files are given on the command\-line and no files or expressions +are given by the \f[B]\-f\f[R], \f[B]\-\-file\f[R], \f[B]\-e\f[R], or +\f[B]\-\-expression\f[R] options, then dc(1) reads from \f[B]stdin\f[R]. +.PP +However, there is a caveat to this. +.PP +First, \f[B]stdin\f[R] is evaluated a line at a time. +The only exception to this is if a string has been finished, but not +ended. +This means that, except for escaped brackets, all brackets must be +balanced before dc(1) parses and executes. +.SH STDOUT +Any non\-error output is written to \f[B]stdout\f[R]. +In addition, if history (see the \f[B]HISTORY\f[R] section) and the +prompt (see the \f[B]TTY MODE\f[R] section) are enabled, both are output +to \f[B]stdout\f[R]. +.PP +\f[B]Note\f[R]: Unlike other dc(1) implementations, this dc(1) will +issue a fatal error (see the \f[B]EXIT STATUS\f[R] section) if it cannot +write to \f[B]stdout\f[R], so if \f[B]stdout\f[R] is closed, as in +\f[B]dc >&\-\f[R], it will quit with an error. +This is done so that dc(1) can report problems when \f[B]stdout\f[R] is +redirected to a file. +.PP +If there are scripts that depend on the behavior of other dc(1) +implementations, it is recommended that those scripts be changed to +redirect \f[B]stdout\f[R] to \f[B]/dev/null\f[R]. +.SH STDERR +Any error output is written to \f[B]stderr\f[R]. +.PP +\f[B]Note\f[R]: Unlike other dc(1) implementations, this dc(1) will +issue a fatal error (see the \f[B]EXIT STATUS\f[R] section) if it cannot +write to \f[B]stderr\f[R], so if \f[B]stderr\f[R] is closed, as in +\f[B]dc 2>&\-\f[R], it will quit with an error. +This is done so that dc(1) can exit with an error code when +\f[B]stderr\f[R] is redirected to a file. +.PP +If there are scripts that depend on the behavior of other dc(1) +implementations, it is recommended that those scripts be changed to +redirect \f[B]stderr\f[R] to \f[B]/dev/null\f[R]. +.SH SYNTAX +Each item in the input source code, either a number (see the +\f[B]NUMBERS\f[R] section) or a command (see the \f[B]COMMANDS\f[R] +section), is processed and executed, in order. +Input is processed immediately when entered. +.PP +\f[B]ibase\f[R] is a register (see the \f[B]REGISTERS\f[R] section) that +determines how to interpret constant numbers. +It is the \[lq]input\[rq] base, or the number base used for interpreting +input numbers. +\f[B]ibase\f[R] is initially \f[B]10\f[R]. +The max allowable value for \f[B]ibase\f[R] is \f[B]16\f[R]. +The min allowable value for \f[B]ibase\f[R] is \f[B]2\f[R]. +The max allowable value for \f[B]ibase\f[R] can be queried in dc(1) +programs with the \f[B]T\f[R] command. +.PP +\f[B]obase\f[R] is a register (see the \f[B]REGISTERS\f[R] section) that +determines how to output results. +It is the \[lq]output\[rq] base, or the number base used for outputting +numbers. +\f[B]obase\f[R] is initially \f[B]10\f[R]. +The max allowable value for \f[B]obase\f[R] is \f[B]DC_BASE_MAX\f[R] and +can be queried with the \f[B]U\f[R] command. +The min allowable value for \f[B]obase\f[R] is \f[B]2\f[R]. +Values are output in the specified base. +.PP +The \f[I]scale\f[R] of an expression is the number of digits in the +result of the expression right of the decimal point, and \f[B]scale\f[R] +is a register (see the \f[B]REGISTERS\f[R] section) that sets the +precision of any operations (with exceptions). +\f[B]scale\f[R] is initially \f[B]0\f[R]. +\f[B]scale\f[R] cannot be negative. +The max allowable value for \f[B]scale\f[R] can be queried in dc(1) +programs with the \f[B]V\f[R] command. +.SS Comments +Comments go from \f[B]#\f[R] until, and not including, the next newline. +This is a \f[B]non\-portable extension\f[R]. +.SH NUMBERS +Numbers are strings made up of digits, uppercase letters up to +\f[B]F\f[R], and at most \f[B]1\f[R] period for a radix. +Numbers can have up to \f[B]DC_NUM_MAX\f[R] digits. +Uppercase letters are equal to \f[B]9\f[R] plus their position in the +alphabet (i.e., \f[B]A\f[R] equals \f[B]10\f[R], or \f[B]9+1\f[R]). +.PP +If a digit or letter makes no sense with the current value of +\f[B]ibase\f[R] (i.e., they are greater than or equal to the current +value of \f[B]ibase\f[R]), then the behavior depends on the existence of +the \f[B]\-c\f[R]/\f[B]\-\-digit\-clamp\f[R] or +\f[B]\-C\f[R]/\f[B]\-\-no\-digit\-clamp\f[R] options (see the +\f[B]OPTIONS\f[R] section), the existence and setting of the +\f[B]DC_DIGIT_CLAMP\f[R] environment variable (see the \f[B]ENVIRONMENT +VARIABLES\f[R] section), or the default, which can be queried with the +\f[B]\-h\f[R]/\f[B]\-\-help\f[R] option. +.PP +If clamping is off, then digits or letters that are greater than or +equal to the current value of \f[B]ibase\f[R] are not changed. +Instead, their given value is multiplied by the appropriate power of +\f[B]ibase\f[R] and added into the number. +This means that, with an \f[B]ibase\f[R] of \f[B]3\f[R], the number +\f[B]AB\f[R] is equal to \f[B]3\[ha]1*A+3\[ha]0*B\f[R], which is +\f[B]3\f[R] times \f[B]10\f[R] plus \f[B]11\f[R], or \f[B]41\f[R]. +.PP +If clamping is on, then digits or letters that are greater than or equal +to the current value of \f[B]ibase\f[R] are set to the value of the +highest valid digit in \f[B]ibase\f[R] before being multiplied by the +appropriate power of \f[B]ibase\f[R] and added into the number. +This means that, with an \f[B]ibase\f[R] of \f[B]3\f[R], the number +\f[B]AB\f[R] is equal to \f[B]3\[ha]1*2+3\[ha]0*2\f[R], which is +\f[B]3\f[R] times \f[B]2\f[R] plus \f[B]2\f[R], or \f[B]8\f[R]. +.PP +There is one exception to clamping: single\-character numbers (i.e., +\f[B]A\f[R] alone). +Such numbers are never clamped and always take the value they would have +in the highest possible \f[B]ibase\f[R]. +This means that \f[B]A\f[R] alone always equals decimal \f[B]10\f[R] and +\f[B]Z\f[R] alone always equals decimal \f[B]35\f[R]. +This behavior is mandated by the standard for bc(1) (see the STANDARDS +section) and is meant to provide an easy way to set the current +\f[B]ibase\f[R] (with the \f[B]i\f[R] command) regardless of the current +value of \f[B]ibase\f[R]. +.PP +If clamping is on, and the clamped value of a character is needed, use a +leading zero, i.e., for \f[B]A\f[R], use \f[B]0A\f[R]. +.SH COMMANDS +The valid commands are listed below. +.SS Printing +These commands are used for printing. +.TP +\f[B]p\f[R] +Prints the value on top of the stack, whether number or string, and +prints a newline after. +.RS +.PP +This does not alter the stack. +.RE +.TP +\f[B]n\f[R] +Prints the value on top of the stack, whether number or string, and pops +it off of the stack. +.TP +\f[B]P\f[R] +Pops a value off the stack. +.RS +.PP +If the value is a number, it is truncated and the absolute value of the +result is printed as though \f[B]obase\f[R] is \f[B]256\f[R] and each +digit is interpreted as an 8\-bit ASCII character, making it a byte +stream. +.PP +If the value is a string, it is printed without a trailing newline. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]f\f[R] +Prints the entire contents of the stack, in order from newest to oldest, +without altering anything. +.RS +.PP +Users should use this command when they get lost. +.RE +.SS Arithmetic +These are the commands used for arithmetic. +.TP +\f[B]+\f[R] +The top two values are popped off the stack, added, and the result is +pushed onto the stack. +The \f[I]scale\f[R] of the result is equal to the max \f[I]scale\f[R] of +both operands. +.TP +\f[B]\-\f[R] +The top two values are popped off the stack, subtracted, and the result +is pushed onto the stack. +The \f[I]scale\f[R] of the result is equal to the max \f[I]scale\f[R] of +both operands. +.TP +\f[B]*\f[R] +The top two values are popped off the stack, multiplied, and the result +is pushed onto the stack. +If \f[B]a\f[R] is the \f[I]scale\f[R] of the first expression and +\f[B]b\f[R] is the \f[I]scale\f[R] of the second expression, the +\f[I]scale\f[R] of the result is equal to +\f[B]min(a+b,max(scale,a,b))\f[R] where \f[B]min()\f[R] and +\f[B]max()\f[R] return the obvious values. +.TP +\f[B]/\f[R] +The top two values are popped off the stack, divided, and the result is +pushed onto the stack. +The \f[I]scale\f[R] of the result is equal to \f[B]scale\f[R]. +.RS +.PP +The first value popped off of the stack must be non\-zero. +.RE +.TP +\f[B]%\f[R] +The top two values are popped off the stack, remaindered, and the result +is pushed onto the stack. +.RS +.PP +Remaindering is equivalent to 1) Computing \f[B]a/b\f[R] to current +\f[B]scale\f[R], and 2) Using the result of step 1 to calculate +\f[B]a\-(a/b)*b\f[R] to \f[I]scale\f[R] +\f[B]max(scale+scale(b),scale(a))\f[R]. +.PP +The first value popped off of the stack must be non\-zero. +.RE +.TP +\f[B]\[ti]\f[R] +The top two values are popped off the stack, divided and remaindered, +and the results (divided first, remainder second) are pushed onto the +stack. +This is equivalent to \f[B]x y / x y %\f[R] except that \f[B]x\f[R] and +\f[B]y\f[R] are only evaluated once. +.RS +.PP +The first value popped off of the stack must be non\-zero. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\[ha]\f[R] +The top two values are popped off the stack, the second is raised to the +power of the first, and the result is pushed onto the stack. +The \f[I]scale\f[R] of the result is equal to \f[B]scale\f[R]. +.RS +.PP +The first value popped off of the stack must be an integer, and if that +value is negative, the second value popped off of the stack must be +non\-zero. +.RE +.TP +\f[B]v\f[R] +The top value is popped off the stack, its square root is computed, and +the result is pushed onto the stack. +The \f[I]scale\f[R] of the result is equal to \f[B]scale\f[R]. +.RS +.PP +The value popped off of the stack must be non\-negative. +.RE +.TP +\f[B]_\f[R] +If this command \f[I]immediately\f[R] precedes a number (i.e., no spaces +or other commands), then that number is input as a negative number. +.RS +.PP +Otherwise, the top value on the stack is popped and copied, and the copy +is negated and pushed onto the stack. +This behavior without a number is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]b\f[R] +The top value is popped off the stack, and if it is zero, it is pushed +back onto the stack. +Otherwise, its absolute value is pushed onto the stack. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]|\f[R] +The top three values are popped off the stack, a modular exponentiation +is computed, and the result is pushed onto the stack. +.RS +.PP +The first value popped is used as the reduction modulus and must be an +integer and non\-zero. +The second value popped is used as the exponent and must be an integer +and non\-negative. +The third value popped is the base and must be an integer. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]G\f[R] +The top two values are popped off of the stack, they are compared, and a +\f[B]1\f[R] is pushed if they are equal, or \f[B]0\f[R] otherwise. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]N\f[R] +The top value is popped off of the stack, and if it a \f[B]0\f[R], a +\f[B]1\f[R] is pushed; otherwise, a \f[B]0\f[R] is pushed. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B](\f[R] +The top two values are popped off of the stack, they are compared, and a +\f[B]1\f[R] is pushed if the first is less than the second, or +\f[B]0\f[R] otherwise. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]{\f[R] +The top two values are popped off of the stack, they are compared, and a +\f[B]1\f[R] is pushed if the first is less than or equal to the second, +or \f[B]0\f[R] otherwise. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B])\f[R] +The top two values are popped off of the stack, they are compared, and a +\f[B]1\f[R] is pushed if the first is greater than the second, or +\f[B]0\f[R] otherwise. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]}\f[R] +The top two values are popped off of the stack, they are compared, and a +\f[B]1\f[R] is pushed if the first is greater than or equal to the +second, or \f[B]0\f[R] otherwise. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]M\f[R] +The top two values are popped off of the stack. +If they are both non\-zero, a \f[B]1\f[R] is pushed onto the stack. +If either of them is zero, or both of them are, then a \f[B]0\f[R] is +pushed onto the stack. +.RS +.PP +This is like the \f[B]&&\f[R] operator in bc(1), and it is \f[I]not\f[R] +a short\-circuit operator. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]m\f[R] +The top two values are popped off of the stack. +If at least one of them is non\-zero, a \f[B]1\f[R] is pushed onto the +stack. +If both of them are zero, then a \f[B]0\f[R] is pushed onto the stack. +.RS +.PP +This is like the \f[B]||\f[R] operator in bc(1), and it is \f[I]not\f[R] +a short\-circuit operator. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.SS Stack Control +These commands control the stack. +.TP +\f[B]c\f[R] +Removes all items from (\[lq]clears\[rq]) the stack. +.TP +\f[B]d\f[R] +Copies the item on top of the stack (\[lq]duplicates\[rq]) and pushes +the copy onto the stack. +.TP +\f[B]r\f[R] +Swaps (\[lq]reverses\[rq]) the two top items on the stack. +.TP +\f[B]R\f[R] +Pops (\[lq]removes\[rq]) the top value from the stack. +.SS Register Control +These commands control registers (see the \f[B]REGISTERS\f[R] section). +.TP +\f[B]s\f[R]\f[I]r\f[R] +Pops the value off the top of the stack and stores it into register +\f[I]r\f[R]. +.TP +\f[B]l\f[R]\f[I]r\f[R] +Copies the value in register \f[I]r\f[R] and pushes it onto the stack. +This does not alter the contents of \f[I]r\f[R]. +.TP +\f[B]S\f[R]\f[I]r\f[R] +Pops the value off the top of the (main) stack and pushes it onto the +stack of register \f[I]r\f[R]. +The previous value of the register becomes inaccessible. +.TP +\f[B]L\f[R]\f[I]r\f[R] +Pops the value off the top of the stack for register \f[I]r\f[R] and +push it onto the main stack. +The previous value in the stack for register \f[I]r\f[R], if any, is now +accessible via the \f[B]l\f[R]\f[I]r\f[R] command. +.SS Parameters +These commands control the values of \f[B]ibase\f[R], \f[B]obase\f[R], +and \f[B]scale\f[R]. +Also see the \f[B]SYNTAX\f[R] section. +.TP +\f[B]i\f[R] +Pops the value off of the top of the stack and uses it to set +\f[B]ibase\f[R], which must be between \f[B]2\f[R] and \f[B]16\f[R], +inclusive. +.RS +.PP +If the value on top of the stack has any \f[I]scale\f[R], the +\f[I]scale\f[R] is ignored. +.RE +.TP +\f[B]o\f[R] +Pops the value off of the top of the stack and uses it to set +\f[B]obase\f[R], which must be between \f[B]2\f[R] and +\f[B]DC_BASE_MAX\f[R], inclusive (see the \f[B]LIMITS\f[R] section). +.RS +.PP +If the value on top of the stack has any \f[I]scale\f[R], the +\f[I]scale\f[R] is ignored. +.RE +.TP +\f[B]k\f[R] +Pops the value off of the top of the stack and uses it to set +\f[B]scale\f[R], which must be non\-negative. +.RS +.PP +If the value on top of the stack has any \f[I]scale\f[R], the +\f[I]scale\f[R] is ignored. +.RE +.TP +\f[B]I\f[R] +Pushes the current value of \f[B]ibase\f[R] onto the main stack. +.TP +\f[B]O\f[R] +Pushes the current value of \f[B]obase\f[R] onto the main stack. +.TP +\f[B]K\f[R] +Pushes the current value of \f[B]scale\f[R] onto the main stack. +.TP +\f[B]T\f[R] +Pushes the maximum allowable value of \f[B]ibase\f[R] onto the main +stack. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]U\f[R] +Pushes the maximum allowable value of \f[B]obase\f[R] onto the main +stack. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]V\f[R] +Pushes the maximum allowable value of \f[B]scale\f[R] onto the main +stack. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.SS Strings +The following commands control strings. +.PP +dc(1) can work with both numbers and strings, and registers (see the +\f[B]REGISTERS\f[R] section) can hold both strings and numbers. +dc(1) always knows whether the contents of a register are a string or a +number. +.PP +While arithmetic operations have to have numbers, and will print an +error if given a string, other commands accept strings. +.PP +Strings can also be executed as macros. +For example, if the string \f[B][1pR]\f[R] is executed as a macro, then +the code \f[B]1pR\f[R] is executed, meaning that the \f[B]1\f[R] will be +printed with a newline after and then popped from the stack. +.TP +\f[B][\f[R]\f[I]characters\f[R]\f[B]]\f[R] +Makes a string containing \f[I]characters\f[R] and pushes it onto the +stack. +.RS +.PP +If there are brackets (\f[B][\f[R] and \f[B]]\f[R]) in the string, then +they must be balanced. +Unbalanced brackets can be escaped using a backslash (\f[B]\[rs]\f[R]) +character. +.PP +If there is a backslash character in the string, the character after it +(even another backslash) is put into the string verbatim, but the +(first) backslash is not. +.RE +.TP +\f[B]a\f[R] +The value on top of the stack is popped. +.RS +.PP +If it is a number, it is truncated and its absolute value is taken. +The result mod \f[B]256\f[R] is calculated. +If that result is \f[B]0\f[R], push an empty string; otherwise, push a +one\-character string where the character is the result of the mod +interpreted as an ASCII character. +.PP +If it is a string, then a new string is made. +If the original string is empty, the new string is empty. +If it is not, then the first character of the original string is used to +create the new string as a one\-character string. +The new string is then pushed onto the stack. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]x\f[R] +Pops a value off of the top of the stack. +.RS +.PP +If it is a number, it is pushed back onto the stack. +.PP +If it is a string, it is executed as a macro. +.PP +This behavior is the norm whenever a macro is executed, whether by this +command or by the conditional execution commands below. +.RE +.TP +\f[B]>\f[R]\f[I]r\f[R] +Pops two values off of the stack that must be numbers and compares them. +If the first value is greater than the second, then the contents of +register \f[I]r\f[R] are executed. +.RS +.PP +For example, \f[B]0 1>a\f[R] will execute the contents of register +\f[B]a\f[R], and \f[B]1 0>a\f[R] will not. +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.RE +.TP +\f[B]>\f[R]\f[I]r\f[R]\f[B]e\f[R]\f[I]s\f[R] +Like the above, but will execute register \f[I]s\f[R] if the comparison +fails. +.RS +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]!>\f[R]\f[I]r\f[R] +Pops two values off of the stack that must be numbers and compares them. +If the first value is not greater than the second (less than or equal +to), then the contents of register \f[I]r\f[R] are executed. +.RS +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.RE +.TP +\f[B]!>\f[R]\f[I]r\f[R]\f[B]e\f[R]\f[I]s\f[R] +Like the above, but will execute register \f[I]s\f[R] if the comparison +fails. +.RS +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]<\f[R]\f[I]r\f[R] +Pops two values off of the stack that must be numbers and compares them. +If the first value is less than the second, then the contents of +register \f[I]r\f[R] are executed. +.RS +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.RE +.TP +\f[B]<\f[R]\f[I]r\f[R]\f[B]e\f[R]\f[I]s\f[R] +Like the above, but will execute register \f[I]s\f[R] if the comparison +fails. +.RS +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]!<\f[R]\f[I]r\f[R] +Pops two values off of the stack that must be numbers and compares them. +If the first value is not less than the second (greater than or equal +to), then the contents of register \f[I]r\f[R] are executed. +.RS +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.RE +.TP +\f[B]!<\f[R]\f[I]r\f[R]\f[B]e\f[R]\f[I]s\f[R] +Like the above, but will execute register \f[I]s\f[R] if the comparison +fails. +.RS +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]=\f[R]\f[I]r\f[R] +Pops two values off of the stack that must be numbers and compares them. +If the first value is equal to the second, then the contents of register +\f[I]r\f[R] are executed. +.RS +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.RE +.TP +\f[B]=\f[R]\f[I]r\f[R]\f[B]e\f[R]\f[I]s\f[R] +Like the above, but will execute register \f[I]s\f[R] if the comparison +fails. +.RS +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]!=\f[R]\f[I]r\f[R] +Pops two values off of the stack that must be numbers and compares them. +If the first value is not equal to the second, then the contents of +register \f[I]r\f[R] are executed. +.RS +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.RE +.TP +\f[B]!=\f[R]\f[I]r\f[R]\f[B]e\f[R]\f[I]s\f[R] +Like the above, but will execute register \f[I]s\f[R] if the comparison +fails. +.RS +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]?\f[R] +Reads a line from the \f[B]stdin\f[R] and executes it. +This is to allow macros to request input from users. +.TP +\f[B]q\f[R] +During execution of a macro, this exits the execution of that macro and +the execution of the macro that executed it. +If there are no macros, or only one macro executing, dc(1) exits. +.TP +\f[B]Q\f[R] +Pops a value from the stack which must be non\-negative and is used the +number of macro executions to pop off of the execution stack. +If the number of levels to pop is greater than the number of executing +macros, dc(1) exits. +.TP +\f[B],\f[R] +Pushes the depth of the execution stack onto the stack. +The execution stack is the stack of string executions. +The number that is pushed onto the stack is exactly as many as is needed +to make dc(1) exit with the \f[B]Q\f[R] command, so the sequence +\f[B],Q\f[R] will make dc(1) exit. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.SS Status +These commands query status of the stack or its top value. +.TP +\f[B]Z\f[R] +Pops a value off of the stack. +.RS +.PP +If it is a number, calculates the number of significant decimal digits +it has and pushes the result. +It will push \f[B]1\f[R] if the argument is \f[B]0\f[R] with no decimal +places. +.PP +If it is a string, pushes the number of characters the string has. +.RE +.TP +\f[B]X\f[R] +Pops a value off of the stack. +.RS +.PP +If it is a number, pushes the \f[I]scale\f[R] of the value onto the +stack. +.PP +If it is a string, pushes \f[B]0\f[R]. +.RE +.TP +\f[B]u\f[R] +Pops one value off of the stack. +If the value is a number, this pushes \f[B]1\f[R] onto the stack. +Otherwise (if it is a string), it pushes \f[B]0\f[R]. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]t\f[R] +Pops one value off of the stack. +If the value is a string, this pushes \f[B]1\f[R] onto the stack. +Otherwise (if it is a number), it pushes \f[B]0\f[R]. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]z\f[R] +Pushes the current depth of the stack (before execution of this command) +onto the stack. +.TP +\f[B]y\f[R]\f[I]r\f[R] +Pushes the current stack depth of the register \f[I]r\f[R] onto the main +stack. +.RS +.PP +Because each register has a depth of \f[B]1\f[R] (with the value +\f[B]0\f[R] in the top item) when dc(1) starts, dc(1) requires that each +register\[cq]s stack must always have at least one item; dc(1) will give +an error and reset otherwise (see the \f[B]RESET\f[R] section). +This means that this command will never push \f[B]0\f[R]. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.SS Arrays +These commands manipulate arrays. +.TP +\f[B]:\f[R]\f[I]r\f[R] +Pops the top two values off of the stack. +The second value will be stored in the array \f[I]r\f[R] (see the +\f[B]REGISTERS\f[R] section), indexed by the first value. +.TP +\f[B];\f[R]\f[I]r\f[R] +Pops the value on top of the stack and uses it as an index into the +array \f[I]r\f[R]. +The selected value is then pushed onto the stack. +.TP +\f[B]Y\f[R]\f[I]r\f[R] +Pushes the length of the array \f[I]r\f[R] onto the stack. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.SS Global Settings +These commands retrieve global settings. +These are the only commands that require multiple specific characters, +and all of them begin with the letter \f[B]g\f[R]. +Only the characters below are allowed after the character \f[B]g\f[R]; +any other character produces a parse error (see the \f[B]ERRORS\f[R] +section). +.TP +\f[B]gl\f[R] +Pushes the line length set by \f[B]DC_LINE_LENGTH\f[R] (see the +\f[B]ENVIRONMENT VARIABLES\f[R] section) onto the stack. +.TP +\f[B]gx\f[R] +Pushes \f[B]1\f[R] onto the stack if extended register mode is on, +\f[B]0\f[R] otherwise. +See the \f[I]Extended Register Mode\f[R] subsection of the +\f[B]REGISTERS\f[R] section for more information. +.TP +\f[B]gz\f[R] +Pushes \f[B]0\f[R] onto the stack if the leading zero setting has not +been enabled with the \f[B]\-z\f[R] or \f[B]\-\-leading\-zeroes\f[R] +options (see the \f[B]OPTIONS\f[R] section), non\-zero otherwise. +.SH REGISTERS +Registers are names that can store strings, numbers, and arrays. +(Number/string registers do not interfere with array registers.) +.PP +Each register is also its own stack, so the current register value is +the top of the stack for the register. +All registers, when first referenced, have one value (\f[B]0\f[R]) in +their stack, and it is a runtime error to attempt to pop that item off +of the register stack. +.PP +In non\-extended register mode, a register name is just the single +character that follows any command that needs a register name. +The only exceptions are: a newline (\f[B]`\[rs]n'\f[R]) and a left +bracket (\f[B]`['\f[R]); it is a parse error for a newline or a left +bracket to be used as a register name. +.SS Extended Register Mode +Unlike most other dc(1) implentations, this dc(1) provides nearly +unlimited amounts of registers, if extended register mode is enabled. +.PP +If extended register mode is enabled (\f[B]\-x\f[R] or +\f[B]\-\-extended\-register\f[R] command\-line arguments are given), +then normal single character registers are used \f[I]unless\f[R] the +character immediately following a command that needs a register name is +a space (according to \f[B]isspace()\f[R]) and not a newline +(\f[B]`\[rs]n'\f[R]). +.PP +In that case, the register name is found according to the regex +\f[B][a\-z][a\-z0\-9_]*\f[R] (like bc(1) identifiers), and it is a parse +error if the next non\-space characters do not match that regex. +.SH RESET +When dc(1) encounters an error or a signal that it has a non\-default +handler for, it resets. +This means that several things happen. +.PP +First, any macros that are executing are stopped and popped off the +execution stack. +The behavior is not unlike that of exceptions in programming languages. +Then the execution point is set so that any code waiting to execute +(after all macros returned) is skipped. +.PP +However, the stack of values is \f[I]not\f[R] cleared; in interactive +mode, users can inspect the stack and manipulate it. +.PP +Thus, when dc(1) resets, it skips any remaining code waiting to be +executed. +Then, if it is interactive mode, and the error was not a fatal error +(see the \f[B]EXIT STATUS\f[R] section), it asks for more input; +otherwise, it exits with the appropriate return code. +.SH PERFORMANCE +Most dc(1) implementations use \f[B]char\f[R] types to calculate the +value of \f[B]1\f[R] decimal digit at a time, but that can be slow. +This dc(1) does something different. +.PP +It uses large integers to calculate more than \f[B]1\f[R] decimal digit +at a time. +If built in a environment where \f[B]DC_LONG_BIT\f[R] (see the +\f[B]LIMITS\f[R] section) is \f[B]64\f[R], then each integer has +\f[B]9\f[R] decimal digits. +If built in an environment where \f[B]DC_LONG_BIT\f[R] is \f[B]32\f[R] +then each integer has \f[B]4\f[R] decimal digits. +This value (the number of decimal digits per large integer) is called +\f[B]DC_BASE_DIGS\f[R]. +.PP +In addition, this dc(1) uses an even larger integer for overflow +checking. +This integer type depends on the value of \f[B]DC_LONG_BIT\f[R], but is +always at least twice as large as the integer type used to store digits. +.SH LIMITS +The following are the limits on dc(1): +.TP +\f[B]DC_LONG_BIT\f[R] +The number of bits in the \f[B]long\f[R] type in the environment where +dc(1) was built. +This determines how many decimal digits can be stored in a single large +integer (see the \f[B]PERFORMANCE\f[R] section). +.TP +\f[B]DC_BASE_DIGS\f[R] +The number of decimal digits per large integer (see the +\f[B]PERFORMANCE\f[R] section). +Depends on \f[B]DC_LONG_BIT\f[R]. +.TP +\f[B]DC_BASE_POW\f[R] +The max decimal number that each large integer can store (see +\f[B]DC_BASE_DIGS\f[R]) plus \f[B]1\f[R]. +Depends on \f[B]DC_BASE_DIGS\f[R]. +.TP +\f[B]DC_OVERFLOW_MAX\f[R] +The max number that the overflow type (see the \f[B]PERFORMANCE\f[R] +section) can hold. +Depends on \f[B]DC_LONG_BIT\f[R]. +.TP +\f[B]DC_BASE_MAX\f[R] +The maximum output base. +Set at \f[B]DC_BASE_POW\f[R]. +.TP +\f[B]DC_DIM_MAX\f[R] +The maximum size of arrays. +Set at \f[B]SIZE_MAX\-1\f[R]. +.TP +\f[B]DC_SCALE_MAX\f[R] +The maximum \f[B]scale\f[R]. +Set at \f[B]DC_OVERFLOW_MAX\-1\f[R]. +.TP +\f[B]DC_STRING_MAX\f[R] +The maximum length of strings. +Set at \f[B]DC_OVERFLOW_MAX\-1\f[R]. +.TP +\f[B]DC_NAME_MAX\f[R] +The maximum length of identifiers. +Set at \f[B]DC_OVERFLOW_MAX\-1\f[R]. +.TP +\f[B]DC_NUM_MAX\f[R] +The maximum length of a number (in decimal digits), which includes +digits after the decimal point. +Set at \f[B]DC_OVERFLOW_MAX\-1\f[R]. +.TP +Exponent +The maximum allowable exponent (positive or negative). +Set at \f[B]DC_OVERFLOW_MAX\f[R]. +.TP +Number of vars +The maximum number of vars/arrays. +Set at \f[B]SIZE_MAX\-1\f[R]. +.PP +These limits are meant to be effectively non\-existent; the limits are +so large (at least on 64\-bit machines) that there should not be any +point at which they become a problem. +In fact, memory should be exhausted before these limits should be hit. +.SH ENVIRONMENT VARIABLES +As \f[B]non\-portable extensions\f[R], dc(1) recognizes the following +environment variables: +.TP +\f[B]DC_ENV_ARGS\f[R] +This is another way to give command\-line arguments to dc(1). +They should be in the same format as all other command\-line arguments. +These are always processed first, so any files given in +\f[B]DC_ENV_ARGS\f[R] will be processed before arguments and files given +on the command\-line. +This gives the user the ability to set up \[lq]standard\[rq] options and +files to be used at every invocation. +The most useful thing for such files to contain would be useful +functions that the user might want every time dc(1) runs. +Another use would be to use the \f[B]\-e\f[R] option to set +\f[B]scale\f[R] to a value other than \f[B]0\f[R]. +.RS +.PP +The code that parses \f[B]DC_ENV_ARGS\f[R] will correctly handle quoted +arguments, but it does not understand escape sequences. +For example, the string \f[B]\[lq]/home/gavin/some dc file.dc\[rq]\f[R] +will be correctly parsed, but the string \f[B]\[lq]/home/gavin/some +\[dq]dc\[dq] file.dc\[rq]\f[R] will include the backslashes. +.PP +The quote parsing will handle either kind of quotes, \f[B]\[cq]\f[R] or +\f[B]\[lq]\f[R]. +Thus, if you have a file with any number of single quotes in the name, +you can use double quotes as the outside quotes, as in \f[B]\[lq]some +`dc' file.dc\[rq]\f[R], and vice versa if you have a file with double +quotes. +However, handling a file with both kinds of quotes in +\f[B]DC_ENV_ARGS\f[R] is not supported due to the complexity of the +parsing, though such files are still supported on the command\-line +where the parsing is done by the shell. +.RE +.TP +\f[B]DC_LINE_LENGTH\f[R] +If this environment variable exists and contains an integer that is +greater than \f[B]1\f[R] and is less than \f[B]UINT16_MAX\f[R] +(\f[B]2\[ha]16\-1\f[R]), dc(1) will output lines to that length, +including the backslash newline combo. +The default line length is \f[B]70\f[R]. +.RS +.PP +The special value of \f[B]0\f[R] will disable line length checking and +print numbers without regard to line length and without backslashes and +newlines. +.RE +.TP +\f[B]DC_SIGINT_RESET\f[R] +If dc(1) is not in interactive mode (see the \f[B]INTERACTIVE MODE\f[R] +section), then this environment variable has no effect because dc(1) +exits on \f[B]SIGINT\f[R] when not in interactive mode. +.RS +.PP +However, when dc(1) is in interactive mode, then if this environment +variable exists and contains an integer, a non\-zero value makes dc(1) +reset on \f[B]SIGINT\f[R], rather than exit, and zero makes dc(1) exit. +If this environment variable exists and is \f[I]not\f[R] an integer, +then dc(1) will exit on \f[B]SIGINT\f[R]. +.PP +This environment variable overrides the default, which can be queried +with the \f[B]\-h\f[R] or \f[B]\-\-help\f[R] options. +.RE +.TP +\f[B]DC_TTY_MODE\f[R] +If TTY mode is \f[I]not\f[R] available (see the \f[B]TTY MODE\f[R] +section), then this environment variable has no effect. +.RS +.PP +However, when TTY mode is available, then if this environment variable +exists and contains an integer, then a non\-zero value makes dc(1) use +TTY mode, and zero makes dc(1) not use TTY mode. +.PP +This environment variable overrides the default, which can be queried +with the \f[B]\-h\f[R] or \f[B]\-\-help\f[R] options. +.RE +.TP +\f[B]DC_PROMPT\f[R] +If TTY mode is \f[I]not\f[R] available (see the \f[B]TTY MODE\f[R] +section), then this environment variable has no effect. +.RS +.PP +However, when TTY mode is available, then if this environment variable +exists and contains an integer, a non\-zero value makes dc(1) use a +prompt, and zero or a non\-integer makes dc(1) not use a prompt. +If this environment variable does not exist and \f[B]DC_TTY_MODE\f[R] +does, then the value of the \f[B]DC_TTY_MODE\f[R] environment variable +is used. +.PP +This environment variable and the \f[B]DC_TTY_MODE\f[R] environment +variable override the default, which can be queried with the +\f[B]\-h\f[R] or \f[B]\-\-help\f[R] options. +.RE +.TP +\f[B]DC_EXPR_EXIT\f[R] +If any expressions or expression files are given on the command\-line +with \f[B]\-e\f[R], \f[B]\-\-expression\f[R], \f[B]\-f\f[R], or +\f[B]\-\-file\f[R], then if this environment variable exists and +contains an integer, a non\-zero value makes dc(1) exit after executing +the expressions and expression files, and a zero value makes dc(1) not +exit. +.RS +.PP +This environment variable overrides the default, which can be queried +with the \f[B]\-h\f[R] or \f[B]\-\-help\f[R] options. +.RE +.TP +\f[B]DC_DIGIT_CLAMP\f[R] +When parsing numbers and if this environment variable exists and +contains an integer, a non\-zero value makes dc(1) clamp digits that are +greater than or equal to the current \f[B]ibase\f[R] so that all such +digits are considered equal to the \f[B]ibase\f[R] minus 1, and a zero +value disables such clamping so that those digits are always equal to +their value, which is multiplied by the power of the \f[B]ibase\f[R]. +.RS +.PP +This never applies to single\-digit numbers, as per the bc(1) standard +(see the \f[B]STANDARDS\f[R] section). +.PP +This environment variable overrides the default, which can be queried +with the \f[B]\-h\f[R] or \f[B]\-\-help\f[R] options. +.RE +.SH EXIT STATUS +dc(1) returns the following exit statuses: +.TP +\f[B]0\f[R] +No error. +.TP +\f[B]1\f[R] +A math error occurred. +This follows standard practice of using \f[B]1\f[R] for expected errors, +since math errors will happen in the process of normal execution. +.RS +.PP +Math errors include divide by \f[B]0\f[R], taking the square root of a +negative number, attempting to convert a negative number to a hardware +integer, overflow when converting a number to a hardware integer, +overflow when calculating the size of a number, and attempting to use a +non\-integer where an integer is required. +.PP +Converting to a hardware integer happens for the second operand of the +power (\f[B]\[ha]\f[R]) operator. +.RE +.TP +\f[B]2\f[R] +A parse error occurred. +.RS +.PP +Parse errors include unexpected \f[B]EOF\f[R], using an invalid +character, failing to find the end of a string or comment, and using a +token where it is invalid. +.RE +.TP +\f[B]3\f[R] +A runtime error occurred. +.RS +.PP +Runtime errors include assigning an invalid number to any global +(\f[B]ibase\f[R], \f[B]obase\f[R], or \f[B]scale\f[R]), giving a bad +expression to a \f[B]read()\f[R] call, calling \f[B]read()\f[R] inside +of a \f[B]read()\f[R] call, type errors (including attempting to execute +a number), and attempting an operation when the stack has too few +elements. +.RE +.TP +\f[B]4\f[R] +A fatal error occurred. +.RS +.PP +Fatal errors include memory allocation errors, I/O errors, failing to +open files, attempting to use files that do not have only ASCII +characters (dc(1) only accepts ASCII characters), attempting to open a +directory as a file, and giving invalid command\-line options. +.RE +.PP +The exit status \f[B]4\f[R] is special; when a fatal error occurs, dc(1) +always exits and returns \f[B]4\f[R], no matter what mode dc(1) is in. +.PP +The other statuses will only be returned when dc(1) is not in +interactive mode (see the \f[B]INTERACTIVE MODE\f[R] section), since +dc(1) resets its state (see the \f[B]RESET\f[R] section) and accepts +more input when one of those errors occurs in interactive mode. +This is also the case when interactive mode is forced by the +\f[B]\-i\f[R] flag or \f[B]\-\-interactive\f[R] option. +.PP +These exit statuses allow dc(1) to be used in shell scripting with error +checking, and its normal behavior can be forced by using the +\f[B]\-i\f[R] flag or \f[B]\-\-interactive\f[R] option. +.SH INTERACTIVE MODE +Like bc(1), dc(1) has an interactive mode and a non\-interactive mode. +Interactive mode is turned on automatically when both \f[B]stdin\f[R] +and \f[B]stdout\f[R] are hooked to a terminal, but the \f[B]\-i\f[R] +flag and \f[B]\-\-interactive\f[R] option can turn it on in other +situations. +.PP +In interactive mode, dc(1) attempts to recover from errors (see the +\f[B]RESET\f[R] section), and in normal execution, flushes +\f[B]stdout\f[R] as soon as execution is done for the current input. +dc(1) may also reset on \f[B]SIGINT\f[R] instead of exit, depending on +the contents of, or default for, the \f[B]DC_SIGINT_RESET\f[R] +environment variable (see the \f[B]ENVIRONMENT VARIABLES\f[R] section). +.SH TTY MODE +If \f[B]stdin\f[R], \f[B]stdout\f[R], and \f[B]stderr\f[R] are all +connected to a TTY, then \[lq]TTY mode\[rq] is considered to be +available, and thus, dc(1) can turn on TTY mode, subject to some +settings. +.PP +If there is the environment variable \f[B]DC_TTY_MODE\f[R] in the +environment (see the \f[B]ENVIRONMENT VARIABLES\f[R] section), then if +that environment variable contains a non\-zero integer, dc(1) will turn +on TTY mode when \f[B]stdin\f[R], \f[B]stdout\f[R], and \f[B]stderr\f[R] +are all connected to a TTY. +If the \f[B]DC_TTY_MODE\f[R] environment variable exists but is +\f[I]not\f[R] a non\-zero integer, then dc(1) will not turn TTY mode on. +.PP +If the environment variable \f[B]DC_TTY_MODE\f[R] does \f[I]not\f[R] +exist, the default setting is used. +The default setting can be queried with the \f[B]\-h\f[R] or +\f[B]\-\-help\f[R] options. +.PP +TTY mode is different from interactive mode because interactive mode is +required in the bc(1) specification (see the \f[B]STANDARDS\f[R] +section), and interactive mode requires only \f[B]stdin\f[R] and +\f[B]stdout\f[R] to be connected to a terminal. +.SS Command\-Line History +Command\-line history is only enabled if TTY mode is, i.e., that +\f[B]stdin\f[R], \f[B]stdout\f[R], and \f[B]stderr\f[R] are connected to +a TTY and the \f[B]DC_TTY_MODE\f[R] environment variable (see the +\f[B]ENVIRONMENT VARIABLES\f[R] section) and its default do not disable +TTY mode. +See the \f[B]COMMAND LINE HISTORY\f[R] section for more information. +.SS Prompt +If TTY mode is available, then a prompt can be enabled. +Like TTY mode itself, it can be turned on or off with an environment +variable: \f[B]DC_PROMPT\f[R] (see the \f[B]ENVIRONMENT VARIABLES\f[R] +section). +.PP +If the environment variable \f[B]DC_PROMPT\f[R] exists and is a +non\-zero integer, then the prompt is turned on when \f[B]stdin\f[R], +\f[B]stdout\f[R], and \f[B]stderr\f[R] are connected to a TTY and the +\f[B]\-P\f[R] and \f[B]\-\-no\-prompt\f[R] options were not used. +The read prompt will be turned on under the same conditions, except that +the \f[B]\-R\f[R] and \f[B]\-\-no\-read\-prompt\f[R] options must also +not be used. +.PP +However, if \f[B]DC_PROMPT\f[R] does not exist, the prompt can be +enabled or disabled with the \f[B]DC_TTY_MODE\f[R] environment variable, +the \f[B]\-P\f[R] and \f[B]\-\-no\-prompt\f[R] options, and the +\f[B]\-R\f[R] and \f[B]\-\-no\-read\-prompt\f[R] options. +See the \f[B]ENVIRONMENT VARIABLES\f[R] and \f[B]OPTIONS\f[R] sections +for more details. +.SH SIGNAL HANDLING +Sending a \f[B]SIGINT\f[R] will cause dc(1) to do one of two things. +.PP +If dc(1) is not in interactive mode (see the \f[B]INTERACTIVE MODE\f[R] +section), or the \f[B]DC_SIGINT_RESET\f[R] environment variable (see the +\f[B]ENVIRONMENT VARIABLES\f[R] section), or its default, is either not +an integer or it is zero, dc(1) will exit. +.PP +However, if dc(1) is in interactive mode, and the +\f[B]DC_SIGINT_RESET\f[R] or its default is an integer and non\-zero, +then dc(1) will stop executing the current input and reset (see the +\f[B]RESET\f[R] section) upon receiving a \f[B]SIGINT\f[R]. +.PP +Note that \[lq]current input\[rq] can mean one of two things. +If dc(1) is processing input from \f[B]stdin\f[R] in interactive mode, +it will ask for more input. +If dc(1) is processing input from a file in interactive mode, it will +stop processing the file and start processing the next file, if one +exists, or ask for input from \f[B]stdin\f[R] if no other file exists. +.PP +This means that if a \f[B]SIGINT\f[R] is sent to dc(1) as it is +executing a file, it can seem as though dc(1) did not respond to the +signal since it will immediately start executing the next file. +This is by design; most files that users execute when interacting with +dc(1) have function definitions, which are quick to parse. +If a file takes a long time to execute, there may be a bug in that file. +The rest of the files could still be executed without problem, allowing +the user to continue. +.PP +\f[B]SIGTERM\f[R] and \f[B]SIGQUIT\f[R] cause dc(1) to clean up and +exit, and it uses the default handler for all other signals. +The one exception is \f[B]SIGHUP\f[R]; in that case, and only when dc(1) +is in TTY mode (see the \f[B]TTY MODE\f[R] section), a \f[B]SIGHUP\f[R] +will cause dc(1) to clean up and exit. +.SH COMMAND LINE HISTORY +dc(1) supports interactive command\-line editing. +.PP +If dc(1) can be in TTY mode (see the \f[B]TTY MODE\f[R] section), +history can be enabled. +This means that command\-line history can only be enabled when +\f[B]stdin\f[R], \f[B]stdout\f[R], and \f[B]stderr\f[R] are all +connected to a TTY. +.PP +Like TTY mode itself, it can be turned on or off with the environment +variable \f[B]DC_TTY_MODE\f[R] (see the \f[B]ENVIRONMENT VARIABLES\f[R] +section). +.PP +\f[B]Note\f[R]: tabs are converted to 8 spaces. +.SH LOCALES +This dc(1) ships with support for adding error messages for different +locales and thus, supports \f[B]LC_MESSAGES\f[R]. +.SH SEE ALSO +bc(1) +.SH STANDARDS +The dc(1) utility operators and some behavior are compliant with the +operators in the IEEE Std 1003.1\-2017 (\[lq]POSIX.1\-2017\[rq]) bc(1) +specification at +https://pubs.opengroup.org/onlinepubs/9699919799/utilities/bc.html . +.SH BUGS +None are known. +Report bugs at https://github.com/gavinhoward/bc . +.SH AUTHOR +Gavin D. Howard \c +.MT gavin@gavinhoward.com +.ME \c +\ and contributors. diff --git a/static/freebsd/man1/EH.1 b/static/freebsd/man1/EH.1 new file mode 100644 index 00000000..199f50fb --- /dev/null +++ b/static/freebsd/man1/EH.1 @@ -0,0 +1,1450 @@ +.\" +.\" SPDX-License-Identifier: BSD-2-Clause +.\" +.\" Copyright (c) 2018-2025 Gavin D. Howard and contributors. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions are met: +.\" +.\" * Redistributions of source code must retain the above copyright notice, +.\" this list of conditions and the following disclaimer. +.\" +.\" * Redistributions in binary form must reproduce the above copyright notice, +.\" this list of conditions and the following disclaimer in the documentation +.\" and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +.\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +.\" LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +.\" POSSIBILITY OF SUCH DAMAGE. +.\" +.TH "DC" "1" "August 2024" "Gavin D. Howard" "General Commands Manual" +.nh +.ad l +.SH Name +dc \- arbitrary\-precision decimal reverse\-Polish notation calculator +.SH SYNOPSIS +\f[B]dc\f[R] [\f[B]\-cChiPRvVx\f[R]] [\f[B]\-\-version\f[R]] +[\f[B]\-\-help\f[R]] [\f[B]\-\-digit\-clamp\f[R]] +[\f[B]\-\-no\-digit\-clamp\f[R]] [\f[B]\-\-interactive\f[R]] +[\f[B]\-\-no\-prompt\f[R]] [\f[B]\-\-no\-read\-prompt\f[R]] +[\f[B]\-\-extended\-register\f[R]] [\f[B]\-e\f[R] \f[I]expr\f[R]] +[\f[B]\-\-expression\f[R]=\f[I]expr\f[R]\&...] +[\f[B]\-f\f[R] \f[I]file\f[R]\&...] +[\f[B]\-\-file\f[R]=\f[I]file\f[R]\&...] +[\f[I]file\f[R]\&...] +.SH DESCRIPTION +dc(1) is an arbitrary\-precision calculator. +It uses a stack (reverse Polish notation) to store numbers and results +of computations. +Arithmetic operations pop arguments off of the stack and push the +results. +.PP +If no files are given on the command\-line, then dc(1) reads from +\f[B]stdin\f[R] (see the \f[B]STDIN\f[R] section). +Otherwise, those files are processed, and dc(1) will then exit. +.PP +If a user wants to set up a standard environment, they can use +\f[B]DC_ENV_ARGS\f[R] (see the \f[B]ENVIRONMENT VARIABLES\f[R] section). +For example, if a user wants the \f[B]scale\f[R] always set to +\f[B]10\f[R], they can set \f[B]DC_ENV_ARGS\f[R] to \f[B]\-e 10k\f[R], +and this dc(1) will always start with a \f[B]scale\f[R] of \f[B]10\f[R]. +.SH OPTIONS +The following are the options that dc(1) accepts. +.TP +\f[B]\-C\f[R], \f[B]\-\-no\-digit\-clamp\f[R] +Disables clamping of digits greater than or equal to the current +\f[B]ibase\f[R] when parsing numbers. +.RS +.PP +This means that the value added to a number from a digit is always that +digit\[cq]s value multiplied by the value of ibase raised to the power +of the digit\[cq]s position, which starts from 0 at the least +significant digit. +.PP +If this and/or the \f[B]\-c\f[R] or \f[B]\-\-digit\-clamp\f[R] options +are given multiple times, the last one given is used. +.PP +This option overrides the \f[B]DC_DIGIT_CLAMP\f[R] environment variable +(see the \f[B]ENVIRONMENT VARIABLES\f[R] section) and the default, which +can be queried with the \f[B]\-h\f[R] or \f[B]\-\-help\f[R] options. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-c\f[R], \f[B]\-\-digit\-clamp\f[R] +Enables clamping of digits greater than or equal to the current +\f[B]ibase\f[R] when parsing numbers. +.RS +.PP +This means that digits that the value added to a number from a digit +that is greater than or equal to the ibase is the value of ibase minus 1 +all multiplied by the value of ibase raised to the power of the +digit\[cq]s position, which starts from 0 at the least significant +digit. +.PP +If this and/or the \f[B]\-C\f[R] or \f[B]\-\-no\-digit\-clamp\f[R] +options are given multiple times, the last one given is used. +.PP +This option overrides the \f[B]DC_DIGIT_CLAMP\f[R] environment variable +(see the \f[B]ENVIRONMENT VARIABLES\f[R] section) and the default, which +can be queried with the \f[B]\-h\f[R] or \f[B]\-\-help\f[R] options. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-e\f[R] \f[I]expr\f[R], \f[B]\-\-expression\f[R]=\f[I]expr\f[R] +Evaluates \f[I]expr\f[R]. +If multiple expressions are given, they are evaluated in order. +If files are given as well (see below), the expressions and files are +evaluated in the order given. +This means that if a file is given before an expression, the file is +read in and evaluated first. +.RS +.PP +If this option is given on the command\-line (i.e., not in +\f[B]DC_ENV_ARGS\f[R], see the \f[B]ENVIRONMENT VARIABLES\f[R] section), +then after processing all expressions and files, dc(1) will exit, unless +\f[B]\-\f[R] (\f[B]stdin\f[R]) was given as an argument at least once to +\f[B]\-f\f[R] or \f[B]\-\-file\f[R], whether on the command\-line or in +\f[B]DC_ENV_ARGS\f[R]. +However, if any other \f[B]\-e\f[R], \f[B]\-\-expression\f[R], +\f[B]\-f\f[R], or \f[B]\-\-file\f[R] arguments are given after +\f[B]\-f\-\f[R] or equivalent is given, dc(1) will give a fatal error +and exit. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-f\f[R] \f[I]file\f[R], \f[B]\-\-file\f[R]=\f[I]file\f[R] +Reads in \f[I]file\f[R] and evaluates it, line by line, as though it +were read through \f[B]stdin\f[R]. +If expressions are also given (see above), the expressions are evaluated +in the order given. +.RS +.PP +If this option is given on the command\-line (i.e., not in +\f[B]DC_ENV_ARGS\f[R], see the \f[B]ENVIRONMENT VARIABLES\f[R] section), +then after processing all expressions and files, dc(1) will exit, unless +\f[B]\-\f[R] (\f[B]stdin\f[R]) was given as an argument at least once to +\f[B]\-f\f[R] or \f[B]\-\-file\f[R]. +However, if any other \f[B]\-e\f[R], \f[B]\-\-expression\f[R], +\f[B]\-f\f[R], or \f[B]\-\-file\f[R] arguments are given after +\f[B]\-f\-\f[R] or equivalent is given, dc(1) will give a fatal error +and exit. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-h\f[R], \f[B]\-\-help\f[R] +Prints a usage message and exits. +.TP +\f[B]\-I\f[R] \f[I]ibase\f[R], \f[B]\-\-ibase\f[R]=\f[I]ibase\f[R] +Sets the builtin variable \f[B]ibase\f[R] to the value \f[I]ibase\f[R] +assuming that \f[I]ibase\f[R] is in base 10. +It is a fatal error if \f[I]ibase\f[R] is not a valid number. +.RS +.PP +If multiple instances of this option are given, the last is used. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-i\f[R], \f[B]\-\-interactive\f[R] +Forces interactive mode. +(See the \f[B]INTERACTIVE MODE\f[R] section.) +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-L\f[R], \f[B]\-\-no\-line\-length\f[R] +Disables line length checking and prints numbers without backslashes and +newlines. +In other words, this option sets \f[B]BC_LINE_LENGTH\f[R] to \f[B]0\f[R] +(see the \f[B]ENVIRONMENT VARIABLES\f[R] section). +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-O\f[R] \f[I]obase\f[R], \f[B]\-\-obase\f[R]=\f[I]obase\f[R] +Sets the builtin variable \f[B]obase\f[R] to the value \f[I]obase\f[R] +assuming that \f[I]obase\f[R] is in base 10. +It is a fatal error if \f[I]obase\f[R] is not a valid number. +.RS +.PP +If multiple instances of this option are given, the last is used. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-P\f[R], \f[B]\-\-no\-prompt\f[R] +Disables the prompt in TTY mode. +(The prompt is only enabled in TTY mode. +See the \f[B]TTY MODE\f[R] section.) +This is mostly for those users that do not want a prompt or are not used +to having them in dc(1). +Most of those users would want to put this option in +\f[B]DC_ENV_ARGS\f[R]. +.RS +.PP +These options override the \f[B]DC_PROMPT\f[R] and \f[B]DC_TTY_MODE\f[R] +environment variables (see the \f[B]ENVIRONMENT VARIABLES\f[R] section). +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-R\f[R], \f[B]\-\-no\-read\-prompt\f[R] +Disables the read prompt in TTY mode. +(The read prompt is only enabled in TTY mode. +See the \f[B]TTY MODE\f[R] section.) +This is mostly for those users that do not want a read prompt or are not +used to having them in dc(1). +Most of those users would want to put this option in +\f[B]BC_ENV_ARGS\f[R] (see the \f[B]ENVIRONMENT VARIABLES\f[R] section). +This option is also useful in hash bang lines of dc(1) scripts that +prompt for user input. +.RS +.PP +This option does not disable the regular prompt because the read prompt +is only used when the \f[B]?\f[R] command is used. +.PP +These options \f[I]do\f[R] override the \f[B]DC_PROMPT\f[R] and +\f[B]DC_TTY_MODE\f[R] environment variables (see the \f[B]ENVIRONMENT +VARIABLES\f[R] section), but only for the read prompt. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-S\f[R] \f[I]scale\f[R], \f[B]\-\-scale\f[R]=\f[I]scale\f[R] +Sets the builtin variable \f[B]scale\f[R] to the value \f[I]scale\f[R] +assuming that \f[I]scale\f[R] is in base 10. +It is a fatal error if \f[I]scale\f[R] is not a valid number. +.RS +.PP +If multiple instances of this option are given, the last is used. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-v\f[R], \f[B]\-V\f[R], \f[B]\-\-version\f[R] +Print the version information (copyright header) and exits. +.TP +\f[B]\-x\f[R] \f[B]\-\-extended\-register\f[R] +Enables extended register mode. +See the \f[I]Extended Register Mode\f[R] subsection of the +\f[B]REGISTERS\f[R] section for more information. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-z\f[R], \f[B]\-\-leading\-zeroes\f[R] +Makes dc(1) print all numbers greater than \f[B]\-1\f[R] and less than +\f[B]1\f[R], and not equal to \f[B]0\f[R], with a leading zero. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.PP +All long options are \f[B]non\-portable extensions\f[R]. +.SH STDIN +If no files are given on the command\-line and no files or expressions +are given by the \f[B]\-f\f[R], \f[B]\-\-file\f[R], \f[B]\-e\f[R], or +\f[B]\-\-expression\f[R] options, then dc(1) reads from \f[B]stdin\f[R]. +.PP +However, there is a caveat to this. +.PP +First, \f[B]stdin\f[R] is evaluated a line at a time. +The only exception to this is if a string has been finished, but not +ended. +This means that, except for escaped brackets, all brackets must be +balanced before dc(1) parses and executes. +.SH STDOUT +Any non\-error output is written to \f[B]stdout\f[R]. +In addition, if history (see the \f[B]HISTORY\f[R] section) and the +prompt (see the \f[B]TTY MODE\f[R] section) are enabled, both are output +to \f[B]stdout\f[R]. +.PP +\f[B]Note\f[R]: Unlike other dc(1) implementations, this dc(1) will +issue a fatal error (see the \f[B]EXIT STATUS\f[R] section) if it cannot +write to \f[B]stdout\f[R], so if \f[B]stdout\f[R] is closed, as in +\f[B]dc >&\-\f[R], it will quit with an error. +This is done so that dc(1) can report problems when \f[B]stdout\f[R] is +redirected to a file. +.PP +If there are scripts that depend on the behavior of other dc(1) +implementations, it is recommended that those scripts be changed to +redirect \f[B]stdout\f[R] to \f[B]/dev/null\f[R]. +.SH STDERR +Any error output is written to \f[B]stderr\f[R]. +.PP +\f[B]Note\f[R]: Unlike other dc(1) implementations, this dc(1) will +issue a fatal error (see the \f[B]EXIT STATUS\f[R] section) if it cannot +write to \f[B]stderr\f[R], so if \f[B]stderr\f[R] is closed, as in +\f[B]dc 2>&\-\f[R], it will quit with an error. +This is done so that dc(1) can exit with an error code when +\f[B]stderr\f[R] is redirected to a file. +.PP +If there are scripts that depend on the behavior of other dc(1) +implementations, it is recommended that those scripts be changed to +redirect \f[B]stderr\f[R] to \f[B]/dev/null\f[R]. +.SH SYNTAX +Each item in the input source code, either a number (see the +\f[B]NUMBERS\f[R] section) or a command (see the \f[B]COMMANDS\f[R] +section), is processed and executed, in order. +Input is processed immediately when entered. +.PP +\f[B]ibase\f[R] is a register (see the \f[B]REGISTERS\f[R] section) that +determines how to interpret constant numbers. +It is the \[lq]input\[rq] base, or the number base used for interpreting +input numbers. +\f[B]ibase\f[R] is initially \f[B]10\f[R]. +The max allowable value for \f[B]ibase\f[R] is \f[B]16\f[R]. +The min allowable value for \f[B]ibase\f[R] is \f[B]2\f[R]. +The max allowable value for \f[B]ibase\f[R] can be queried in dc(1) +programs with the \f[B]T\f[R] command. +.PP +\f[B]obase\f[R] is a register (see the \f[B]REGISTERS\f[R] section) that +determines how to output results. +It is the \[lq]output\[rq] base, or the number base used for outputting +numbers. +\f[B]obase\f[R] is initially \f[B]10\f[R]. +The max allowable value for \f[B]obase\f[R] is \f[B]DC_BASE_MAX\f[R] and +can be queried with the \f[B]U\f[R] command. +The min allowable value for \f[B]obase\f[R] is \f[B]2\f[R]. +Values are output in the specified base. +.PP +The \f[I]scale\f[R] of an expression is the number of digits in the +result of the expression right of the decimal point, and \f[B]scale\f[R] +is a register (see the \f[B]REGISTERS\f[R] section) that sets the +precision of any operations (with exceptions). +\f[B]scale\f[R] is initially \f[B]0\f[R]. +\f[B]scale\f[R] cannot be negative. +The max allowable value for \f[B]scale\f[R] can be queried in dc(1) +programs with the \f[B]V\f[R] command. +.SS Comments +Comments go from \f[B]#\f[R] until, and not including, the next newline. +This is a \f[B]non\-portable extension\f[R]. +.SH NUMBERS +Numbers are strings made up of digits, uppercase letters up to +\f[B]F\f[R], and at most \f[B]1\f[R] period for a radix. +Numbers can have up to \f[B]DC_NUM_MAX\f[R] digits. +Uppercase letters are equal to \f[B]9\f[R] plus their position in the +alphabet (i.e., \f[B]A\f[R] equals \f[B]10\f[R], or \f[B]9+1\f[R]). +.PP +If a digit or letter makes no sense with the current value of +\f[B]ibase\f[R] (i.e., they are greater than or equal to the current +value of \f[B]ibase\f[R]), then the behavior depends on the existence of +the \f[B]\-c\f[R]/\f[B]\-\-digit\-clamp\f[R] or +\f[B]\-C\f[R]/\f[B]\-\-no\-digit\-clamp\f[R] options (see the +\f[B]OPTIONS\f[R] section), the existence and setting of the +\f[B]DC_DIGIT_CLAMP\f[R] environment variable (see the \f[B]ENVIRONMENT +VARIABLES\f[R] section), or the default, which can be queried with the +\f[B]\-h\f[R]/\f[B]\-\-help\f[R] option. +.PP +If clamping is off, then digits or letters that are greater than or +equal to the current value of \f[B]ibase\f[R] are not changed. +Instead, their given value is multiplied by the appropriate power of +\f[B]ibase\f[R] and added into the number. +This means that, with an \f[B]ibase\f[R] of \f[B]3\f[R], the number +\f[B]AB\f[R] is equal to \f[B]3\[ha]1*A+3\[ha]0*B\f[R], which is +\f[B]3\f[R] times \f[B]10\f[R] plus \f[B]11\f[R], or \f[B]41\f[R]. +.PP +If clamping is on, then digits or letters that are greater than or equal +to the current value of \f[B]ibase\f[R] are set to the value of the +highest valid digit in \f[B]ibase\f[R] before being multiplied by the +appropriate power of \f[B]ibase\f[R] and added into the number. +This means that, with an \f[B]ibase\f[R] of \f[B]3\f[R], the number +\f[B]AB\f[R] is equal to \f[B]3\[ha]1*2+3\[ha]0*2\f[R], which is +\f[B]3\f[R] times \f[B]2\f[R] plus \f[B]2\f[R], or \f[B]8\f[R]. +.PP +There is one exception to clamping: single\-character numbers (i.e., +\f[B]A\f[R] alone). +Such numbers are never clamped and always take the value they would have +in the highest possible \f[B]ibase\f[R]. +This means that \f[B]A\f[R] alone always equals decimal \f[B]10\f[R] and +\f[B]Z\f[R] alone always equals decimal \f[B]35\f[R]. +This behavior is mandated by the standard for bc(1) (see the STANDARDS +section) and is meant to provide an easy way to set the current +\f[B]ibase\f[R] (with the \f[B]i\f[R] command) regardless of the current +value of \f[B]ibase\f[R]. +.PP +If clamping is on, and the clamped value of a character is needed, use a +leading zero, i.e., for \f[B]A\f[R], use \f[B]0A\f[R]. +.SH COMMANDS +The valid commands are listed below. +.SS Printing +These commands are used for printing. +.TP +\f[B]p\f[R] +Prints the value on top of the stack, whether number or string, and +prints a newline after. +.RS +.PP +This does not alter the stack. +.RE +.TP +\f[B]n\f[R] +Prints the value on top of the stack, whether number or string, and pops +it off of the stack. +.TP +\f[B]P\f[R] +Pops a value off the stack. +.RS +.PP +If the value is a number, it is truncated and the absolute value of the +result is printed as though \f[B]obase\f[R] is \f[B]256\f[R] and each +digit is interpreted as an 8\-bit ASCII character, making it a byte +stream. +.PP +If the value is a string, it is printed without a trailing newline. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]f\f[R] +Prints the entire contents of the stack, in order from newest to oldest, +without altering anything. +.RS +.PP +Users should use this command when they get lost. +.RE +.SS Arithmetic +These are the commands used for arithmetic. +.TP +\f[B]+\f[R] +The top two values are popped off the stack, added, and the result is +pushed onto the stack. +The \f[I]scale\f[R] of the result is equal to the max \f[I]scale\f[R] of +both operands. +.TP +\f[B]\-\f[R] +The top two values are popped off the stack, subtracted, and the result +is pushed onto the stack. +The \f[I]scale\f[R] of the result is equal to the max \f[I]scale\f[R] of +both operands. +.TP +\f[B]*\f[R] +The top two values are popped off the stack, multiplied, and the result +is pushed onto the stack. +If \f[B]a\f[R] is the \f[I]scale\f[R] of the first expression and +\f[B]b\f[R] is the \f[I]scale\f[R] of the second expression, the +\f[I]scale\f[R] of the result is equal to +\f[B]min(a+b,max(scale,a,b))\f[R] where \f[B]min()\f[R] and +\f[B]max()\f[R] return the obvious values. +.TP +\f[B]/\f[R] +The top two values are popped off the stack, divided, and the result is +pushed onto the stack. +The \f[I]scale\f[R] of the result is equal to \f[B]scale\f[R]. +.RS +.PP +The first value popped off of the stack must be non\-zero. +.RE +.TP +\f[B]%\f[R] +The top two values are popped off the stack, remaindered, and the result +is pushed onto the stack. +.RS +.PP +Remaindering is equivalent to 1) Computing \f[B]a/b\f[R] to current +\f[B]scale\f[R], and 2) Using the result of step 1 to calculate +\f[B]a\-(a/b)*b\f[R] to \f[I]scale\f[R] +\f[B]max(scale+scale(b),scale(a))\f[R]. +.PP +The first value popped off of the stack must be non\-zero. +.RE +.TP +\f[B]\[ti]\f[R] +The top two values are popped off the stack, divided and remaindered, +and the results (divided first, remainder second) are pushed onto the +stack. +This is equivalent to \f[B]x y / x y %\f[R] except that \f[B]x\f[R] and +\f[B]y\f[R] are only evaluated once. +.RS +.PP +The first value popped off of the stack must be non\-zero. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\[ha]\f[R] +The top two values are popped off the stack, the second is raised to the +power of the first, and the result is pushed onto the stack. +The \f[I]scale\f[R] of the result is equal to \f[B]scale\f[R]. +.RS +.PP +The first value popped off of the stack must be an integer, and if that +value is negative, the second value popped off of the stack must be +non\-zero. +.RE +.TP +\f[B]v\f[R] +The top value is popped off the stack, its square root is computed, and +the result is pushed onto the stack. +The \f[I]scale\f[R] of the result is equal to \f[B]scale\f[R]. +.RS +.PP +The value popped off of the stack must be non\-negative. +.RE +.TP +\f[B]_\f[R] +If this command \f[I]immediately\f[R] precedes a number (i.e., no spaces +or other commands), then that number is input as a negative number. +.RS +.PP +Otherwise, the top value on the stack is popped and copied, and the copy +is negated and pushed onto the stack. +This behavior without a number is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]b\f[R] +The top value is popped off the stack, and if it is zero, it is pushed +back onto the stack. +Otherwise, its absolute value is pushed onto the stack. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]|\f[R] +The top three values are popped off the stack, a modular exponentiation +is computed, and the result is pushed onto the stack. +.RS +.PP +The first value popped is used as the reduction modulus and must be an +integer and non\-zero. +The second value popped is used as the exponent and must be an integer +and non\-negative. +The third value popped is the base and must be an integer. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]G\f[R] +The top two values are popped off of the stack, they are compared, and a +\f[B]1\f[R] is pushed if they are equal, or \f[B]0\f[R] otherwise. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]N\f[R] +The top value is popped off of the stack, and if it a \f[B]0\f[R], a +\f[B]1\f[R] is pushed; otherwise, a \f[B]0\f[R] is pushed. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B](\f[R] +The top two values are popped off of the stack, they are compared, and a +\f[B]1\f[R] is pushed if the first is less than the second, or +\f[B]0\f[R] otherwise. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]{\f[R] +The top two values are popped off of the stack, they are compared, and a +\f[B]1\f[R] is pushed if the first is less than or equal to the second, +or \f[B]0\f[R] otherwise. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B])\f[R] +The top two values are popped off of the stack, they are compared, and a +\f[B]1\f[R] is pushed if the first is greater than the second, or +\f[B]0\f[R] otherwise. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]}\f[R] +The top two values are popped off of the stack, they are compared, and a +\f[B]1\f[R] is pushed if the first is greater than or equal to the +second, or \f[B]0\f[R] otherwise. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]M\f[R] +The top two values are popped off of the stack. +If they are both non\-zero, a \f[B]1\f[R] is pushed onto the stack. +If either of them is zero, or both of them are, then a \f[B]0\f[R] is +pushed onto the stack. +.RS +.PP +This is like the \f[B]&&\f[R] operator in bc(1), and it is \f[I]not\f[R] +a short\-circuit operator. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]m\f[R] +The top two values are popped off of the stack. +If at least one of them is non\-zero, a \f[B]1\f[R] is pushed onto the +stack. +If both of them are zero, then a \f[B]0\f[R] is pushed onto the stack. +.RS +.PP +This is like the \f[B]||\f[R] operator in bc(1), and it is \f[I]not\f[R] +a short\-circuit operator. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.SS Stack Control +These commands control the stack. +.TP +\f[B]c\f[R] +Removes all items from (\[lq]clears\[rq]) the stack. +.TP +\f[B]d\f[R] +Copies the item on top of the stack (\[lq]duplicates\[rq]) and pushes +the copy onto the stack. +.TP +\f[B]r\f[R] +Swaps (\[lq]reverses\[rq]) the two top items on the stack. +.TP +\f[B]R\f[R] +Pops (\[lq]removes\[rq]) the top value from the stack. +.SS Register Control +These commands control registers (see the \f[B]REGISTERS\f[R] section). +.TP +\f[B]s\f[R]\f[I]r\f[R] +Pops the value off the top of the stack and stores it into register +\f[I]r\f[R]. +.TP +\f[B]l\f[R]\f[I]r\f[R] +Copies the value in register \f[I]r\f[R] and pushes it onto the stack. +This does not alter the contents of \f[I]r\f[R]. +.TP +\f[B]S\f[R]\f[I]r\f[R] +Pops the value off the top of the (main) stack and pushes it onto the +stack of register \f[I]r\f[R]. +The previous value of the register becomes inaccessible. +.TP +\f[B]L\f[R]\f[I]r\f[R] +Pops the value off the top of the stack for register \f[I]r\f[R] and +push it onto the main stack. +The previous value in the stack for register \f[I]r\f[R], if any, is now +accessible via the \f[B]l\f[R]\f[I]r\f[R] command. +.SS Parameters +These commands control the values of \f[B]ibase\f[R], \f[B]obase\f[R], +and \f[B]scale\f[R]. +Also see the \f[B]SYNTAX\f[R] section. +.TP +\f[B]i\f[R] +Pops the value off of the top of the stack and uses it to set +\f[B]ibase\f[R], which must be between \f[B]2\f[R] and \f[B]16\f[R], +inclusive. +.RS +.PP +If the value on top of the stack has any \f[I]scale\f[R], the +\f[I]scale\f[R] is ignored. +.RE +.TP +\f[B]o\f[R] +Pops the value off of the top of the stack and uses it to set +\f[B]obase\f[R], which must be between \f[B]2\f[R] and +\f[B]DC_BASE_MAX\f[R], inclusive (see the \f[B]LIMITS\f[R] section). +.RS +.PP +If the value on top of the stack has any \f[I]scale\f[R], the +\f[I]scale\f[R] is ignored. +.RE +.TP +\f[B]k\f[R] +Pops the value off of the top of the stack and uses it to set +\f[B]scale\f[R], which must be non\-negative. +.RS +.PP +If the value on top of the stack has any \f[I]scale\f[R], the +\f[I]scale\f[R] is ignored. +.RE +.TP +\f[B]I\f[R] +Pushes the current value of \f[B]ibase\f[R] onto the main stack. +.TP +\f[B]O\f[R] +Pushes the current value of \f[B]obase\f[R] onto the main stack. +.TP +\f[B]K\f[R] +Pushes the current value of \f[B]scale\f[R] onto the main stack. +.TP +\f[B]T\f[R] +Pushes the maximum allowable value of \f[B]ibase\f[R] onto the main +stack. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]U\f[R] +Pushes the maximum allowable value of \f[B]obase\f[R] onto the main +stack. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]V\f[R] +Pushes the maximum allowable value of \f[B]scale\f[R] onto the main +stack. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.SS Strings +The following commands control strings. +.PP +dc(1) can work with both numbers and strings, and registers (see the +\f[B]REGISTERS\f[R] section) can hold both strings and numbers. +dc(1) always knows whether the contents of a register are a string or a +number. +.PP +While arithmetic operations have to have numbers, and will print an +error if given a string, other commands accept strings. +.PP +Strings can also be executed as macros. +For example, if the string \f[B][1pR]\f[R] is executed as a macro, then +the code \f[B]1pR\f[R] is executed, meaning that the \f[B]1\f[R] will be +printed with a newline after and then popped from the stack. +.TP +\f[B][\f[R]\f[I]characters\f[R]\f[B]]\f[R] +Makes a string containing \f[I]characters\f[R] and pushes it onto the +stack. +.RS +.PP +If there are brackets (\f[B][\f[R] and \f[B]]\f[R]) in the string, then +they must be balanced. +Unbalanced brackets can be escaped using a backslash (\f[B]\[rs]\f[R]) +character. +.PP +If there is a backslash character in the string, the character after it +(even another backslash) is put into the string verbatim, but the +(first) backslash is not. +.RE +.TP +\f[B]a\f[R] +The value on top of the stack is popped. +.RS +.PP +If it is a number, it is truncated and its absolute value is taken. +The result mod \f[B]256\f[R] is calculated. +If that result is \f[B]0\f[R], push an empty string; otherwise, push a +one\-character string where the character is the result of the mod +interpreted as an ASCII character. +.PP +If it is a string, then a new string is made. +If the original string is empty, the new string is empty. +If it is not, then the first character of the original string is used to +create the new string as a one\-character string. +The new string is then pushed onto the stack. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]x\f[R] +Pops a value off of the top of the stack. +.RS +.PP +If it is a number, it is pushed back onto the stack. +.PP +If it is a string, it is executed as a macro. +.PP +This behavior is the norm whenever a macro is executed, whether by this +command or by the conditional execution commands below. +.RE +.TP +\f[B]>\f[R]\f[I]r\f[R] +Pops two values off of the stack that must be numbers and compares them. +If the first value is greater than the second, then the contents of +register \f[I]r\f[R] are executed. +.RS +.PP +For example, \f[B]0 1>a\f[R] will execute the contents of register +\f[B]a\f[R], and \f[B]1 0>a\f[R] will not. +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.RE +.TP +\f[B]>\f[R]\f[I]r\f[R]\f[B]e\f[R]\f[I]s\f[R] +Like the above, but will execute register \f[I]s\f[R] if the comparison +fails. +.RS +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]!>\f[R]\f[I]r\f[R] +Pops two values off of the stack that must be numbers and compares them. +If the first value is not greater than the second (less than or equal +to), then the contents of register \f[I]r\f[R] are executed. +.RS +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.RE +.TP +\f[B]!>\f[R]\f[I]r\f[R]\f[B]e\f[R]\f[I]s\f[R] +Like the above, but will execute register \f[I]s\f[R] if the comparison +fails. +.RS +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]<\f[R]\f[I]r\f[R] +Pops two values off of the stack that must be numbers and compares them. +If the first value is less than the second, then the contents of +register \f[I]r\f[R] are executed. +.RS +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.RE +.TP +\f[B]<\f[R]\f[I]r\f[R]\f[B]e\f[R]\f[I]s\f[R] +Like the above, but will execute register \f[I]s\f[R] if the comparison +fails. +.RS +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]!<\f[R]\f[I]r\f[R] +Pops two values off of the stack that must be numbers and compares them. +If the first value is not less than the second (greater than or equal +to), then the contents of register \f[I]r\f[R] are executed. +.RS +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.RE +.TP +\f[B]!<\f[R]\f[I]r\f[R]\f[B]e\f[R]\f[I]s\f[R] +Like the above, but will execute register \f[I]s\f[R] if the comparison +fails. +.RS +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]=\f[R]\f[I]r\f[R] +Pops two values off of the stack that must be numbers and compares them. +If the first value is equal to the second, then the contents of register +\f[I]r\f[R] are executed. +.RS +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.RE +.TP +\f[B]=\f[R]\f[I]r\f[R]\f[B]e\f[R]\f[I]s\f[R] +Like the above, but will execute register \f[I]s\f[R] if the comparison +fails. +.RS +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]!=\f[R]\f[I]r\f[R] +Pops two values off of the stack that must be numbers and compares them. +If the first value is not equal to the second, then the contents of +register \f[I]r\f[R] are executed. +.RS +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.RE +.TP +\f[B]!=\f[R]\f[I]r\f[R]\f[B]e\f[R]\f[I]s\f[R] +Like the above, but will execute register \f[I]s\f[R] if the comparison +fails. +.RS +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]?\f[R] +Reads a line from the \f[B]stdin\f[R] and executes it. +This is to allow macros to request input from users. +.TP +\f[B]q\f[R] +During execution of a macro, this exits the execution of that macro and +the execution of the macro that executed it. +If there are no macros, or only one macro executing, dc(1) exits. +.TP +\f[B]Q\f[R] +Pops a value from the stack which must be non\-negative and is used the +number of macro executions to pop off of the execution stack. +If the number of levels to pop is greater than the number of executing +macros, dc(1) exits. +.TP +\f[B],\f[R] +Pushes the depth of the execution stack onto the stack. +The execution stack is the stack of string executions. +The number that is pushed onto the stack is exactly as many as is needed +to make dc(1) exit with the \f[B]Q\f[R] command, so the sequence +\f[B],Q\f[R] will make dc(1) exit. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.SS Status +These commands query status of the stack or its top value. +.TP +\f[B]Z\f[R] +Pops a value off of the stack. +.RS +.PP +If it is a number, calculates the number of significant decimal digits +it has and pushes the result. +It will push \f[B]1\f[R] if the argument is \f[B]0\f[R] with no decimal +places. +.PP +If it is a string, pushes the number of characters the string has. +.RE +.TP +\f[B]X\f[R] +Pops a value off of the stack. +.RS +.PP +If it is a number, pushes the \f[I]scale\f[R] of the value onto the +stack. +.PP +If it is a string, pushes \f[B]0\f[R]. +.RE +.TP +\f[B]u\f[R] +Pops one value off of the stack. +If the value is a number, this pushes \f[B]1\f[R] onto the stack. +Otherwise (if it is a string), it pushes \f[B]0\f[R]. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]t\f[R] +Pops one value off of the stack. +If the value is a string, this pushes \f[B]1\f[R] onto the stack. +Otherwise (if it is a number), it pushes \f[B]0\f[R]. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]z\f[R] +Pushes the current depth of the stack (before execution of this command) +onto the stack. +.TP +\f[B]y\f[R]\f[I]r\f[R] +Pushes the current stack depth of the register \f[I]r\f[R] onto the main +stack. +.RS +.PP +Because each register has a depth of \f[B]1\f[R] (with the value +\f[B]0\f[R] in the top item) when dc(1) starts, dc(1) requires that each +register\[cq]s stack must always have at least one item; dc(1) will give +an error and reset otherwise (see the \f[B]RESET\f[R] section). +This means that this command will never push \f[B]0\f[R]. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.SS Arrays +These commands manipulate arrays. +.TP +\f[B]:\f[R]\f[I]r\f[R] +Pops the top two values off of the stack. +The second value will be stored in the array \f[I]r\f[R] (see the +\f[B]REGISTERS\f[R] section), indexed by the first value. +.TP +\f[B];\f[R]\f[I]r\f[R] +Pops the value on top of the stack and uses it as an index into the +array \f[I]r\f[R]. +The selected value is then pushed onto the stack. +.TP +\f[B]Y\f[R]\f[I]r\f[R] +Pushes the length of the array \f[I]r\f[R] onto the stack. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.SS Global Settings +These commands retrieve global settings. +These are the only commands that require multiple specific characters, +and all of them begin with the letter \f[B]g\f[R]. +Only the characters below are allowed after the character \f[B]g\f[R]; +any other character produces a parse error (see the \f[B]ERRORS\f[R] +section). +.TP +\f[B]gl\f[R] +Pushes the line length set by \f[B]DC_LINE_LENGTH\f[R] (see the +\f[B]ENVIRONMENT VARIABLES\f[R] section) onto the stack. +.TP +\f[B]gx\f[R] +Pushes \f[B]1\f[R] onto the stack if extended register mode is on, +\f[B]0\f[R] otherwise. +See the \f[I]Extended Register Mode\f[R] subsection of the +\f[B]REGISTERS\f[R] section for more information. +.TP +\f[B]gz\f[R] +Pushes \f[B]0\f[R] onto the stack if the leading zero setting has not +been enabled with the \f[B]\-z\f[R] or \f[B]\-\-leading\-zeroes\f[R] +options (see the \f[B]OPTIONS\f[R] section), non\-zero otherwise. +.SH REGISTERS +Registers are names that can store strings, numbers, and arrays. +(Number/string registers do not interfere with array registers.) +.PP +Each register is also its own stack, so the current register value is +the top of the stack for the register. +All registers, when first referenced, have one value (\f[B]0\f[R]) in +their stack, and it is a runtime error to attempt to pop that item off +of the register stack. +.PP +In non\-extended register mode, a register name is just the single +character that follows any command that needs a register name. +The only exceptions are: a newline (\f[B]`\[rs]n'\f[R]) and a left +bracket (\f[B]`['\f[R]); it is a parse error for a newline or a left +bracket to be used as a register name. +.SS Extended Register Mode +Unlike most other dc(1) implentations, this dc(1) provides nearly +unlimited amounts of registers, if extended register mode is enabled. +.PP +If extended register mode is enabled (\f[B]\-x\f[R] or +\f[B]\-\-extended\-register\f[R] command\-line arguments are given), +then normal single character registers are used \f[I]unless\f[R] the +character immediately following a command that needs a register name is +a space (according to \f[B]isspace()\f[R]) and not a newline +(\f[B]`\[rs]n'\f[R]). +.PP +In that case, the register name is found according to the regex +\f[B][a\-z][a\-z0\-9_]*\f[R] (like bc(1) identifiers), and it is a parse +error if the next non\-space characters do not match that regex. +.SH RESET +When dc(1) encounters an error or a signal that it has a non\-default +handler for, it resets. +This means that several things happen. +.PP +First, any macros that are executing are stopped and popped off the +execution stack. +The behavior is not unlike that of exceptions in programming languages. +Then the execution point is set so that any code waiting to execute +(after all macros returned) is skipped. +.PP +However, the stack of values is \f[I]not\f[R] cleared; in interactive +mode, users can inspect the stack and manipulate it. +.PP +Thus, when dc(1) resets, it skips any remaining code waiting to be +executed. +Then, if it is interactive mode, and the error was not a fatal error +(see the \f[B]EXIT STATUS\f[R] section), it asks for more input; +otherwise, it exits with the appropriate return code. +.SH PERFORMANCE +Most dc(1) implementations use \f[B]char\f[R] types to calculate the +value of \f[B]1\f[R] decimal digit at a time, but that can be slow. +This dc(1) does something different. +.PP +It uses large integers to calculate more than \f[B]1\f[R] decimal digit +at a time. +If built in a environment where \f[B]DC_LONG_BIT\f[R] (see the +\f[B]LIMITS\f[R] section) is \f[B]64\f[R], then each integer has +\f[B]9\f[R] decimal digits. +If built in an environment where \f[B]DC_LONG_BIT\f[R] is \f[B]32\f[R] +then each integer has \f[B]4\f[R] decimal digits. +This value (the number of decimal digits per large integer) is called +\f[B]DC_BASE_DIGS\f[R]. +.PP +In addition, this dc(1) uses an even larger integer for overflow +checking. +This integer type depends on the value of \f[B]DC_LONG_BIT\f[R], but is +always at least twice as large as the integer type used to store digits. +.SH LIMITS +The following are the limits on dc(1): +.TP +\f[B]DC_LONG_BIT\f[R] +The number of bits in the \f[B]long\f[R] type in the environment where +dc(1) was built. +This determines how many decimal digits can be stored in a single large +integer (see the \f[B]PERFORMANCE\f[R] section). +.TP +\f[B]DC_BASE_DIGS\f[R] +The number of decimal digits per large integer (see the +\f[B]PERFORMANCE\f[R] section). +Depends on \f[B]DC_LONG_BIT\f[R]. +.TP +\f[B]DC_BASE_POW\f[R] +The max decimal number that each large integer can store (see +\f[B]DC_BASE_DIGS\f[R]) plus \f[B]1\f[R]. +Depends on \f[B]DC_BASE_DIGS\f[R]. +.TP +\f[B]DC_OVERFLOW_MAX\f[R] +The max number that the overflow type (see the \f[B]PERFORMANCE\f[R] +section) can hold. +Depends on \f[B]DC_LONG_BIT\f[R]. +.TP +\f[B]DC_BASE_MAX\f[R] +The maximum output base. +Set at \f[B]DC_BASE_POW\f[R]. +.TP +\f[B]DC_DIM_MAX\f[R] +The maximum size of arrays. +Set at \f[B]SIZE_MAX\-1\f[R]. +.TP +\f[B]DC_SCALE_MAX\f[R] +The maximum \f[B]scale\f[R]. +Set at \f[B]DC_OVERFLOW_MAX\-1\f[R]. +.TP +\f[B]DC_STRING_MAX\f[R] +The maximum length of strings. +Set at \f[B]DC_OVERFLOW_MAX\-1\f[R]. +.TP +\f[B]DC_NAME_MAX\f[R] +The maximum length of identifiers. +Set at \f[B]DC_OVERFLOW_MAX\-1\f[R]. +.TP +\f[B]DC_NUM_MAX\f[R] +The maximum length of a number (in decimal digits), which includes +digits after the decimal point. +Set at \f[B]DC_OVERFLOW_MAX\-1\f[R]. +.TP +Exponent +The maximum allowable exponent (positive or negative). +Set at \f[B]DC_OVERFLOW_MAX\f[R]. +.TP +Number of vars +The maximum number of vars/arrays. +Set at \f[B]SIZE_MAX\-1\f[R]. +.PP +These limits are meant to be effectively non\-existent; the limits are +so large (at least on 64\-bit machines) that there should not be any +point at which they become a problem. +In fact, memory should be exhausted before these limits should be hit. +.SH ENVIRONMENT VARIABLES +As \f[B]non\-portable extensions\f[R], dc(1) recognizes the following +environment variables: +.TP +\f[B]DC_ENV_ARGS\f[R] +This is another way to give command\-line arguments to dc(1). +They should be in the same format as all other command\-line arguments. +These are always processed first, so any files given in +\f[B]DC_ENV_ARGS\f[R] will be processed before arguments and files given +on the command\-line. +This gives the user the ability to set up \[lq]standard\[rq] options and +files to be used at every invocation. +The most useful thing for such files to contain would be useful +functions that the user might want every time dc(1) runs. +Another use would be to use the \f[B]\-e\f[R] option to set +\f[B]scale\f[R] to a value other than \f[B]0\f[R]. +.RS +.PP +The code that parses \f[B]DC_ENV_ARGS\f[R] will correctly handle quoted +arguments, but it does not understand escape sequences. +For example, the string \f[B]\[lq]/home/gavin/some dc file.dc\[rq]\f[R] +will be correctly parsed, but the string \f[B]\[lq]/home/gavin/some +\[dq]dc\[dq] file.dc\[rq]\f[R] will include the backslashes. +.PP +The quote parsing will handle either kind of quotes, \f[B]\[cq]\f[R] or +\f[B]\[lq]\f[R]. +Thus, if you have a file with any number of single quotes in the name, +you can use double quotes as the outside quotes, as in \f[B]\[lq]some +`dc' file.dc\[rq]\f[R], and vice versa if you have a file with double +quotes. +However, handling a file with both kinds of quotes in +\f[B]DC_ENV_ARGS\f[R] is not supported due to the complexity of the +parsing, though such files are still supported on the command\-line +where the parsing is done by the shell. +.RE +.TP +\f[B]DC_LINE_LENGTH\f[R] +If this environment variable exists and contains an integer that is +greater than \f[B]1\f[R] and is less than \f[B]UINT16_MAX\f[R] +(\f[B]2\[ha]16\-1\f[R]), dc(1) will output lines to that length, +including the backslash newline combo. +The default line length is \f[B]70\f[R]. +.RS +.PP +The special value of \f[B]0\f[R] will disable line length checking and +print numbers without regard to line length and without backslashes and +newlines. +.RE +.TP +\f[B]DC_SIGINT_RESET\f[R] +If dc(1) is not in interactive mode (see the \f[B]INTERACTIVE MODE\f[R] +section), then this environment variable has no effect because dc(1) +exits on \f[B]SIGINT\f[R] when not in interactive mode. +.RS +.PP +However, when dc(1) is in interactive mode, then if this environment +variable exists and contains an integer, a non\-zero value makes dc(1) +reset on \f[B]SIGINT\f[R], rather than exit, and zero makes dc(1) exit. +If this environment variable exists and is \f[I]not\f[R] an integer, +then dc(1) will exit on \f[B]SIGINT\f[R]. +.PP +This environment variable overrides the default, which can be queried +with the \f[B]\-h\f[R] or \f[B]\-\-help\f[R] options. +.RE +.TP +\f[B]DC_TTY_MODE\f[R] +If TTY mode is \f[I]not\f[R] available (see the \f[B]TTY MODE\f[R] +section), then this environment variable has no effect. +.RS +.PP +However, when TTY mode is available, then if this environment variable +exists and contains an integer, then a non\-zero value makes dc(1) use +TTY mode, and zero makes dc(1) not use TTY mode. +.PP +This environment variable overrides the default, which can be queried +with the \f[B]\-h\f[R] or \f[B]\-\-help\f[R] options. +.RE +.TP +\f[B]DC_PROMPT\f[R] +If TTY mode is \f[I]not\f[R] available (see the \f[B]TTY MODE\f[R] +section), then this environment variable has no effect. +.RS +.PP +However, when TTY mode is available, then if this environment variable +exists and contains an integer, a non\-zero value makes dc(1) use a +prompt, and zero or a non\-integer makes dc(1) not use a prompt. +If this environment variable does not exist and \f[B]DC_TTY_MODE\f[R] +does, then the value of the \f[B]DC_TTY_MODE\f[R] environment variable +is used. +.PP +This environment variable and the \f[B]DC_TTY_MODE\f[R] environment +variable override the default, which can be queried with the +\f[B]\-h\f[R] or \f[B]\-\-help\f[R] options. +.RE +.TP +\f[B]DC_EXPR_EXIT\f[R] +If any expressions or expression files are given on the command\-line +with \f[B]\-e\f[R], \f[B]\-\-expression\f[R], \f[B]\-f\f[R], or +\f[B]\-\-file\f[R], then if this environment variable exists and +contains an integer, a non\-zero value makes dc(1) exit after executing +the expressions and expression files, and a zero value makes dc(1) not +exit. +.RS +.PP +This environment variable overrides the default, which can be queried +with the \f[B]\-h\f[R] or \f[B]\-\-help\f[R] options. +.RE +.TP +\f[B]DC_DIGIT_CLAMP\f[R] +When parsing numbers and if this environment variable exists and +contains an integer, a non\-zero value makes dc(1) clamp digits that are +greater than or equal to the current \f[B]ibase\f[R] so that all such +digits are considered equal to the \f[B]ibase\f[R] minus 1, and a zero +value disables such clamping so that those digits are always equal to +their value, which is multiplied by the power of the \f[B]ibase\f[R]. +.RS +.PP +This never applies to single\-digit numbers, as per the bc(1) standard +(see the \f[B]STANDARDS\f[R] section). +.PP +This environment variable overrides the default, which can be queried +with the \f[B]\-h\f[R] or \f[B]\-\-help\f[R] options. +.RE +.SH EXIT STATUS +dc(1) returns the following exit statuses: +.TP +\f[B]0\f[R] +No error. +.TP +\f[B]1\f[R] +A math error occurred. +This follows standard practice of using \f[B]1\f[R] for expected errors, +since math errors will happen in the process of normal execution. +.RS +.PP +Math errors include divide by \f[B]0\f[R], taking the square root of a +negative number, attempting to convert a negative number to a hardware +integer, overflow when converting a number to a hardware integer, +overflow when calculating the size of a number, and attempting to use a +non\-integer where an integer is required. +.PP +Converting to a hardware integer happens for the second operand of the +power (\f[B]\[ha]\f[R]) operator. +.RE +.TP +\f[B]2\f[R] +A parse error occurred. +.RS +.PP +Parse errors include unexpected \f[B]EOF\f[R], using an invalid +character, failing to find the end of a string or comment, and using a +token where it is invalid. +.RE +.TP +\f[B]3\f[R] +A runtime error occurred. +.RS +.PP +Runtime errors include assigning an invalid number to any global +(\f[B]ibase\f[R], \f[B]obase\f[R], or \f[B]scale\f[R]), giving a bad +expression to a \f[B]read()\f[R] call, calling \f[B]read()\f[R] inside +of a \f[B]read()\f[R] call, type errors (including attempting to execute +a number), and attempting an operation when the stack has too few +elements. +.RE +.TP +\f[B]4\f[R] +A fatal error occurred. +.RS +.PP +Fatal errors include memory allocation errors, I/O errors, failing to +open files, attempting to use files that do not have only ASCII +characters (dc(1) only accepts ASCII characters), attempting to open a +directory as a file, and giving invalid command\-line options. +.RE +.PP +The exit status \f[B]4\f[R] is special; when a fatal error occurs, dc(1) +always exits and returns \f[B]4\f[R], no matter what mode dc(1) is in. +.PP +The other statuses will only be returned when dc(1) is not in +interactive mode (see the \f[B]INTERACTIVE MODE\f[R] section), since +dc(1) resets its state (see the \f[B]RESET\f[R] section) and accepts +more input when one of those errors occurs in interactive mode. +This is also the case when interactive mode is forced by the +\f[B]\-i\f[R] flag or \f[B]\-\-interactive\f[R] option. +.PP +These exit statuses allow dc(1) to be used in shell scripting with error +checking, and its normal behavior can be forced by using the +\f[B]\-i\f[R] flag or \f[B]\-\-interactive\f[R] option. +.SH INTERACTIVE MODE +Like bc(1), dc(1) has an interactive mode and a non\-interactive mode. +Interactive mode is turned on automatically when both \f[B]stdin\f[R] +and \f[B]stdout\f[R] are hooked to a terminal, but the \f[B]\-i\f[R] +flag and \f[B]\-\-interactive\f[R] option can turn it on in other +situations. +.PP +In interactive mode, dc(1) attempts to recover from errors (see the +\f[B]RESET\f[R] section), and in normal execution, flushes +\f[B]stdout\f[R] as soon as execution is done for the current input. +dc(1) may also reset on \f[B]SIGINT\f[R] instead of exit, depending on +the contents of, or default for, the \f[B]DC_SIGINT_RESET\f[R] +environment variable (see the \f[B]ENVIRONMENT VARIABLES\f[R] section). +.SH TTY MODE +If \f[B]stdin\f[R], \f[B]stdout\f[R], and \f[B]stderr\f[R] are all +connected to a TTY, then \[lq]TTY mode\[rq] is considered to be +available, and thus, dc(1) can turn on TTY mode, subject to some +settings. +.PP +If there is the environment variable \f[B]DC_TTY_MODE\f[R] in the +environment (see the \f[B]ENVIRONMENT VARIABLES\f[R] section), then if +that environment variable contains a non\-zero integer, dc(1) will turn +on TTY mode when \f[B]stdin\f[R], \f[B]stdout\f[R], and \f[B]stderr\f[R] +are all connected to a TTY. +If the \f[B]DC_TTY_MODE\f[R] environment variable exists but is +\f[I]not\f[R] a non\-zero integer, then dc(1) will not turn TTY mode on. +.PP +If the environment variable \f[B]DC_TTY_MODE\f[R] does \f[I]not\f[R] +exist, the default setting is used. +The default setting can be queried with the \f[B]\-h\f[R] or +\f[B]\-\-help\f[R] options. +.PP +TTY mode is different from interactive mode because interactive mode is +required in the bc(1) specification (see the \f[B]STANDARDS\f[R] +section), and interactive mode requires only \f[B]stdin\f[R] and +\f[B]stdout\f[R] to be connected to a terminal. +.SS Prompt +If TTY mode is available, then a prompt can be enabled. +Like TTY mode itself, it can be turned on or off with an environment +variable: \f[B]DC_PROMPT\f[R] (see the \f[B]ENVIRONMENT VARIABLES\f[R] +section). +.PP +If the environment variable \f[B]DC_PROMPT\f[R] exists and is a +non\-zero integer, then the prompt is turned on when \f[B]stdin\f[R], +\f[B]stdout\f[R], and \f[B]stderr\f[R] are connected to a TTY and the +\f[B]\-P\f[R] and \f[B]\-\-no\-prompt\f[R] options were not used. +The read prompt will be turned on under the same conditions, except that +the \f[B]\-R\f[R] and \f[B]\-\-no\-read\-prompt\f[R] options must also +not be used. +.PP +However, if \f[B]DC_PROMPT\f[R] does not exist, the prompt can be +enabled or disabled with the \f[B]DC_TTY_MODE\f[R] environment variable, +the \f[B]\-P\f[R] and \f[B]\-\-no\-prompt\f[R] options, and the +\f[B]\-R\f[R] and \f[B]\-\-no\-read\-prompt\f[R] options. +See the \f[B]ENVIRONMENT VARIABLES\f[R] and \f[B]OPTIONS\f[R] sections +for more details. +.SH SIGNAL HANDLING +Sending a \f[B]SIGINT\f[R] will cause dc(1) to do one of two things. +.PP +If dc(1) is not in interactive mode (see the \f[B]INTERACTIVE MODE\f[R] +section), or the \f[B]DC_SIGINT_RESET\f[R] environment variable (see the +\f[B]ENVIRONMENT VARIABLES\f[R] section), or its default, is either not +an integer or it is zero, dc(1) will exit. +.PP +However, if dc(1) is in interactive mode, and the +\f[B]DC_SIGINT_RESET\f[R] or its default is an integer and non\-zero, +then dc(1) will stop executing the current input and reset (see the +\f[B]RESET\f[R] section) upon receiving a \f[B]SIGINT\f[R]. +.PP +Note that \[lq]current input\[rq] can mean one of two things. +If dc(1) is processing input from \f[B]stdin\f[R] in interactive mode, +it will ask for more input. +If dc(1) is processing input from a file in interactive mode, it will +stop processing the file and start processing the next file, if one +exists, or ask for input from \f[B]stdin\f[R] if no other file exists. +.PP +This means that if a \f[B]SIGINT\f[R] is sent to dc(1) as it is +executing a file, it can seem as though dc(1) did not respond to the +signal since it will immediately start executing the next file. +This is by design; most files that users execute when interacting with +dc(1) have function definitions, which are quick to parse. +If a file takes a long time to execute, there may be a bug in that file. +The rest of the files could still be executed without problem, allowing +the user to continue. +.PP +\f[B]SIGTERM\f[R] and \f[B]SIGQUIT\f[R] cause dc(1) to clean up and +exit, and it uses the default handler for all other signals. +.SH LOCALES +This dc(1) ships with support for adding error messages for different +locales and thus, supports \f[B]LC_MESSAGES\f[R]. +.SH SEE ALSO +bc(1) +.SH STANDARDS +The dc(1) utility operators and some behavior are compliant with the +operators in the IEEE Std 1003.1\-2017 (\[lq]POSIX.1\-2017\[rq]) bc(1) +specification at +https://pubs.opengroup.org/onlinepubs/9699919799/utilities/bc.html . +.SH BUGS +None are known. +Report bugs at https://github.com/gavinhoward/bc . +.SH AUTHOR +Gavin D. Howard \c +.MT gavin@gavinhoward.com +.ME \c +\ and contributors. diff --git a/static/freebsd/man1/EHN.1 b/static/freebsd/man1/EHN.1 new file mode 100644 index 00000000..3b4afa90 --- /dev/null +++ b/static/freebsd/man1/EHN.1 @@ -0,0 +1,1447 @@ +.\" +.\" SPDX-License-Identifier: BSD-2-Clause +.\" +.\" Copyright (c) 2018-2025 Gavin D. Howard and contributors. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions are met: +.\" +.\" * Redistributions of source code must retain the above copyright notice, +.\" this list of conditions and the following disclaimer. +.\" +.\" * Redistributions in binary form must reproduce the above copyright notice, +.\" this list of conditions and the following disclaimer in the documentation +.\" and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +.\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +.\" LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +.\" POSSIBILITY OF SUCH DAMAGE. +.\" +.TH "DC" "1" "August 2024" "Gavin D. Howard" "General Commands Manual" +.nh +.ad l +.SH Name +dc \- arbitrary\-precision decimal reverse\-Polish notation calculator +.SH SYNOPSIS +\f[B]dc\f[R] [\f[B]\-cChiPRvVx\f[R]] [\f[B]\-\-version\f[R]] +[\f[B]\-\-help\f[R]] [\f[B]\-\-digit\-clamp\f[R]] +[\f[B]\-\-no\-digit\-clamp\f[R]] [\f[B]\-\-interactive\f[R]] +[\f[B]\-\-no\-prompt\f[R]] [\f[B]\-\-no\-read\-prompt\f[R]] +[\f[B]\-\-extended\-register\f[R]] [\f[B]\-e\f[R] \f[I]expr\f[R]] +[\f[B]\-\-expression\f[R]=\f[I]expr\f[R]\&...] +[\f[B]\-f\f[R] \f[I]file\f[R]\&...] +[\f[B]\-\-file\f[R]=\f[I]file\f[R]\&...] +[\f[I]file\f[R]\&...] +.SH DESCRIPTION +dc(1) is an arbitrary\-precision calculator. +It uses a stack (reverse Polish notation) to store numbers and results +of computations. +Arithmetic operations pop arguments off of the stack and push the +results. +.PP +If no files are given on the command\-line, then dc(1) reads from +\f[B]stdin\f[R] (see the \f[B]STDIN\f[R] section). +Otherwise, those files are processed, and dc(1) will then exit. +.PP +If a user wants to set up a standard environment, they can use +\f[B]DC_ENV_ARGS\f[R] (see the \f[B]ENVIRONMENT VARIABLES\f[R] section). +For example, if a user wants the \f[B]scale\f[R] always set to +\f[B]10\f[R], they can set \f[B]DC_ENV_ARGS\f[R] to \f[B]\-e 10k\f[R], +and this dc(1) will always start with a \f[B]scale\f[R] of \f[B]10\f[R]. +.SH OPTIONS +The following are the options that dc(1) accepts. +.TP +\f[B]\-C\f[R], \f[B]\-\-no\-digit\-clamp\f[R] +Disables clamping of digits greater than or equal to the current +\f[B]ibase\f[R] when parsing numbers. +.RS +.PP +This means that the value added to a number from a digit is always that +digit\[cq]s value multiplied by the value of ibase raised to the power +of the digit\[cq]s position, which starts from 0 at the least +significant digit. +.PP +If this and/or the \f[B]\-c\f[R] or \f[B]\-\-digit\-clamp\f[R] options +are given multiple times, the last one given is used. +.PP +This option overrides the \f[B]DC_DIGIT_CLAMP\f[R] environment variable +(see the \f[B]ENVIRONMENT VARIABLES\f[R] section) and the default, which +can be queried with the \f[B]\-h\f[R] or \f[B]\-\-help\f[R] options. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-c\f[R], \f[B]\-\-digit\-clamp\f[R] +Enables clamping of digits greater than or equal to the current +\f[B]ibase\f[R] when parsing numbers. +.RS +.PP +This means that digits that the value added to a number from a digit +that is greater than or equal to the ibase is the value of ibase minus 1 +all multiplied by the value of ibase raised to the power of the +digit\[cq]s position, which starts from 0 at the least significant +digit. +.PP +If this and/or the \f[B]\-C\f[R] or \f[B]\-\-no\-digit\-clamp\f[R] +options are given multiple times, the last one given is used. +.PP +This option overrides the \f[B]DC_DIGIT_CLAMP\f[R] environment variable +(see the \f[B]ENVIRONMENT VARIABLES\f[R] section) and the default, which +can be queried with the \f[B]\-h\f[R] or \f[B]\-\-help\f[R] options. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-e\f[R] \f[I]expr\f[R], \f[B]\-\-expression\f[R]=\f[I]expr\f[R] +Evaluates \f[I]expr\f[R]. +If multiple expressions are given, they are evaluated in order. +If files are given as well (see below), the expressions and files are +evaluated in the order given. +This means that if a file is given before an expression, the file is +read in and evaluated first. +.RS +.PP +If this option is given on the command\-line (i.e., not in +\f[B]DC_ENV_ARGS\f[R], see the \f[B]ENVIRONMENT VARIABLES\f[R] section), +then after processing all expressions and files, dc(1) will exit, unless +\f[B]\-\f[R] (\f[B]stdin\f[R]) was given as an argument at least once to +\f[B]\-f\f[R] or \f[B]\-\-file\f[R], whether on the command\-line or in +\f[B]DC_ENV_ARGS\f[R]. +However, if any other \f[B]\-e\f[R], \f[B]\-\-expression\f[R], +\f[B]\-f\f[R], or \f[B]\-\-file\f[R] arguments are given after +\f[B]\-f\-\f[R] or equivalent is given, dc(1) will give a fatal error +and exit. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-f\f[R] \f[I]file\f[R], \f[B]\-\-file\f[R]=\f[I]file\f[R] +Reads in \f[I]file\f[R] and evaluates it, line by line, as though it +were read through \f[B]stdin\f[R]. +If expressions are also given (see above), the expressions are evaluated +in the order given. +.RS +.PP +If this option is given on the command\-line (i.e., not in +\f[B]DC_ENV_ARGS\f[R], see the \f[B]ENVIRONMENT VARIABLES\f[R] section), +then after processing all expressions and files, dc(1) will exit, unless +\f[B]\-\f[R] (\f[B]stdin\f[R]) was given as an argument at least once to +\f[B]\-f\f[R] or \f[B]\-\-file\f[R]. +However, if any other \f[B]\-e\f[R], \f[B]\-\-expression\f[R], +\f[B]\-f\f[R], or \f[B]\-\-file\f[R] arguments are given after +\f[B]\-f\-\f[R] or equivalent is given, dc(1) will give a fatal error +and exit. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-h\f[R], \f[B]\-\-help\f[R] +Prints a usage message and exits. +.TP +\f[B]\-I\f[R] \f[I]ibase\f[R], \f[B]\-\-ibase\f[R]=\f[I]ibase\f[R] +Sets the builtin variable \f[B]ibase\f[R] to the value \f[I]ibase\f[R] +assuming that \f[I]ibase\f[R] is in base 10. +It is a fatal error if \f[I]ibase\f[R] is not a valid number. +.RS +.PP +If multiple instances of this option are given, the last is used. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-i\f[R], \f[B]\-\-interactive\f[R] +Forces interactive mode. +(See the \f[B]INTERACTIVE MODE\f[R] section.) +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-L\f[R], \f[B]\-\-no\-line\-length\f[R] +Disables line length checking and prints numbers without backslashes and +newlines. +In other words, this option sets \f[B]BC_LINE_LENGTH\f[R] to \f[B]0\f[R] +(see the \f[B]ENVIRONMENT VARIABLES\f[R] section). +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-O\f[R] \f[I]obase\f[R], \f[B]\-\-obase\f[R]=\f[I]obase\f[R] +Sets the builtin variable \f[B]obase\f[R] to the value \f[I]obase\f[R] +assuming that \f[I]obase\f[R] is in base 10. +It is a fatal error if \f[I]obase\f[R] is not a valid number. +.RS +.PP +If multiple instances of this option are given, the last is used. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-P\f[R], \f[B]\-\-no\-prompt\f[R] +Disables the prompt in TTY mode. +(The prompt is only enabled in TTY mode. +See the \f[B]TTY MODE\f[R] section.) +This is mostly for those users that do not want a prompt or are not used +to having them in dc(1). +Most of those users would want to put this option in +\f[B]DC_ENV_ARGS\f[R]. +.RS +.PP +These options override the \f[B]DC_PROMPT\f[R] and \f[B]DC_TTY_MODE\f[R] +environment variables (see the \f[B]ENVIRONMENT VARIABLES\f[R] section). +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-R\f[R], \f[B]\-\-no\-read\-prompt\f[R] +Disables the read prompt in TTY mode. +(The read prompt is only enabled in TTY mode. +See the \f[B]TTY MODE\f[R] section.) +This is mostly for those users that do not want a read prompt or are not +used to having them in dc(1). +Most of those users would want to put this option in +\f[B]BC_ENV_ARGS\f[R] (see the \f[B]ENVIRONMENT VARIABLES\f[R] section). +This option is also useful in hash bang lines of dc(1) scripts that +prompt for user input. +.RS +.PP +This option does not disable the regular prompt because the read prompt +is only used when the \f[B]?\f[R] command is used. +.PP +These options \f[I]do\f[R] override the \f[B]DC_PROMPT\f[R] and +\f[B]DC_TTY_MODE\f[R] environment variables (see the \f[B]ENVIRONMENT +VARIABLES\f[R] section), but only for the read prompt. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-S\f[R] \f[I]scale\f[R], \f[B]\-\-scale\f[R]=\f[I]scale\f[R] +Sets the builtin variable \f[B]scale\f[R] to the value \f[I]scale\f[R] +assuming that \f[I]scale\f[R] is in base 10. +It is a fatal error if \f[I]scale\f[R] is not a valid number. +.RS +.PP +If multiple instances of this option are given, the last is used. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-v\f[R], \f[B]\-V\f[R], \f[B]\-\-version\f[R] +Print the version information (copyright header) and exits. +.TP +\f[B]\-x\f[R] \f[B]\-\-extended\-register\f[R] +Enables extended register mode. +See the \f[I]Extended Register Mode\f[R] subsection of the +\f[B]REGISTERS\f[R] section for more information. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-z\f[R], \f[B]\-\-leading\-zeroes\f[R] +Makes dc(1) print all numbers greater than \f[B]\-1\f[R] and less than +\f[B]1\f[R], and not equal to \f[B]0\f[R], with a leading zero. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.PP +All long options are \f[B]non\-portable extensions\f[R]. +.SH STDIN +If no files are given on the command\-line and no files or expressions +are given by the \f[B]\-f\f[R], \f[B]\-\-file\f[R], \f[B]\-e\f[R], or +\f[B]\-\-expression\f[R] options, then dc(1) reads from \f[B]stdin\f[R]. +.PP +However, there is a caveat to this. +.PP +First, \f[B]stdin\f[R] is evaluated a line at a time. +The only exception to this is if a string has been finished, but not +ended. +This means that, except for escaped brackets, all brackets must be +balanced before dc(1) parses and executes. +.SH STDOUT +Any non\-error output is written to \f[B]stdout\f[R]. +In addition, if history (see the \f[B]HISTORY\f[R] section) and the +prompt (see the \f[B]TTY MODE\f[R] section) are enabled, both are output +to \f[B]stdout\f[R]. +.PP +\f[B]Note\f[R]: Unlike other dc(1) implementations, this dc(1) will +issue a fatal error (see the \f[B]EXIT STATUS\f[R] section) if it cannot +write to \f[B]stdout\f[R], so if \f[B]stdout\f[R] is closed, as in +\f[B]dc >&\-\f[R], it will quit with an error. +This is done so that dc(1) can report problems when \f[B]stdout\f[R] is +redirected to a file. +.PP +If there are scripts that depend on the behavior of other dc(1) +implementations, it is recommended that those scripts be changed to +redirect \f[B]stdout\f[R] to \f[B]/dev/null\f[R]. +.SH STDERR +Any error output is written to \f[B]stderr\f[R]. +.PP +\f[B]Note\f[R]: Unlike other dc(1) implementations, this dc(1) will +issue a fatal error (see the \f[B]EXIT STATUS\f[R] section) if it cannot +write to \f[B]stderr\f[R], so if \f[B]stderr\f[R] is closed, as in +\f[B]dc 2>&\-\f[R], it will quit with an error. +This is done so that dc(1) can exit with an error code when +\f[B]stderr\f[R] is redirected to a file. +.PP +If there are scripts that depend on the behavior of other dc(1) +implementations, it is recommended that those scripts be changed to +redirect \f[B]stderr\f[R] to \f[B]/dev/null\f[R]. +.SH SYNTAX +Each item in the input source code, either a number (see the +\f[B]NUMBERS\f[R] section) or a command (see the \f[B]COMMANDS\f[R] +section), is processed and executed, in order. +Input is processed immediately when entered. +.PP +\f[B]ibase\f[R] is a register (see the \f[B]REGISTERS\f[R] section) that +determines how to interpret constant numbers. +It is the \[lq]input\[rq] base, or the number base used for interpreting +input numbers. +\f[B]ibase\f[R] is initially \f[B]10\f[R]. +The max allowable value for \f[B]ibase\f[R] is \f[B]16\f[R]. +The min allowable value for \f[B]ibase\f[R] is \f[B]2\f[R]. +The max allowable value for \f[B]ibase\f[R] can be queried in dc(1) +programs with the \f[B]T\f[R] command. +.PP +\f[B]obase\f[R] is a register (see the \f[B]REGISTERS\f[R] section) that +determines how to output results. +It is the \[lq]output\[rq] base, or the number base used for outputting +numbers. +\f[B]obase\f[R] is initially \f[B]10\f[R]. +The max allowable value for \f[B]obase\f[R] is \f[B]DC_BASE_MAX\f[R] and +can be queried with the \f[B]U\f[R] command. +The min allowable value for \f[B]obase\f[R] is \f[B]2\f[R]. +Values are output in the specified base. +.PP +The \f[I]scale\f[R] of an expression is the number of digits in the +result of the expression right of the decimal point, and \f[B]scale\f[R] +is a register (see the \f[B]REGISTERS\f[R] section) that sets the +precision of any operations (with exceptions). +\f[B]scale\f[R] is initially \f[B]0\f[R]. +\f[B]scale\f[R] cannot be negative. +The max allowable value for \f[B]scale\f[R] can be queried in dc(1) +programs with the \f[B]V\f[R] command. +.SS Comments +Comments go from \f[B]#\f[R] until, and not including, the next newline. +This is a \f[B]non\-portable extension\f[R]. +.SH NUMBERS +Numbers are strings made up of digits, uppercase letters up to +\f[B]F\f[R], and at most \f[B]1\f[R] period for a radix. +Numbers can have up to \f[B]DC_NUM_MAX\f[R] digits. +Uppercase letters are equal to \f[B]9\f[R] plus their position in the +alphabet (i.e., \f[B]A\f[R] equals \f[B]10\f[R], or \f[B]9+1\f[R]). +.PP +If a digit or letter makes no sense with the current value of +\f[B]ibase\f[R] (i.e., they are greater than or equal to the current +value of \f[B]ibase\f[R]), then the behavior depends on the existence of +the \f[B]\-c\f[R]/\f[B]\-\-digit\-clamp\f[R] or +\f[B]\-C\f[R]/\f[B]\-\-no\-digit\-clamp\f[R] options (see the +\f[B]OPTIONS\f[R] section), the existence and setting of the +\f[B]DC_DIGIT_CLAMP\f[R] environment variable (see the \f[B]ENVIRONMENT +VARIABLES\f[R] section), or the default, which can be queried with the +\f[B]\-h\f[R]/\f[B]\-\-help\f[R] option. +.PP +If clamping is off, then digits or letters that are greater than or +equal to the current value of \f[B]ibase\f[R] are not changed. +Instead, their given value is multiplied by the appropriate power of +\f[B]ibase\f[R] and added into the number. +This means that, with an \f[B]ibase\f[R] of \f[B]3\f[R], the number +\f[B]AB\f[R] is equal to \f[B]3\[ha]1*A+3\[ha]0*B\f[R], which is +\f[B]3\f[R] times \f[B]10\f[R] plus \f[B]11\f[R], or \f[B]41\f[R]. +.PP +If clamping is on, then digits or letters that are greater than or equal +to the current value of \f[B]ibase\f[R] are set to the value of the +highest valid digit in \f[B]ibase\f[R] before being multiplied by the +appropriate power of \f[B]ibase\f[R] and added into the number. +This means that, with an \f[B]ibase\f[R] of \f[B]3\f[R], the number +\f[B]AB\f[R] is equal to \f[B]3\[ha]1*2+3\[ha]0*2\f[R], which is +\f[B]3\f[R] times \f[B]2\f[R] plus \f[B]2\f[R], or \f[B]8\f[R]. +.PP +There is one exception to clamping: single\-character numbers (i.e., +\f[B]A\f[R] alone). +Such numbers are never clamped and always take the value they would have +in the highest possible \f[B]ibase\f[R]. +This means that \f[B]A\f[R] alone always equals decimal \f[B]10\f[R] and +\f[B]Z\f[R] alone always equals decimal \f[B]35\f[R]. +This behavior is mandated by the standard for bc(1) (see the STANDARDS +section) and is meant to provide an easy way to set the current +\f[B]ibase\f[R] (with the \f[B]i\f[R] command) regardless of the current +value of \f[B]ibase\f[R]. +.PP +If clamping is on, and the clamped value of a character is needed, use a +leading zero, i.e., for \f[B]A\f[R], use \f[B]0A\f[R]. +.SH COMMANDS +The valid commands are listed below. +.SS Printing +These commands are used for printing. +.TP +\f[B]p\f[R] +Prints the value on top of the stack, whether number or string, and +prints a newline after. +.RS +.PP +This does not alter the stack. +.RE +.TP +\f[B]n\f[R] +Prints the value on top of the stack, whether number or string, and pops +it off of the stack. +.TP +\f[B]P\f[R] +Pops a value off the stack. +.RS +.PP +If the value is a number, it is truncated and the absolute value of the +result is printed as though \f[B]obase\f[R] is \f[B]256\f[R] and each +digit is interpreted as an 8\-bit ASCII character, making it a byte +stream. +.PP +If the value is a string, it is printed without a trailing newline. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]f\f[R] +Prints the entire contents of the stack, in order from newest to oldest, +without altering anything. +.RS +.PP +Users should use this command when they get lost. +.RE +.SS Arithmetic +These are the commands used for arithmetic. +.TP +\f[B]+\f[R] +The top two values are popped off the stack, added, and the result is +pushed onto the stack. +The \f[I]scale\f[R] of the result is equal to the max \f[I]scale\f[R] of +both operands. +.TP +\f[B]\-\f[R] +The top two values are popped off the stack, subtracted, and the result +is pushed onto the stack. +The \f[I]scale\f[R] of the result is equal to the max \f[I]scale\f[R] of +both operands. +.TP +\f[B]*\f[R] +The top two values are popped off the stack, multiplied, and the result +is pushed onto the stack. +If \f[B]a\f[R] is the \f[I]scale\f[R] of the first expression and +\f[B]b\f[R] is the \f[I]scale\f[R] of the second expression, the +\f[I]scale\f[R] of the result is equal to +\f[B]min(a+b,max(scale,a,b))\f[R] where \f[B]min()\f[R] and +\f[B]max()\f[R] return the obvious values. +.TP +\f[B]/\f[R] +The top two values are popped off the stack, divided, and the result is +pushed onto the stack. +The \f[I]scale\f[R] of the result is equal to \f[B]scale\f[R]. +.RS +.PP +The first value popped off of the stack must be non\-zero. +.RE +.TP +\f[B]%\f[R] +The top two values are popped off the stack, remaindered, and the result +is pushed onto the stack. +.RS +.PP +Remaindering is equivalent to 1) Computing \f[B]a/b\f[R] to current +\f[B]scale\f[R], and 2) Using the result of step 1 to calculate +\f[B]a\-(a/b)*b\f[R] to \f[I]scale\f[R] +\f[B]max(scale+scale(b),scale(a))\f[R]. +.PP +The first value popped off of the stack must be non\-zero. +.RE +.TP +\f[B]\[ti]\f[R] +The top two values are popped off the stack, divided and remaindered, +and the results (divided first, remainder second) are pushed onto the +stack. +This is equivalent to \f[B]x y / x y %\f[R] except that \f[B]x\f[R] and +\f[B]y\f[R] are only evaluated once. +.RS +.PP +The first value popped off of the stack must be non\-zero. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\[ha]\f[R] +The top two values are popped off the stack, the second is raised to the +power of the first, and the result is pushed onto the stack. +The \f[I]scale\f[R] of the result is equal to \f[B]scale\f[R]. +.RS +.PP +The first value popped off of the stack must be an integer, and if that +value is negative, the second value popped off of the stack must be +non\-zero. +.RE +.TP +\f[B]v\f[R] +The top value is popped off the stack, its square root is computed, and +the result is pushed onto the stack. +The \f[I]scale\f[R] of the result is equal to \f[B]scale\f[R]. +.RS +.PP +The value popped off of the stack must be non\-negative. +.RE +.TP +\f[B]_\f[R] +If this command \f[I]immediately\f[R] precedes a number (i.e., no spaces +or other commands), then that number is input as a negative number. +.RS +.PP +Otherwise, the top value on the stack is popped and copied, and the copy +is negated and pushed onto the stack. +This behavior without a number is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]b\f[R] +The top value is popped off the stack, and if it is zero, it is pushed +back onto the stack. +Otherwise, its absolute value is pushed onto the stack. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]|\f[R] +The top three values are popped off the stack, a modular exponentiation +is computed, and the result is pushed onto the stack. +.RS +.PP +The first value popped is used as the reduction modulus and must be an +integer and non\-zero. +The second value popped is used as the exponent and must be an integer +and non\-negative. +The third value popped is the base and must be an integer. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]G\f[R] +The top two values are popped off of the stack, they are compared, and a +\f[B]1\f[R] is pushed if they are equal, or \f[B]0\f[R] otherwise. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]N\f[R] +The top value is popped off of the stack, and if it a \f[B]0\f[R], a +\f[B]1\f[R] is pushed; otherwise, a \f[B]0\f[R] is pushed. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B](\f[R] +The top two values are popped off of the stack, they are compared, and a +\f[B]1\f[R] is pushed if the first is less than the second, or +\f[B]0\f[R] otherwise. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]{\f[R] +The top two values are popped off of the stack, they are compared, and a +\f[B]1\f[R] is pushed if the first is less than or equal to the second, +or \f[B]0\f[R] otherwise. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B])\f[R] +The top two values are popped off of the stack, they are compared, and a +\f[B]1\f[R] is pushed if the first is greater than the second, or +\f[B]0\f[R] otherwise. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]}\f[R] +The top two values are popped off of the stack, they are compared, and a +\f[B]1\f[R] is pushed if the first is greater than or equal to the +second, or \f[B]0\f[R] otherwise. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]M\f[R] +The top two values are popped off of the stack. +If they are both non\-zero, a \f[B]1\f[R] is pushed onto the stack. +If either of them is zero, or both of them are, then a \f[B]0\f[R] is +pushed onto the stack. +.RS +.PP +This is like the \f[B]&&\f[R] operator in bc(1), and it is \f[I]not\f[R] +a short\-circuit operator. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]m\f[R] +The top two values are popped off of the stack. +If at least one of them is non\-zero, a \f[B]1\f[R] is pushed onto the +stack. +If both of them are zero, then a \f[B]0\f[R] is pushed onto the stack. +.RS +.PP +This is like the \f[B]||\f[R] operator in bc(1), and it is \f[I]not\f[R] +a short\-circuit operator. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.SS Stack Control +These commands control the stack. +.TP +\f[B]c\f[R] +Removes all items from (\[lq]clears\[rq]) the stack. +.TP +\f[B]d\f[R] +Copies the item on top of the stack (\[lq]duplicates\[rq]) and pushes +the copy onto the stack. +.TP +\f[B]r\f[R] +Swaps (\[lq]reverses\[rq]) the two top items on the stack. +.TP +\f[B]R\f[R] +Pops (\[lq]removes\[rq]) the top value from the stack. +.SS Register Control +These commands control registers (see the \f[B]REGISTERS\f[R] section). +.TP +\f[B]s\f[R]\f[I]r\f[R] +Pops the value off the top of the stack and stores it into register +\f[I]r\f[R]. +.TP +\f[B]l\f[R]\f[I]r\f[R] +Copies the value in register \f[I]r\f[R] and pushes it onto the stack. +This does not alter the contents of \f[I]r\f[R]. +.TP +\f[B]S\f[R]\f[I]r\f[R] +Pops the value off the top of the (main) stack and pushes it onto the +stack of register \f[I]r\f[R]. +The previous value of the register becomes inaccessible. +.TP +\f[B]L\f[R]\f[I]r\f[R] +Pops the value off the top of the stack for register \f[I]r\f[R] and +push it onto the main stack. +The previous value in the stack for register \f[I]r\f[R], if any, is now +accessible via the \f[B]l\f[R]\f[I]r\f[R] command. +.SS Parameters +These commands control the values of \f[B]ibase\f[R], \f[B]obase\f[R], +and \f[B]scale\f[R]. +Also see the \f[B]SYNTAX\f[R] section. +.TP +\f[B]i\f[R] +Pops the value off of the top of the stack and uses it to set +\f[B]ibase\f[R], which must be between \f[B]2\f[R] and \f[B]16\f[R], +inclusive. +.RS +.PP +If the value on top of the stack has any \f[I]scale\f[R], the +\f[I]scale\f[R] is ignored. +.RE +.TP +\f[B]o\f[R] +Pops the value off of the top of the stack and uses it to set +\f[B]obase\f[R], which must be between \f[B]2\f[R] and +\f[B]DC_BASE_MAX\f[R], inclusive (see the \f[B]LIMITS\f[R] section). +.RS +.PP +If the value on top of the stack has any \f[I]scale\f[R], the +\f[I]scale\f[R] is ignored. +.RE +.TP +\f[B]k\f[R] +Pops the value off of the top of the stack and uses it to set +\f[B]scale\f[R], which must be non\-negative. +.RS +.PP +If the value on top of the stack has any \f[I]scale\f[R], the +\f[I]scale\f[R] is ignored. +.RE +.TP +\f[B]I\f[R] +Pushes the current value of \f[B]ibase\f[R] onto the main stack. +.TP +\f[B]O\f[R] +Pushes the current value of \f[B]obase\f[R] onto the main stack. +.TP +\f[B]K\f[R] +Pushes the current value of \f[B]scale\f[R] onto the main stack. +.TP +\f[B]T\f[R] +Pushes the maximum allowable value of \f[B]ibase\f[R] onto the main +stack. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]U\f[R] +Pushes the maximum allowable value of \f[B]obase\f[R] onto the main +stack. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]V\f[R] +Pushes the maximum allowable value of \f[B]scale\f[R] onto the main +stack. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.SS Strings +The following commands control strings. +.PP +dc(1) can work with both numbers and strings, and registers (see the +\f[B]REGISTERS\f[R] section) can hold both strings and numbers. +dc(1) always knows whether the contents of a register are a string or a +number. +.PP +While arithmetic operations have to have numbers, and will print an +error if given a string, other commands accept strings. +.PP +Strings can also be executed as macros. +For example, if the string \f[B][1pR]\f[R] is executed as a macro, then +the code \f[B]1pR\f[R] is executed, meaning that the \f[B]1\f[R] will be +printed with a newline after and then popped from the stack. +.TP +\f[B][\f[R]\f[I]characters\f[R]\f[B]]\f[R] +Makes a string containing \f[I]characters\f[R] and pushes it onto the +stack. +.RS +.PP +If there are brackets (\f[B][\f[R] and \f[B]]\f[R]) in the string, then +they must be balanced. +Unbalanced brackets can be escaped using a backslash (\f[B]\[rs]\f[R]) +character. +.PP +If there is a backslash character in the string, the character after it +(even another backslash) is put into the string verbatim, but the +(first) backslash is not. +.RE +.TP +\f[B]a\f[R] +The value on top of the stack is popped. +.RS +.PP +If it is a number, it is truncated and its absolute value is taken. +The result mod \f[B]256\f[R] is calculated. +If that result is \f[B]0\f[R], push an empty string; otherwise, push a +one\-character string where the character is the result of the mod +interpreted as an ASCII character. +.PP +If it is a string, then a new string is made. +If the original string is empty, the new string is empty. +If it is not, then the first character of the original string is used to +create the new string as a one\-character string. +The new string is then pushed onto the stack. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]x\f[R] +Pops a value off of the top of the stack. +.RS +.PP +If it is a number, it is pushed back onto the stack. +.PP +If it is a string, it is executed as a macro. +.PP +This behavior is the norm whenever a macro is executed, whether by this +command or by the conditional execution commands below. +.RE +.TP +\f[B]>\f[R]\f[I]r\f[R] +Pops two values off of the stack that must be numbers and compares them. +If the first value is greater than the second, then the contents of +register \f[I]r\f[R] are executed. +.RS +.PP +For example, \f[B]0 1>a\f[R] will execute the contents of register +\f[B]a\f[R], and \f[B]1 0>a\f[R] will not. +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.RE +.TP +\f[B]>\f[R]\f[I]r\f[R]\f[B]e\f[R]\f[I]s\f[R] +Like the above, but will execute register \f[I]s\f[R] if the comparison +fails. +.RS +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]!>\f[R]\f[I]r\f[R] +Pops two values off of the stack that must be numbers and compares them. +If the first value is not greater than the second (less than or equal +to), then the contents of register \f[I]r\f[R] are executed. +.RS +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.RE +.TP +\f[B]!>\f[R]\f[I]r\f[R]\f[B]e\f[R]\f[I]s\f[R] +Like the above, but will execute register \f[I]s\f[R] if the comparison +fails. +.RS +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]<\f[R]\f[I]r\f[R] +Pops two values off of the stack that must be numbers and compares them. +If the first value is less than the second, then the contents of +register \f[I]r\f[R] are executed. +.RS +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.RE +.TP +\f[B]<\f[R]\f[I]r\f[R]\f[B]e\f[R]\f[I]s\f[R] +Like the above, but will execute register \f[I]s\f[R] if the comparison +fails. +.RS +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]!<\f[R]\f[I]r\f[R] +Pops two values off of the stack that must be numbers and compares them. +If the first value is not less than the second (greater than or equal +to), then the contents of register \f[I]r\f[R] are executed. +.RS +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.RE +.TP +\f[B]!<\f[R]\f[I]r\f[R]\f[B]e\f[R]\f[I]s\f[R] +Like the above, but will execute register \f[I]s\f[R] if the comparison +fails. +.RS +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]=\f[R]\f[I]r\f[R] +Pops two values off of the stack that must be numbers and compares them. +If the first value is equal to the second, then the contents of register +\f[I]r\f[R] are executed. +.RS +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.RE +.TP +\f[B]=\f[R]\f[I]r\f[R]\f[B]e\f[R]\f[I]s\f[R] +Like the above, but will execute register \f[I]s\f[R] if the comparison +fails. +.RS +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]!=\f[R]\f[I]r\f[R] +Pops two values off of the stack that must be numbers and compares them. +If the first value is not equal to the second, then the contents of +register \f[I]r\f[R] are executed. +.RS +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.RE +.TP +\f[B]!=\f[R]\f[I]r\f[R]\f[B]e\f[R]\f[I]s\f[R] +Like the above, but will execute register \f[I]s\f[R] if the comparison +fails. +.RS +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]?\f[R] +Reads a line from the \f[B]stdin\f[R] and executes it. +This is to allow macros to request input from users. +.TP +\f[B]q\f[R] +During execution of a macro, this exits the execution of that macro and +the execution of the macro that executed it. +If there are no macros, or only one macro executing, dc(1) exits. +.TP +\f[B]Q\f[R] +Pops a value from the stack which must be non\-negative and is used the +number of macro executions to pop off of the execution stack. +If the number of levels to pop is greater than the number of executing +macros, dc(1) exits. +.TP +\f[B],\f[R] +Pushes the depth of the execution stack onto the stack. +The execution stack is the stack of string executions. +The number that is pushed onto the stack is exactly as many as is needed +to make dc(1) exit with the \f[B]Q\f[R] command, so the sequence +\f[B],Q\f[R] will make dc(1) exit. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.SS Status +These commands query status of the stack or its top value. +.TP +\f[B]Z\f[R] +Pops a value off of the stack. +.RS +.PP +If it is a number, calculates the number of significant decimal digits +it has and pushes the result. +It will push \f[B]1\f[R] if the argument is \f[B]0\f[R] with no decimal +places. +.PP +If it is a string, pushes the number of characters the string has. +.RE +.TP +\f[B]X\f[R] +Pops a value off of the stack. +.RS +.PP +If it is a number, pushes the \f[I]scale\f[R] of the value onto the +stack. +.PP +If it is a string, pushes \f[B]0\f[R]. +.RE +.TP +\f[B]u\f[R] +Pops one value off of the stack. +If the value is a number, this pushes \f[B]1\f[R] onto the stack. +Otherwise (if it is a string), it pushes \f[B]0\f[R]. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]t\f[R] +Pops one value off of the stack. +If the value is a string, this pushes \f[B]1\f[R] onto the stack. +Otherwise (if it is a number), it pushes \f[B]0\f[R]. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]z\f[R] +Pushes the current depth of the stack (before execution of this command) +onto the stack. +.TP +\f[B]y\f[R]\f[I]r\f[R] +Pushes the current stack depth of the register \f[I]r\f[R] onto the main +stack. +.RS +.PP +Because each register has a depth of \f[B]1\f[R] (with the value +\f[B]0\f[R] in the top item) when dc(1) starts, dc(1) requires that each +register\[cq]s stack must always have at least one item; dc(1) will give +an error and reset otherwise (see the \f[B]RESET\f[R] section). +This means that this command will never push \f[B]0\f[R]. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.SS Arrays +These commands manipulate arrays. +.TP +\f[B]:\f[R]\f[I]r\f[R] +Pops the top two values off of the stack. +The second value will be stored in the array \f[I]r\f[R] (see the +\f[B]REGISTERS\f[R] section), indexed by the first value. +.TP +\f[B];\f[R]\f[I]r\f[R] +Pops the value on top of the stack and uses it as an index into the +array \f[I]r\f[R]. +The selected value is then pushed onto the stack. +.TP +\f[B]Y\f[R]\f[I]r\f[R] +Pushes the length of the array \f[I]r\f[R] onto the stack. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.SS Global Settings +These commands retrieve global settings. +These are the only commands that require multiple specific characters, +and all of them begin with the letter \f[B]g\f[R]. +Only the characters below are allowed after the character \f[B]g\f[R]; +any other character produces a parse error (see the \f[B]ERRORS\f[R] +section). +.TP +\f[B]gl\f[R] +Pushes the line length set by \f[B]DC_LINE_LENGTH\f[R] (see the +\f[B]ENVIRONMENT VARIABLES\f[R] section) onto the stack. +.TP +\f[B]gx\f[R] +Pushes \f[B]1\f[R] onto the stack if extended register mode is on, +\f[B]0\f[R] otherwise. +See the \f[I]Extended Register Mode\f[R] subsection of the +\f[B]REGISTERS\f[R] section for more information. +.TP +\f[B]gz\f[R] +Pushes \f[B]0\f[R] onto the stack if the leading zero setting has not +been enabled with the \f[B]\-z\f[R] or \f[B]\-\-leading\-zeroes\f[R] +options (see the \f[B]OPTIONS\f[R] section), non\-zero otherwise. +.SH REGISTERS +Registers are names that can store strings, numbers, and arrays. +(Number/string registers do not interfere with array registers.) +.PP +Each register is also its own stack, so the current register value is +the top of the stack for the register. +All registers, when first referenced, have one value (\f[B]0\f[R]) in +their stack, and it is a runtime error to attempt to pop that item off +of the register stack. +.PP +In non\-extended register mode, a register name is just the single +character that follows any command that needs a register name. +The only exceptions are: a newline (\f[B]`\[rs]n'\f[R]) and a left +bracket (\f[B]`['\f[R]); it is a parse error for a newline or a left +bracket to be used as a register name. +.SS Extended Register Mode +Unlike most other dc(1) implentations, this dc(1) provides nearly +unlimited amounts of registers, if extended register mode is enabled. +.PP +If extended register mode is enabled (\f[B]\-x\f[R] or +\f[B]\-\-extended\-register\f[R] command\-line arguments are given), +then normal single character registers are used \f[I]unless\f[R] the +character immediately following a command that needs a register name is +a space (according to \f[B]isspace()\f[R]) and not a newline +(\f[B]`\[rs]n'\f[R]). +.PP +In that case, the register name is found according to the regex +\f[B][a\-z][a\-z0\-9_]*\f[R] (like bc(1) identifiers), and it is a parse +error if the next non\-space characters do not match that regex. +.SH RESET +When dc(1) encounters an error or a signal that it has a non\-default +handler for, it resets. +This means that several things happen. +.PP +First, any macros that are executing are stopped and popped off the +execution stack. +The behavior is not unlike that of exceptions in programming languages. +Then the execution point is set so that any code waiting to execute +(after all macros returned) is skipped. +.PP +However, the stack of values is \f[I]not\f[R] cleared; in interactive +mode, users can inspect the stack and manipulate it. +.PP +Thus, when dc(1) resets, it skips any remaining code waiting to be +executed. +Then, if it is interactive mode, and the error was not a fatal error +(see the \f[B]EXIT STATUS\f[R] section), it asks for more input; +otherwise, it exits with the appropriate return code. +.SH PERFORMANCE +Most dc(1) implementations use \f[B]char\f[R] types to calculate the +value of \f[B]1\f[R] decimal digit at a time, but that can be slow. +This dc(1) does something different. +.PP +It uses large integers to calculate more than \f[B]1\f[R] decimal digit +at a time. +If built in a environment where \f[B]DC_LONG_BIT\f[R] (see the +\f[B]LIMITS\f[R] section) is \f[B]64\f[R], then each integer has +\f[B]9\f[R] decimal digits. +If built in an environment where \f[B]DC_LONG_BIT\f[R] is \f[B]32\f[R] +then each integer has \f[B]4\f[R] decimal digits. +This value (the number of decimal digits per large integer) is called +\f[B]DC_BASE_DIGS\f[R]. +.PP +In addition, this dc(1) uses an even larger integer for overflow +checking. +This integer type depends on the value of \f[B]DC_LONG_BIT\f[R], but is +always at least twice as large as the integer type used to store digits. +.SH LIMITS +The following are the limits on dc(1): +.TP +\f[B]DC_LONG_BIT\f[R] +The number of bits in the \f[B]long\f[R] type in the environment where +dc(1) was built. +This determines how many decimal digits can be stored in a single large +integer (see the \f[B]PERFORMANCE\f[R] section). +.TP +\f[B]DC_BASE_DIGS\f[R] +The number of decimal digits per large integer (see the +\f[B]PERFORMANCE\f[R] section). +Depends on \f[B]DC_LONG_BIT\f[R]. +.TP +\f[B]DC_BASE_POW\f[R] +The max decimal number that each large integer can store (see +\f[B]DC_BASE_DIGS\f[R]) plus \f[B]1\f[R]. +Depends on \f[B]DC_BASE_DIGS\f[R]. +.TP +\f[B]DC_OVERFLOW_MAX\f[R] +The max number that the overflow type (see the \f[B]PERFORMANCE\f[R] +section) can hold. +Depends on \f[B]DC_LONG_BIT\f[R]. +.TP +\f[B]DC_BASE_MAX\f[R] +The maximum output base. +Set at \f[B]DC_BASE_POW\f[R]. +.TP +\f[B]DC_DIM_MAX\f[R] +The maximum size of arrays. +Set at \f[B]SIZE_MAX\-1\f[R]. +.TP +\f[B]DC_SCALE_MAX\f[R] +The maximum \f[B]scale\f[R]. +Set at \f[B]DC_OVERFLOW_MAX\-1\f[R]. +.TP +\f[B]DC_STRING_MAX\f[R] +The maximum length of strings. +Set at \f[B]DC_OVERFLOW_MAX\-1\f[R]. +.TP +\f[B]DC_NAME_MAX\f[R] +The maximum length of identifiers. +Set at \f[B]DC_OVERFLOW_MAX\-1\f[R]. +.TP +\f[B]DC_NUM_MAX\f[R] +The maximum length of a number (in decimal digits), which includes +digits after the decimal point. +Set at \f[B]DC_OVERFLOW_MAX\-1\f[R]. +.TP +Exponent +The maximum allowable exponent (positive or negative). +Set at \f[B]DC_OVERFLOW_MAX\f[R]. +.TP +Number of vars +The maximum number of vars/arrays. +Set at \f[B]SIZE_MAX\-1\f[R]. +.PP +These limits are meant to be effectively non\-existent; the limits are +so large (at least on 64\-bit machines) that there should not be any +point at which they become a problem. +In fact, memory should be exhausted before these limits should be hit. +.SH ENVIRONMENT VARIABLES +As \f[B]non\-portable extensions\f[R], dc(1) recognizes the following +environment variables: +.TP +\f[B]DC_ENV_ARGS\f[R] +This is another way to give command\-line arguments to dc(1). +They should be in the same format as all other command\-line arguments. +These are always processed first, so any files given in +\f[B]DC_ENV_ARGS\f[R] will be processed before arguments and files given +on the command\-line. +This gives the user the ability to set up \[lq]standard\[rq] options and +files to be used at every invocation. +The most useful thing for such files to contain would be useful +functions that the user might want every time dc(1) runs. +Another use would be to use the \f[B]\-e\f[R] option to set +\f[B]scale\f[R] to a value other than \f[B]0\f[R]. +.RS +.PP +The code that parses \f[B]DC_ENV_ARGS\f[R] will correctly handle quoted +arguments, but it does not understand escape sequences. +For example, the string \f[B]\[lq]/home/gavin/some dc file.dc\[rq]\f[R] +will be correctly parsed, but the string \f[B]\[lq]/home/gavin/some +\[dq]dc\[dq] file.dc\[rq]\f[R] will include the backslashes. +.PP +The quote parsing will handle either kind of quotes, \f[B]\[cq]\f[R] or +\f[B]\[lq]\f[R]. +Thus, if you have a file with any number of single quotes in the name, +you can use double quotes as the outside quotes, as in \f[B]\[lq]some +`dc' file.dc\[rq]\f[R], and vice versa if you have a file with double +quotes. +However, handling a file with both kinds of quotes in +\f[B]DC_ENV_ARGS\f[R] is not supported due to the complexity of the +parsing, though such files are still supported on the command\-line +where the parsing is done by the shell. +.RE +.TP +\f[B]DC_LINE_LENGTH\f[R] +If this environment variable exists and contains an integer that is +greater than \f[B]1\f[R] and is less than \f[B]UINT16_MAX\f[R] +(\f[B]2\[ha]16\-1\f[R]), dc(1) will output lines to that length, +including the backslash newline combo. +The default line length is \f[B]70\f[R]. +.RS +.PP +The special value of \f[B]0\f[R] will disable line length checking and +print numbers without regard to line length and without backslashes and +newlines. +.RE +.TP +\f[B]DC_SIGINT_RESET\f[R] +If dc(1) is not in interactive mode (see the \f[B]INTERACTIVE MODE\f[R] +section), then this environment variable has no effect because dc(1) +exits on \f[B]SIGINT\f[R] when not in interactive mode. +.RS +.PP +However, when dc(1) is in interactive mode, then if this environment +variable exists and contains an integer, a non\-zero value makes dc(1) +reset on \f[B]SIGINT\f[R], rather than exit, and zero makes dc(1) exit. +If this environment variable exists and is \f[I]not\f[R] an integer, +then dc(1) will exit on \f[B]SIGINT\f[R]. +.PP +This environment variable overrides the default, which can be queried +with the \f[B]\-h\f[R] or \f[B]\-\-help\f[R] options. +.RE +.TP +\f[B]DC_TTY_MODE\f[R] +If TTY mode is \f[I]not\f[R] available (see the \f[B]TTY MODE\f[R] +section), then this environment variable has no effect. +.RS +.PP +However, when TTY mode is available, then if this environment variable +exists and contains an integer, then a non\-zero value makes dc(1) use +TTY mode, and zero makes dc(1) not use TTY mode. +.PP +This environment variable overrides the default, which can be queried +with the \f[B]\-h\f[R] or \f[B]\-\-help\f[R] options. +.RE +.TP +\f[B]DC_PROMPT\f[R] +If TTY mode is \f[I]not\f[R] available (see the \f[B]TTY MODE\f[R] +section), then this environment variable has no effect. +.RS +.PP +However, when TTY mode is available, then if this environment variable +exists and contains an integer, a non\-zero value makes dc(1) use a +prompt, and zero or a non\-integer makes dc(1) not use a prompt. +If this environment variable does not exist and \f[B]DC_TTY_MODE\f[R] +does, then the value of the \f[B]DC_TTY_MODE\f[R] environment variable +is used. +.PP +This environment variable and the \f[B]DC_TTY_MODE\f[R] environment +variable override the default, which can be queried with the +\f[B]\-h\f[R] or \f[B]\-\-help\f[R] options. +.RE +.TP +\f[B]DC_EXPR_EXIT\f[R] +If any expressions or expression files are given on the command\-line +with \f[B]\-e\f[R], \f[B]\-\-expression\f[R], \f[B]\-f\f[R], or +\f[B]\-\-file\f[R], then if this environment variable exists and +contains an integer, a non\-zero value makes dc(1) exit after executing +the expressions and expression files, and a zero value makes dc(1) not +exit. +.RS +.PP +This environment variable overrides the default, which can be queried +with the \f[B]\-h\f[R] or \f[B]\-\-help\f[R] options. +.RE +.TP +\f[B]DC_DIGIT_CLAMP\f[R] +When parsing numbers and if this environment variable exists and +contains an integer, a non\-zero value makes dc(1) clamp digits that are +greater than or equal to the current \f[B]ibase\f[R] so that all such +digits are considered equal to the \f[B]ibase\f[R] minus 1, and a zero +value disables such clamping so that those digits are always equal to +their value, which is multiplied by the power of the \f[B]ibase\f[R]. +.RS +.PP +This never applies to single\-digit numbers, as per the bc(1) standard +(see the \f[B]STANDARDS\f[R] section). +.PP +This environment variable overrides the default, which can be queried +with the \f[B]\-h\f[R] or \f[B]\-\-help\f[R] options. +.RE +.SH EXIT STATUS +dc(1) returns the following exit statuses: +.TP +\f[B]0\f[R] +No error. +.TP +\f[B]1\f[R] +A math error occurred. +This follows standard practice of using \f[B]1\f[R] for expected errors, +since math errors will happen in the process of normal execution. +.RS +.PP +Math errors include divide by \f[B]0\f[R], taking the square root of a +negative number, attempting to convert a negative number to a hardware +integer, overflow when converting a number to a hardware integer, +overflow when calculating the size of a number, and attempting to use a +non\-integer where an integer is required. +.PP +Converting to a hardware integer happens for the second operand of the +power (\f[B]\[ha]\f[R]) operator. +.RE +.TP +\f[B]2\f[R] +A parse error occurred. +.RS +.PP +Parse errors include unexpected \f[B]EOF\f[R], using an invalid +character, failing to find the end of a string or comment, and using a +token where it is invalid. +.RE +.TP +\f[B]3\f[R] +A runtime error occurred. +.RS +.PP +Runtime errors include assigning an invalid number to any global +(\f[B]ibase\f[R], \f[B]obase\f[R], or \f[B]scale\f[R]), giving a bad +expression to a \f[B]read()\f[R] call, calling \f[B]read()\f[R] inside +of a \f[B]read()\f[R] call, type errors (including attempting to execute +a number), and attempting an operation when the stack has too few +elements. +.RE +.TP +\f[B]4\f[R] +A fatal error occurred. +.RS +.PP +Fatal errors include memory allocation errors, I/O errors, failing to +open files, attempting to use files that do not have only ASCII +characters (dc(1) only accepts ASCII characters), attempting to open a +directory as a file, and giving invalid command\-line options. +.RE +.PP +The exit status \f[B]4\f[R] is special; when a fatal error occurs, dc(1) +always exits and returns \f[B]4\f[R], no matter what mode dc(1) is in. +.PP +The other statuses will only be returned when dc(1) is not in +interactive mode (see the \f[B]INTERACTIVE MODE\f[R] section), since +dc(1) resets its state (see the \f[B]RESET\f[R] section) and accepts +more input when one of those errors occurs in interactive mode. +This is also the case when interactive mode is forced by the +\f[B]\-i\f[R] flag or \f[B]\-\-interactive\f[R] option. +.PP +These exit statuses allow dc(1) to be used in shell scripting with error +checking, and its normal behavior can be forced by using the +\f[B]\-i\f[R] flag or \f[B]\-\-interactive\f[R] option. +.SH INTERACTIVE MODE +Like bc(1), dc(1) has an interactive mode and a non\-interactive mode. +Interactive mode is turned on automatically when both \f[B]stdin\f[R] +and \f[B]stdout\f[R] are hooked to a terminal, but the \f[B]\-i\f[R] +flag and \f[B]\-\-interactive\f[R] option can turn it on in other +situations. +.PP +In interactive mode, dc(1) attempts to recover from errors (see the +\f[B]RESET\f[R] section), and in normal execution, flushes +\f[B]stdout\f[R] as soon as execution is done for the current input. +dc(1) may also reset on \f[B]SIGINT\f[R] instead of exit, depending on +the contents of, or default for, the \f[B]DC_SIGINT_RESET\f[R] +environment variable (see the \f[B]ENVIRONMENT VARIABLES\f[R] section). +.SH TTY MODE +If \f[B]stdin\f[R], \f[B]stdout\f[R], and \f[B]stderr\f[R] are all +connected to a TTY, then \[lq]TTY mode\[rq] is considered to be +available, and thus, dc(1) can turn on TTY mode, subject to some +settings. +.PP +If there is the environment variable \f[B]DC_TTY_MODE\f[R] in the +environment (see the \f[B]ENVIRONMENT VARIABLES\f[R] section), then if +that environment variable contains a non\-zero integer, dc(1) will turn +on TTY mode when \f[B]stdin\f[R], \f[B]stdout\f[R], and \f[B]stderr\f[R] +are all connected to a TTY. +If the \f[B]DC_TTY_MODE\f[R] environment variable exists but is +\f[I]not\f[R] a non\-zero integer, then dc(1) will not turn TTY mode on. +.PP +If the environment variable \f[B]DC_TTY_MODE\f[R] does \f[I]not\f[R] +exist, the default setting is used. +The default setting can be queried with the \f[B]\-h\f[R] or +\f[B]\-\-help\f[R] options. +.PP +TTY mode is different from interactive mode because interactive mode is +required in the bc(1) specification (see the \f[B]STANDARDS\f[R] +section), and interactive mode requires only \f[B]stdin\f[R] and +\f[B]stdout\f[R] to be connected to a terminal. +.SS Prompt +If TTY mode is available, then a prompt can be enabled. +Like TTY mode itself, it can be turned on or off with an environment +variable: \f[B]DC_PROMPT\f[R] (see the \f[B]ENVIRONMENT VARIABLES\f[R] +section). +.PP +If the environment variable \f[B]DC_PROMPT\f[R] exists and is a +non\-zero integer, then the prompt is turned on when \f[B]stdin\f[R], +\f[B]stdout\f[R], and \f[B]stderr\f[R] are connected to a TTY and the +\f[B]\-P\f[R] and \f[B]\-\-no\-prompt\f[R] options were not used. +The read prompt will be turned on under the same conditions, except that +the \f[B]\-R\f[R] and \f[B]\-\-no\-read\-prompt\f[R] options must also +not be used. +.PP +However, if \f[B]DC_PROMPT\f[R] does not exist, the prompt can be +enabled or disabled with the \f[B]DC_TTY_MODE\f[R] environment variable, +the \f[B]\-P\f[R] and \f[B]\-\-no\-prompt\f[R] options, and the +\f[B]\-R\f[R] and \f[B]\-\-no\-read\-prompt\f[R] options. +See the \f[B]ENVIRONMENT VARIABLES\f[R] and \f[B]OPTIONS\f[R] sections +for more details. +.SH SIGNAL HANDLING +Sending a \f[B]SIGINT\f[R] will cause dc(1) to do one of two things. +.PP +If dc(1) is not in interactive mode (see the \f[B]INTERACTIVE MODE\f[R] +section), or the \f[B]DC_SIGINT_RESET\f[R] environment variable (see the +\f[B]ENVIRONMENT VARIABLES\f[R] section), or its default, is either not +an integer or it is zero, dc(1) will exit. +.PP +However, if dc(1) is in interactive mode, and the +\f[B]DC_SIGINT_RESET\f[R] or its default is an integer and non\-zero, +then dc(1) will stop executing the current input and reset (see the +\f[B]RESET\f[R] section) upon receiving a \f[B]SIGINT\f[R]. +.PP +Note that \[lq]current input\[rq] can mean one of two things. +If dc(1) is processing input from \f[B]stdin\f[R] in interactive mode, +it will ask for more input. +If dc(1) is processing input from a file in interactive mode, it will +stop processing the file and start processing the next file, if one +exists, or ask for input from \f[B]stdin\f[R] if no other file exists. +.PP +This means that if a \f[B]SIGINT\f[R] is sent to dc(1) as it is +executing a file, it can seem as though dc(1) did not respond to the +signal since it will immediately start executing the next file. +This is by design; most files that users execute when interacting with +dc(1) have function definitions, which are quick to parse. +If a file takes a long time to execute, there may be a bug in that file. +The rest of the files could still be executed without problem, allowing +the user to continue. +.PP +\f[B]SIGTERM\f[R] and \f[B]SIGQUIT\f[R] cause dc(1) to clean up and +exit, and it uses the default handler for all other signals. +.SH SEE ALSO +bc(1) +.SH STANDARDS +The dc(1) utility operators and some behavior are compliant with the +operators in the IEEE Std 1003.1\-2017 (\[lq]POSIX.1\-2017\[rq]) bc(1) +specification at +https://pubs.opengroup.org/onlinepubs/9699919799/utilities/bc.html . +.SH BUGS +None are known. +Report bugs at https://github.com/gavinhoward/bc . +.SH AUTHOR +Gavin D. Howard \c +.MT gavin@gavinhoward.com +.ME \c +\ and contributors. diff --git a/static/freebsd/man1/EN.1 b/static/freebsd/man1/EN.1 new file mode 100644 index 00000000..2d1c0387 --- /dev/null +++ b/static/freebsd/man1/EN.1 @@ -0,0 +1,1471 @@ +.\" +.\" SPDX-License-Identifier: BSD-2-Clause +.\" +.\" Copyright (c) 2018-2025 Gavin D. Howard and contributors. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions are met: +.\" +.\" * Redistributions of source code must retain the above copyright notice, +.\" this list of conditions and the following disclaimer. +.\" +.\" * Redistributions in binary form must reproduce the above copyright notice, +.\" this list of conditions and the following disclaimer in the documentation +.\" and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +.\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +.\" LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +.\" POSSIBILITY OF SUCH DAMAGE. +.\" +.TH "DC" "1" "August 2024" "Gavin D. Howard" "General Commands Manual" +.nh +.ad l +.SH Name +dc \- arbitrary\-precision decimal reverse\-Polish notation calculator +.SH SYNOPSIS +\f[B]dc\f[R] [\f[B]\-cChiPRvVx\f[R]] [\f[B]\-\-version\f[R]] +[\f[B]\-\-help\f[R]] [\f[B]\-\-digit\-clamp\f[R]] +[\f[B]\-\-no\-digit\-clamp\f[R]] [\f[B]\-\-interactive\f[R]] +[\f[B]\-\-no\-prompt\f[R]] [\f[B]\-\-no\-read\-prompt\f[R]] +[\f[B]\-\-extended\-register\f[R]] [\f[B]\-e\f[R] \f[I]expr\f[R]] +[\f[B]\-\-expression\f[R]=\f[I]expr\f[R]\&...] +[\f[B]\-f\f[R] \f[I]file\f[R]\&...] +[\f[B]\-\-file\f[R]=\f[I]file\f[R]\&...] +[\f[I]file\f[R]\&...] +.SH DESCRIPTION +dc(1) is an arbitrary\-precision calculator. +It uses a stack (reverse Polish notation) to store numbers and results +of computations. +Arithmetic operations pop arguments off of the stack and push the +results. +.PP +If no files are given on the command\-line, then dc(1) reads from +\f[B]stdin\f[R] (see the \f[B]STDIN\f[R] section). +Otherwise, those files are processed, and dc(1) will then exit. +.PP +If a user wants to set up a standard environment, they can use +\f[B]DC_ENV_ARGS\f[R] (see the \f[B]ENVIRONMENT VARIABLES\f[R] section). +For example, if a user wants the \f[B]scale\f[R] always set to +\f[B]10\f[R], they can set \f[B]DC_ENV_ARGS\f[R] to \f[B]\-e 10k\f[R], +and this dc(1) will always start with a \f[B]scale\f[R] of \f[B]10\f[R]. +.SH OPTIONS +The following are the options that dc(1) accepts. +.TP +\f[B]\-C\f[R], \f[B]\-\-no\-digit\-clamp\f[R] +Disables clamping of digits greater than or equal to the current +\f[B]ibase\f[R] when parsing numbers. +.RS +.PP +This means that the value added to a number from a digit is always that +digit\[cq]s value multiplied by the value of ibase raised to the power +of the digit\[cq]s position, which starts from 0 at the least +significant digit. +.PP +If this and/or the \f[B]\-c\f[R] or \f[B]\-\-digit\-clamp\f[R] options +are given multiple times, the last one given is used. +.PP +This option overrides the \f[B]DC_DIGIT_CLAMP\f[R] environment variable +(see the \f[B]ENVIRONMENT VARIABLES\f[R] section) and the default, which +can be queried with the \f[B]\-h\f[R] or \f[B]\-\-help\f[R] options. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-c\f[R], \f[B]\-\-digit\-clamp\f[R] +Enables clamping of digits greater than or equal to the current +\f[B]ibase\f[R] when parsing numbers. +.RS +.PP +This means that digits that the value added to a number from a digit +that is greater than or equal to the ibase is the value of ibase minus 1 +all multiplied by the value of ibase raised to the power of the +digit\[cq]s position, which starts from 0 at the least significant +digit. +.PP +If this and/or the \f[B]\-C\f[R] or \f[B]\-\-no\-digit\-clamp\f[R] +options are given multiple times, the last one given is used. +.PP +This option overrides the \f[B]DC_DIGIT_CLAMP\f[R] environment variable +(see the \f[B]ENVIRONMENT VARIABLES\f[R] section) and the default, which +can be queried with the \f[B]\-h\f[R] or \f[B]\-\-help\f[R] options. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-e\f[R] \f[I]expr\f[R], \f[B]\-\-expression\f[R]=\f[I]expr\f[R] +Evaluates \f[I]expr\f[R]. +If multiple expressions are given, they are evaluated in order. +If files are given as well (see below), the expressions and files are +evaluated in the order given. +This means that if a file is given before an expression, the file is +read in and evaluated first. +.RS +.PP +If this option is given on the command\-line (i.e., not in +\f[B]DC_ENV_ARGS\f[R], see the \f[B]ENVIRONMENT VARIABLES\f[R] section), +then after processing all expressions and files, dc(1) will exit, unless +\f[B]\-\f[R] (\f[B]stdin\f[R]) was given as an argument at least once to +\f[B]\-f\f[R] or \f[B]\-\-file\f[R], whether on the command\-line or in +\f[B]DC_ENV_ARGS\f[R]. +However, if any other \f[B]\-e\f[R], \f[B]\-\-expression\f[R], +\f[B]\-f\f[R], or \f[B]\-\-file\f[R] arguments are given after +\f[B]\-f\-\f[R] or equivalent is given, dc(1) will give a fatal error +and exit. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-f\f[R] \f[I]file\f[R], \f[B]\-\-file\f[R]=\f[I]file\f[R] +Reads in \f[I]file\f[R] and evaluates it, line by line, as though it +were read through \f[B]stdin\f[R]. +If expressions are also given (see above), the expressions are evaluated +in the order given. +.RS +.PP +If this option is given on the command\-line (i.e., not in +\f[B]DC_ENV_ARGS\f[R], see the \f[B]ENVIRONMENT VARIABLES\f[R] section), +then after processing all expressions and files, dc(1) will exit, unless +\f[B]\-\f[R] (\f[B]stdin\f[R]) was given as an argument at least once to +\f[B]\-f\f[R] or \f[B]\-\-file\f[R]. +However, if any other \f[B]\-e\f[R], \f[B]\-\-expression\f[R], +\f[B]\-f\f[R], or \f[B]\-\-file\f[R] arguments are given after +\f[B]\-f\-\f[R] or equivalent is given, dc(1) will give a fatal error +and exit. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-h\f[R], \f[B]\-\-help\f[R] +Prints a usage message and exits. +.TP +\f[B]\-I\f[R] \f[I]ibase\f[R], \f[B]\-\-ibase\f[R]=\f[I]ibase\f[R] +Sets the builtin variable \f[B]ibase\f[R] to the value \f[I]ibase\f[R] +assuming that \f[I]ibase\f[R] is in base 10. +It is a fatal error if \f[I]ibase\f[R] is not a valid number. +.RS +.PP +If multiple instances of this option are given, the last is used. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-i\f[R], \f[B]\-\-interactive\f[R] +Forces interactive mode. +(See the \f[B]INTERACTIVE MODE\f[R] section.) +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-L\f[R], \f[B]\-\-no\-line\-length\f[R] +Disables line length checking and prints numbers without backslashes and +newlines. +In other words, this option sets \f[B]BC_LINE_LENGTH\f[R] to \f[B]0\f[R] +(see the \f[B]ENVIRONMENT VARIABLES\f[R] section). +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-O\f[R] \f[I]obase\f[R], \f[B]\-\-obase\f[R]=\f[I]obase\f[R] +Sets the builtin variable \f[B]obase\f[R] to the value \f[I]obase\f[R] +assuming that \f[I]obase\f[R] is in base 10. +It is a fatal error if \f[I]obase\f[R] is not a valid number. +.RS +.PP +If multiple instances of this option are given, the last is used. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-P\f[R], \f[B]\-\-no\-prompt\f[R] +Disables the prompt in TTY mode. +(The prompt is only enabled in TTY mode. +See the \f[B]TTY MODE\f[R] section.) +This is mostly for those users that do not want a prompt or are not used +to having them in dc(1). +Most of those users would want to put this option in +\f[B]DC_ENV_ARGS\f[R]. +.RS +.PP +These options override the \f[B]DC_PROMPT\f[R] and \f[B]DC_TTY_MODE\f[R] +environment variables (see the \f[B]ENVIRONMENT VARIABLES\f[R] section). +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-R\f[R], \f[B]\-\-no\-read\-prompt\f[R] +Disables the read prompt in TTY mode. +(The read prompt is only enabled in TTY mode. +See the \f[B]TTY MODE\f[R] section.) +This is mostly for those users that do not want a read prompt or are not +used to having them in dc(1). +Most of those users would want to put this option in +\f[B]BC_ENV_ARGS\f[R] (see the \f[B]ENVIRONMENT VARIABLES\f[R] section). +This option is also useful in hash bang lines of dc(1) scripts that +prompt for user input. +.RS +.PP +This option does not disable the regular prompt because the read prompt +is only used when the \f[B]?\f[R] command is used. +.PP +These options \f[I]do\f[R] override the \f[B]DC_PROMPT\f[R] and +\f[B]DC_TTY_MODE\f[R] environment variables (see the \f[B]ENVIRONMENT +VARIABLES\f[R] section), but only for the read prompt. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-S\f[R] \f[I]scale\f[R], \f[B]\-\-scale\f[R]=\f[I]scale\f[R] +Sets the builtin variable \f[B]scale\f[R] to the value \f[I]scale\f[R] +assuming that \f[I]scale\f[R] is in base 10. +It is a fatal error if \f[I]scale\f[R] is not a valid number. +.RS +.PP +If multiple instances of this option are given, the last is used. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-v\f[R], \f[B]\-V\f[R], \f[B]\-\-version\f[R] +Print the version information (copyright header) and exits. +.TP +\f[B]\-x\f[R] \f[B]\-\-extended\-register\f[R] +Enables extended register mode. +See the \f[I]Extended Register Mode\f[R] subsection of the +\f[B]REGISTERS\f[R] section for more information. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-z\f[R], \f[B]\-\-leading\-zeroes\f[R] +Makes dc(1) print all numbers greater than \f[B]\-1\f[R] and less than +\f[B]1\f[R], and not equal to \f[B]0\f[R], with a leading zero. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.PP +All long options are \f[B]non\-portable extensions\f[R]. +.SH STDIN +If no files are given on the command\-line and no files or expressions +are given by the \f[B]\-f\f[R], \f[B]\-\-file\f[R], \f[B]\-e\f[R], or +\f[B]\-\-expression\f[R] options, then dc(1) reads from \f[B]stdin\f[R]. +.PP +However, there is a caveat to this. +.PP +First, \f[B]stdin\f[R] is evaluated a line at a time. +The only exception to this is if a string has been finished, but not +ended. +This means that, except for escaped brackets, all brackets must be +balanced before dc(1) parses and executes. +.SH STDOUT +Any non\-error output is written to \f[B]stdout\f[R]. +In addition, if history (see the \f[B]HISTORY\f[R] section) and the +prompt (see the \f[B]TTY MODE\f[R] section) are enabled, both are output +to \f[B]stdout\f[R]. +.PP +\f[B]Note\f[R]: Unlike other dc(1) implementations, this dc(1) will +issue a fatal error (see the \f[B]EXIT STATUS\f[R] section) if it cannot +write to \f[B]stdout\f[R], so if \f[B]stdout\f[R] is closed, as in +\f[B]dc >&\-\f[R], it will quit with an error. +This is done so that dc(1) can report problems when \f[B]stdout\f[R] is +redirected to a file. +.PP +If there are scripts that depend on the behavior of other dc(1) +implementations, it is recommended that those scripts be changed to +redirect \f[B]stdout\f[R] to \f[B]/dev/null\f[R]. +.SH STDERR +Any error output is written to \f[B]stderr\f[R]. +.PP +\f[B]Note\f[R]: Unlike other dc(1) implementations, this dc(1) will +issue a fatal error (see the \f[B]EXIT STATUS\f[R] section) if it cannot +write to \f[B]stderr\f[R], so if \f[B]stderr\f[R] is closed, as in +\f[B]dc 2>&\-\f[R], it will quit with an error. +This is done so that dc(1) can exit with an error code when +\f[B]stderr\f[R] is redirected to a file. +.PP +If there are scripts that depend on the behavior of other dc(1) +implementations, it is recommended that those scripts be changed to +redirect \f[B]stderr\f[R] to \f[B]/dev/null\f[R]. +.SH SYNTAX +Each item in the input source code, either a number (see the +\f[B]NUMBERS\f[R] section) or a command (see the \f[B]COMMANDS\f[R] +section), is processed and executed, in order. +Input is processed immediately when entered. +.PP +\f[B]ibase\f[R] is a register (see the \f[B]REGISTERS\f[R] section) that +determines how to interpret constant numbers. +It is the \[lq]input\[rq] base, or the number base used for interpreting +input numbers. +\f[B]ibase\f[R] is initially \f[B]10\f[R]. +The max allowable value for \f[B]ibase\f[R] is \f[B]16\f[R]. +The min allowable value for \f[B]ibase\f[R] is \f[B]2\f[R]. +The max allowable value for \f[B]ibase\f[R] can be queried in dc(1) +programs with the \f[B]T\f[R] command. +.PP +\f[B]obase\f[R] is a register (see the \f[B]REGISTERS\f[R] section) that +determines how to output results. +It is the \[lq]output\[rq] base, or the number base used for outputting +numbers. +\f[B]obase\f[R] is initially \f[B]10\f[R]. +The max allowable value for \f[B]obase\f[R] is \f[B]DC_BASE_MAX\f[R] and +can be queried with the \f[B]U\f[R] command. +The min allowable value for \f[B]obase\f[R] is \f[B]2\f[R]. +Values are output in the specified base. +.PP +The \f[I]scale\f[R] of an expression is the number of digits in the +result of the expression right of the decimal point, and \f[B]scale\f[R] +is a register (see the \f[B]REGISTERS\f[R] section) that sets the +precision of any operations (with exceptions). +\f[B]scale\f[R] is initially \f[B]0\f[R]. +\f[B]scale\f[R] cannot be negative. +The max allowable value for \f[B]scale\f[R] can be queried in dc(1) +programs with the \f[B]V\f[R] command. +.SS Comments +Comments go from \f[B]#\f[R] until, and not including, the next newline. +This is a \f[B]non\-portable extension\f[R]. +.SH NUMBERS +Numbers are strings made up of digits, uppercase letters up to +\f[B]F\f[R], and at most \f[B]1\f[R] period for a radix. +Numbers can have up to \f[B]DC_NUM_MAX\f[R] digits. +Uppercase letters are equal to \f[B]9\f[R] plus their position in the +alphabet (i.e., \f[B]A\f[R] equals \f[B]10\f[R], or \f[B]9+1\f[R]). +.PP +If a digit or letter makes no sense with the current value of +\f[B]ibase\f[R] (i.e., they are greater than or equal to the current +value of \f[B]ibase\f[R]), then the behavior depends on the existence of +the \f[B]\-c\f[R]/\f[B]\-\-digit\-clamp\f[R] or +\f[B]\-C\f[R]/\f[B]\-\-no\-digit\-clamp\f[R] options (see the +\f[B]OPTIONS\f[R] section), the existence and setting of the +\f[B]DC_DIGIT_CLAMP\f[R] environment variable (see the \f[B]ENVIRONMENT +VARIABLES\f[R] section), or the default, which can be queried with the +\f[B]\-h\f[R]/\f[B]\-\-help\f[R] option. +.PP +If clamping is off, then digits or letters that are greater than or +equal to the current value of \f[B]ibase\f[R] are not changed. +Instead, their given value is multiplied by the appropriate power of +\f[B]ibase\f[R] and added into the number. +This means that, with an \f[B]ibase\f[R] of \f[B]3\f[R], the number +\f[B]AB\f[R] is equal to \f[B]3\[ha]1*A+3\[ha]0*B\f[R], which is +\f[B]3\f[R] times \f[B]10\f[R] plus \f[B]11\f[R], or \f[B]41\f[R]. +.PP +If clamping is on, then digits or letters that are greater than or equal +to the current value of \f[B]ibase\f[R] are set to the value of the +highest valid digit in \f[B]ibase\f[R] before being multiplied by the +appropriate power of \f[B]ibase\f[R] and added into the number. +This means that, with an \f[B]ibase\f[R] of \f[B]3\f[R], the number +\f[B]AB\f[R] is equal to \f[B]3\[ha]1*2+3\[ha]0*2\f[R], which is +\f[B]3\f[R] times \f[B]2\f[R] plus \f[B]2\f[R], or \f[B]8\f[R]. +.PP +There is one exception to clamping: single\-character numbers (i.e., +\f[B]A\f[R] alone). +Such numbers are never clamped and always take the value they would have +in the highest possible \f[B]ibase\f[R]. +This means that \f[B]A\f[R] alone always equals decimal \f[B]10\f[R] and +\f[B]Z\f[R] alone always equals decimal \f[B]35\f[R]. +This behavior is mandated by the standard for bc(1) (see the STANDARDS +section) and is meant to provide an easy way to set the current +\f[B]ibase\f[R] (with the \f[B]i\f[R] command) regardless of the current +value of \f[B]ibase\f[R]. +.PP +If clamping is on, and the clamped value of a character is needed, use a +leading zero, i.e., for \f[B]A\f[R], use \f[B]0A\f[R]. +.SH COMMANDS +The valid commands are listed below. +.SS Printing +These commands are used for printing. +.TP +\f[B]p\f[R] +Prints the value on top of the stack, whether number or string, and +prints a newline after. +.RS +.PP +This does not alter the stack. +.RE +.TP +\f[B]n\f[R] +Prints the value on top of the stack, whether number or string, and pops +it off of the stack. +.TP +\f[B]P\f[R] +Pops a value off the stack. +.RS +.PP +If the value is a number, it is truncated and the absolute value of the +result is printed as though \f[B]obase\f[R] is \f[B]256\f[R] and each +digit is interpreted as an 8\-bit ASCII character, making it a byte +stream. +.PP +If the value is a string, it is printed without a trailing newline. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]f\f[R] +Prints the entire contents of the stack, in order from newest to oldest, +without altering anything. +.RS +.PP +Users should use this command when they get lost. +.RE +.SS Arithmetic +These are the commands used for arithmetic. +.TP +\f[B]+\f[R] +The top two values are popped off the stack, added, and the result is +pushed onto the stack. +The \f[I]scale\f[R] of the result is equal to the max \f[I]scale\f[R] of +both operands. +.TP +\f[B]\-\f[R] +The top two values are popped off the stack, subtracted, and the result +is pushed onto the stack. +The \f[I]scale\f[R] of the result is equal to the max \f[I]scale\f[R] of +both operands. +.TP +\f[B]*\f[R] +The top two values are popped off the stack, multiplied, and the result +is pushed onto the stack. +If \f[B]a\f[R] is the \f[I]scale\f[R] of the first expression and +\f[B]b\f[R] is the \f[I]scale\f[R] of the second expression, the +\f[I]scale\f[R] of the result is equal to +\f[B]min(a+b,max(scale,a,b))\f[R] where \f[B]min()\f[R] and +\f[B]max()\f[R] return the obvious values. +.TP +\f[B]/\f[R] +The top two values are popped off the stack, divided, and the result is +pushed onto the stack. +The \f[I]scale\f[R] of the result is equal to \f[B]scale\f[R]. +.RS +.PP +The first value popped off of the stack must be non\-zero. +.RE +.TP +\f[B]%\f[R] +The top two values are popped off the stack, remaindered, and the result +is pushed onto the stack. +.RS +.PP +Remaindering is equivalent to 1) Computing \f[B]a/b\f[R] to current +\f[B]scale\f[R], and 2) Using the result of step 1 to calculate +\f[B]a\-(a/b)*b\f[R] to \f[I]scale\f[R] +\f[B]max(scale+scale(b),scale(a))\f[R]. +.PP +The first value popped off of the stack must be non\-zero. +.RE +.TP +\f[B]\[ti]\f[R] +The top two values are popped off the stack, divided and remaindered, +and the results (divided first, remainder second) are pushed onto the +stack. +This is equivalent to \f[B]x y / x y %\f[R] except that \f[B]x\f[R] and +\f[B]y\f[R] are only evaluated once. +.RS +.PP +The first value popped off of the stack must be non\-zero. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\[ha]\f[R] +The top two values are popped off the stack, the second is raised to the +power of the first, and the result is pushed onto the stack. +The \f[I]scale\f[R] of the result is equal to \f[B]scale\f[R]. +.RS +.PP +The first value popped off of the stack must be an integer, and if that +value is negative, the second value popped off of the stack must be +non\-zero. +.RE +.TP +\f[B]v\f[R] +The top value is popped off the stack, its square root is computed, and +the result is pushed onto the stack. +The \f[I]scale\f[R] of the result is equal to \f[B]scale\f[R]. +.RS +.PP +The value popped off of the stack must be non\-negative. +.RE +.TP +\f[B]_\f[R] +If this command \f[I]immediately\f[R] precedes a number (i.e., no spaces +or other commands), then that number is input as a negative number. +.RS +.PP +Otherwise, the top value on the stack is popped and copied, and the copy +is negated and pushed onto the stack. +This behavior without a number is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]b\f[R] +The top value is popped off the stack, and if it is zero, it is pushed +back onto the stack. +Otherwise, its absolute value is pushed onto the stack. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]|\f[R] +The top three values are popped off the stack, a modular exponentiation +is computed, and the result is pushed onto the stack. +.RS +.PP +The first value popped is used as the reduction modulus and must be an +integer and non\-zero. +The second value popped is used as the exponent and must be an integer +and non\-negative. +The third value popped is the base and must be an integer. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]G\f[R] +The top two values are popped off of the stack, they are compared, and a +\f[B]1\f[R] is pushed if they are equal, or \f[B]0\f[R] otherwise. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]N\f[R] +The top value is popped off of the stack, and if it a \f[B]0\f[R], a +\f[B]1\f[R] is pushed; otherwise, a \f[B]0\f[R] is pushed. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B](\f[R] +The top two values are popped off of the stack, they are compared, and a +\f[B]1\f[R] is pushed if the first is less than the second, or +\f[B]0\f[R] otherwise. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]{\f[R] +The top two values are popped off of the stack, they are compared, and a +\f[B]1\f[R] is pushed if the first is less than or equal to the second, +or \f[B]0\f[R] otherwise. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B])\f[R] +The top two values are popped off of the stack, they are compared, and a +\f[B]1\f[R] is pushed if the first is greater than the second, or +\f[B]0\f[R] otherwise. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]}\f[R] +The top two values are popped off of the stack, they are compared, and a +\f[B]1\f[R] is pushed if the first is greater than or equal to the +second, or \f[B]0\f[R] otherwise. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]M\f[R] +The top two values are popped off of the stack. +If they are both non\-zero, a \f[B]1\f[R] is pushed onto the stack. +If either of them is zero, or both of them are, then a \f[B]0\f[R] is +pushed onto the stack. +.RS +.PP +This is like the \f[B]&&\f[R] operator in bc(1), and it is \f[I]not\f[R] +a short\-circuit operator. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]m\f[R] +The top two values are popped off of the stack. +If at least one of them is non\-zero, a \f[B]1\f[R] is pushed onto the +stack. +If both of them are zero, then a \f[B]0\f[R] is pushed onto the stack. +.RS +.PP +This is like the \f[B]||\f[R] operator in bc(1), and it is \f[I]not\f[R] +a short\-circuit operator. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.SS Stack Control +These commands control the stack. +.TP +\f[B]c\f[R] +Removes all items from (\[lq]clears\[rq]) the stack. +.TP +\f[B]d\f[R] +Copies the item on top of the stack (\[lq]duplicates\[rq]) and pushes +the copy onto the stack. +.TP +\f[B]r\f[R] +Swaps (\[lq]reverses\[rq]) the two top items on the stack. +.TP +\f[B]R\f[R] +Pops (\[lq]removes\[rq]) the top value from the stack. +.SS Register Control +These commands control registers (see the \f[B]REGISTERS\f[R] section). +.TP +\f[B]s\f[R]\f[I]r\f[R] +Pops the value off the top of the stack and stores it into register +\f[I]r\f[R]. +.TP +\f[B]l\f[R]\f[I]r\f[R] +Copies the value in register \f[I]r\f[R] and pushes it onto the stack. +This does not alter the contents of \f[I]r\f[R]. +.TP +\f[B]S\f[R]\f[I]r\f[R] +Pops the value off the top of the (main) stack and pushes it onto the +stack of register \f[I]r\f[R]. +The previous value of the register becomes inaccessible. +.TP +\f[B]L\f[R]\f[I]r\f[R] +Pops the value off the top of the stack for register \f[I]r\f[R] and +push it onto the main stack. +The previous value in the stack for register \f[I]r\f[R], if any, is now +accessible via the \f[B]l\f[R]\f[I]r\f[R] command. +.SS Parameters +These commands control the values of \f[B]ibase\f[R], \f[B]obase\f[R], +and \f[B]scale\f[R]. +Also see the \f[B]SYNTAX\f[R] section. +.TP +\f[B]i\f[R] +Pops the value off of the top of the stack and uses it to set +\f[B]ibase\f[R], which must be between \f[B]2\f[R] and \f[B]16\f[R], +inclusive. +.RS +.PP +If the value on top of the stack has any \f[I]scale\f[R], the +\f[I]scale\f[R] is ignored. +.RE +.TP +\f[B]o\f[R] +Pops the value off of the top of the stack and uses it to set +\f[B]obase\f[R], which must be between \f[B]2\f[R] and +\f[B]DC_BASE_MAX\f[R], inclusive (see the \f[B]LIMITS\f[R] section). +.RS +.PP +If the value on top of the stack has any \f[I]scale\f[R], the +\f[I]scale\f[R] is ignored. +.RE +.TP +\f[B]k\f[R] +Pops the value off of the top of the stack and uses it to set +\f[B]scale\f[R], which must be non\-negative. +.RS +.PP +If the value on top of the stack has any \f[I]scale\f[R], the +\f[I]scale\f[R] is ignored. +.RE +.TP +\f[B]I\f[R] +Pushes the current value of \f[B]ibase\f[R] onto the main stack. +.TP +\f[B]O\f[R] +Pushes the current value of \f[B]obase\f[R] onto the main stack. +.TP +\f[B]K\f[R] +Pushes the current value of \f[B]scale\f[R] onto the main stack. +.TP +\f[B]T\f[R] +Pushes the maximum allowable value of \f[B]ibase\f[R] onto the main +stack. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]U\f[R] +Pushes the maximum allowable value of \f[B]obase\f[R] onto the main +stack. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]V\f[R] +Pushes the maximum allowable value of \f[B]scale\f[R] onto the main +stack. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.SS Strings +The following commands control strings. +.PP +dc(1) can work with both numbers and strings, and registers (see the +\f[B]REGISTERS\f[R] section) can hold both strings and numbers. +dc(1) always knows whether the contents of a register are a string or a +number. +.PP +While arithmetic operations have to have numbers, and will print an +error if given a string, other commands accept strings. +.PP +Strings can also be executed as macros. +For example, if the string \f[B][1pR]\f[R] is executed as a macro, then +the code \f[B]1pR\f[R] is executed, meaning that the \f[B]1\f[R] will be +printed with a newline after and then popped from the stack. +.TP +\f[B][\f[R]\f[I]characters\f[R]\f[B]]\f[R] +Makes a string containing \f[I]characters\f[R] and pushes it onto the +stack. +.RS +.PP +If there are brackets (\f[B][\f[R] and \f[B]]\f[R]) in the string, then +they must be balanced. +Unbalanced brackets can be escaped using a backslash (\f[B]\[rs]\f[R]) +character. +.PP +If there is a backslash character in the string, the character after it +(even another backslash) is put into the string verbatim, but the +(first) backslash is not. +.RE +.TP +\f[B]a\f[R] +The value on top of the stack is popped. +.RS +.PP +If it is a number, it is truncated and its absolute value is taken. +The result mod \f[B]256\f[R] is calculated. +If that result is \f[B]0\f[R], push an empty string; otherwise, push a +one\-character string where the character is the result of the mod +interpreted as an ASCII character. +.PP +If it is a string, then a new string is made. +If the original string is empty, the new string is empty. +If it is not, then the first character of the original string is used to +create the new string as a one\-character string. +The new string is then pushed onto the stack. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]x\f[R] +Pops a value off of the top of the stack. +.RS +.PP +If it is a number, it is pushed back onto the stack. +.PP +If it is a string, it is executed as a macro. +.PP +This behavior is the norm whenever a macro is executed, whether by this +command or by the conditional execution commands below. +.RE +.TP +\f[B]>\f[R]\f[I]r\f[R] +Pops two values off of the stack that must be numbers and compares them. +If the first value is greater than the second, then the contents of +register \f[I]r\f[R] are executed. +.RS +.PP +For example, \f[B]0 1>a\f[R] will execute the contents of register +\f[B]a\f[R], and \f[B]1 0>a\f[R] will not. +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.RE +.TP +\f[B]>\f[R]\f[I]r\f[R]\f[B]e\f[R]\f[I]s\f[R] +Like the above, but will execute register \f[I]s\f[R] if the comparison +fails. +.RS +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]!>\f[R]\f[I]r\f[R] +Pops two values off of the stack that must be numbers and compares them. +If the first value is not greater than the second (less than or equal +to), then the contents of register \f[I]r\f[R] are executed. +.RS +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.RE +.TP +\f[B]!>\f[R]\f[I]r\f[R]\f[B]e\f[R]\f[I]s\f[R] +Like the above, but will execute register \f[I]s\f[R] if the comparison +fails. +.RS +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]<\f[R]\f[I]r\f[R] +Pops two values off of the stack that must be numbers and compares them. +If the first value is less than the second, then the contents of +register \f[I]r\f[R] are executed. +.RS +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.RE +.TP +\f[B]<\f[R]\f[I]r\f[R]\f[B]e\f[R]\f[I]s\f[R] +Like the above, but will execute register \f[I]s\f[R] if the comparison +fails. +.RS +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]!<\f[R]\f[I]r\f[R] +Pops two values off of the stack that must be numbers and compares them. +If the first value is not less than the second (greater than or equal +to), then the contents of register \f[I]r\f[R] are executed. +.RS +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.RE +.TP +\f[B]!<\f[R]\f[I]r\f[R]\f[B]e\f[R]\f[I]s\f[R] +Like the above, but will execute register \f[I]s\f[R] if the comparison +fails. +.RS +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]=\f[R]\f[I]r\f[R] +Pops two values off of the stack that must be numbers and compares them. +If the first value is equal to the second, then the contents of register +\f[I]r\f[R] are executed. +.RS +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.RE +.TP +\f[B]=\f[R]\f[I]r\f[R]\f[B]e\f[R]\f[I]s\f[R] +Like the above, but will execute register \f[I]s\f[R] if the comparison +fails. +.RS +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]!=\f[R]\f[I]r\f[R] +Pops two values off of the stack that must be numbers and compares them. +If the first value is not equal to the second, then the contents of +register \f[I]r\f[R] are executed. +.RS +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.RE +.TP +\f[B]!=\f[R]\f[I]r\f[R]\f[B]e\f[R]\f[I]s\f[R] +Like the above, but will execute register \f[I]s\f[R] if the comparison +fails. +.RS +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]?\f[R] +Reads a line from the \f[B]stdin\f[R] and executes it. +This is to allow macros to request input from users. +.TP +\f[B]q\f[R] +During execution of a macro, this exits the execution of that macro and +the execution of the macro that executed it. +If there are no macros, or only one macro executing, dc(1) exits. +.TP +\f[B]Q\f[R] +Pops a value from the stack which must be non\-negative and is used the +number of macro executions to pop off of the execution stack. +If the number of levels to pop is greater than the number of executing +macros, dc(1) exits. +.TP +\f[B],\f[R] +Pushes the depth of the execution stack onto the stack. +The execution stack is the stack of string executions. +The number that is pushed onto the stack is exactly as many as is needed +to make dc(1) exit with the \f[B]Q\f[R] command, so the sequence +\f[B],Q\f[R] will make dc(1) exit. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.SS Status +These commands query status of the stack or its top value. +.TP +\f[B]Z\f[R] +Pops a value off of the stack. +.RS +.PP +If it is a number, calculates the number of significant decimal digits +it has and pushes the result. +It will push \f[B]1\f[R] if the argument is \f[B]0\f[R] with no decimal +places. +.PP +If it is a string, pushes the number of characters the string has. +.RE +.TP +\f[B]X\f[R] +Pops a value off of the stack. +.RS +.PP +If it is a number, pushes the \f[I]scale\f[R] of the value onto the +stack. +.PP +If it is a string, pushes \f[B]0\f[R]. +.RE +.TP +\f[B]u\f[R] +Pops one value off of the stack. +If the value is a number, this pushes \f[B]1\f[R] onto the stack. +Otherwise (if it is a string), it pushes \f[B]0\f[R]. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]t\f[R] +Pops one value off of the stack. +If the value is a string, this pushes \f[B]1\f[R] onto the stack. +Otherwise (if it is a number), it pushes \f[B]0\f[R]. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]z\f[R] +Pushes the current depth of the stack (before execution of this command) +onto the stack. +.TP +\f[B]y\f[R]\f[I]r\f[R] +Pushes the current stack depth of the register \f[I]r\f[R] onto the main +stack. +.RS +.PP +Because each register has a depth of \f[B]1\f[R] (with the value +\f[B]0\f[R] in the top item) when dc(1) starts, dc(1) requires that each +register\[cq]s stack must always have at least one item; dc(1) will give +an error and reset otherwise (see the \f[B]RESET\f[R] section). +This means that this command will never push \f[B]0\f[R]. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.SS Arrays +These commands manipulate arrays. +.TP +\f[B]:\f[R]\f[I]r\f[R] +Pops the top two values off of the stack. +The second value will be stored in the array \f[I]r\f[R] (see the +\f[B]REGISTERS\f[R] section), indexed by the first value. +.TP +\f[B];\f[R]\f[I]r\f[R] +Pops the value on top of the stack and uses it as an index into the +array \f[I]r\f[R]. +The selected value is then pushed onto the stack. +.TP +\f[B]Y\f[R]\f[I]r\f[R] +Pushes the length of the array \f[I]r\f[R] onto the stack. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.SS Global Settings +These commands retrieve global settings. +These are the only commands that require multiple specific characters, +and all of them begin with the letter \f[B]g\f[R]. +Only the characters below are allowed after the character \f[B]g\f[R]; +any other character produces a parse error (see the \f[B]ERRORS\f[R] +section). +.TP +\f[B]gl\f[R] +Pushes the line length set by \f[B]DC_LINE_LENGTH\f[R] (see the +\f[B]ENVIRONMENT VARIABLES\f[R] section) onto the stack. +.TP +\f[B]gx\f[R] +Pushes \f[B]1\f[R] onto the stack if extended register mode is on, +\f[B]0\f[R] otherwise. +See the \f[I]Extended Register Mode\f[R] subsection of the +\f[B]REGISTERS\f[R] section for more information. +.TP +\f[B]gz\f[R] +Pushes \f[B]0\f[R] onto the stack if the leading zero setting has not +been enabled with the \f[B]\-z\f[R] or \f[B]\-\-leading\-zeroes\f[R] +options (see the \f[B]OPTIONS\f[R] section), non\-zero otherwise. +.SH REGISTERS +Registers are names that can store strings, numbers, and arrays. +(Number/string registers do not interfere with array registers.) +.PP +Each register is also its own stack, so the current register value is +the top of the stack for the register. +All registers, when first referenced, have one value (\f[B]0\f[R]) in +their stack, and it is a runtime error to attempt to pop that item off +of the register stack. +.PP +In non\-extended register mode, a register name is just the single +character that follows any command that needs a register name. +The only exceptions are: a newline (\f[B]`\[rs]n'\f[R]) and a left +bracket (\f[B]`['\f[R]); it is a parse error for a newline or a left +bracket to be used as a register name. +.SS Extended Register Mode +Unlike most other dc(1) implentations, this dc(1) provides nearly +unlimited amounts of registers, if extended register mode is enabled. +.PP +If extended register mode is enabled (\f[B]\-x\f[R] or +\f[B]\-\-extended\-register\f[R] command\-line arguments are given), +then normal single character registers are used \f[I]unless\f[R] the +character immediately following a command that needs a register name is +a space (according to \f[B]isspace()\f[R]) and not a newline +(\f[B]`\[rs]n'\f[R]). +.PP +In that case, the register name is found according to the regex +\f[B][a\-z][a\-z0\-9_]*\f[R] (like bc(1) identifiers), and it is a parse +error if the next non\-space characters do not match that regex. +.SH RESET +When dc(1) encounters an error or a signal that it has a non\-default +handler for, it resets. +This means that several things happen. +.PP +First, any macros that are executing are stopped and popped off the +execution stack. +The behavior is not unlike that of exceptions in programming languages. +Then the execution point is set so that any code waiting to execute +(after all macros returned) is skipped. +.PP +However, the stack of values is \f[I]not\f[R] cleared; in interactive +mode, users can inspect the stack and manipulate it. +.PP +Thus, when dc(1) resets, it skips any remaining code waiting to be +executed. +Then, if it is interactive mode, and the error was not a fatal error +(see the \f[B]EXIT STATUS\f[R] section), it asks for more input; +otherwise, it exits with the appropriate return code. +.SH PERFORMANCE +Most dc(1) implementations use \f[B]char\f[R] types to calculate the +value of \f[B]1\f[R] decimal digit at a time, but that can be slow. +This dc(1) does something different. +.PP +It uses large integers to calculate more than \f[B]1\f[R] decimal digit +at a time. +If built in a environment where \f[B]DC_LONG_BIT\f[R] (see the +\f[B]LIMITS\f[R] section) is \f[B]64\f[R], then each integer has +\f[B]9\f[R] decimal digits. +If built in an environment where \f[B]DC_LONG_BIT\f[R] is \f[B]32\f[R] +then each integer has \f[B]4\f[R] decimal digits. +This value (the number of decimal digits per large integer) is called +\f[B]DC_BASE_DIGS\f[R]. +.PP +In addition, this dc(1) uses an even larger integer for overflow +checking. +This integer type depends on the value of \f[B]DC_LONG_BIT\f[R], but is +always at least twice as large as the integer type used to store digits. +.SH LIMITS +The following are the limits on dc(1): +.TP +\f[B]DC_LONG_BIT\f[R] +The number of bits in the \f[B]long\f[R] type in the environment where +dc(1) was built. +This determines how many decimal digits can be stored in a single large +integer (see the \f[B]PERFORMANCE\f[R] section). +.TP +\f[B]DC_BASE_DIGS\f[R] +The number of decimal digits per large integer (see the +\f[B]PERFORMANCE\f[R] section). +Depends on \f[B]DC_LONG_BIT\f[R]. +.TP +\f[B]DC_BASE_POW\f[R] +The max decimal number that each large integer can store (see +\f[B]DC_BASE_DIGS\f[R]) plus \f[B]1\f[R]. +Depends on \f[B]DC_BASE_DIGS\f[R]. +.TP +\f[B]DC_OVERFLOW_MAX\f[R] +The max number that the overflow type (see the \f[B]PERFORMANCE\f[R] +section) can hold. +Depends on \f[B]DC_LONG_BIT\f[R]. +.TP +\f[B]DC_BASE_MAX\f[R] +The maximum output base. +Set at \f[B]DC_BASE_POW\f[R]. +.TP +\f[B]DC_DIM_MAX\f[R] +The maximum size of arrays. +Set at \f[B]SIZE_MAX\-1\f[R]. +.TP +\f[B]DC_SCALE_MAX\f[R] +The maximum \f[B]scale\f[R]. +Set at \f[B]DC_OVERFLOW_MAX\-1\f[R]. +.TP +\f[B]DC_STRING_MAX\f[R] +The maximum length of strings. +Set at \f[B]DC_OVERFLOW_MAX\-1\f[R]. +.TP +\f[B]DC_NAME_MAX\f[R] +The maximum length of identifiers. +Set at \f[B]DC_OVERFLOW_MAX\-1\f[R]. +.TP +\f[B]DC_NUM_MAX\f[R] +The maximum length of a number (in decimal digits), which includes +digits after the decimal point. +Set at \f[B]DC_OVERFLOW_MAX\-1\f[R]. +.TP +Exponent +The maximum allowable exponent (positive or negative). +Set at \f[B]DC_OVERFLOW_MAX\f[R]. +.TP +Number of vars +The maximum number of vars/arrays. +Set at \f[B]SIZE_MAX\-1\f[R]. +.PP +These limits are meant to be effectively non\-existent; the limits are +so large (at least on 64\-bit machines) that there should not be any +point at which they become a problem. +In fact, memory should be exhausted before these limits should be hit. +.SH ENVIRONMENT VARIABLES +As \f[B]non\-portable extensions\f[R], dc(1) recognizes the following +environment variables: +.TP +\f[B]DC_ENV_ARGS\f[R] +This is another way to give command\-line arguments to dc(1). +They should be in the same format as all other command\-line arguments. +These are always processed first, so any files given in +\f[B]DC_ENV_ARGS\f[R] will be processed before arguments and files given +on the command\-line. +This gives the user the ability to set up \[lq]standard\[rq] options and +files to be used at every invocation. +The most useful thing for such files to contain would be useful +functions that the user might want every time dc(1) runs. +Another use would be to use the \f[B]\-e\f[R] option to set +\f[B]scale\f[R] to a value other than \f[B]0\f[R]. +.RS +.PP +The code that parses \f[B]DC_ENV_ARGS\f[R] will correctly handle quoted +arguments, but it does not understand escape sequences. +For example, the string \f[B]\[lq]/home/gavin/some dc file.dc\[rq]\f[R] +will be correctly parsed, but the string \f[B]\[lq]/home/gavin/some +\[dq]dc\[dq] file.dc\[rq]\f[R] will include the backslashes. +.PP +The quote parsing will handle either kind of quotes, \f[B]\[cq]\f[R] or +\f[B]\[lq]\f[R]. +Thus, if you have a file with any number of single quotes in the name, +you can use double quotes as the outside quotes, as in \f[B]\[lq]some +`dc' file.dc\[rq]\f[R], and vice versa if you have a file with double +quotes. +However, handling a file with both kinds of quotes in +\f[B]DC_ENV_ARGS\f[R] is not supported due to the complexity of the +parsing, though such files are still supported on the command\-line +where the parsing is done by the shell. +.RE +.TP +\f[B]DC_LINE_LENGTH\f[R] +If this environment variable exists and contains an integer that is +greater than \f[B]1\f[R] and is less than \f[B]UINT16_MAX\f[R] +(\f[B]2\[ha]16\-1\f[R]), dc(1) will output lines to that length, +including the backslash newline combo. +The default line length is \f[B]70\f[R]. +.RS +.PP +The special value of \f[B]0\f[R] will disable line length checking and +print numbers without regard to line length and without backslashes and +newlines. +.RE +.TP +\f[B]DC_SIGINT_RESET\f[R] +If dc(1) is not in interactive mode (see the \f[B]INTERACTIVE MODE\f[R] +section), then this environment variable has no effect because dc(1) +exits on \f[B]SIGINT\f[R] when not in interactive mode. +.RS +.PP +However, when dc(1) is in interactive mode, then if this environment +variable exists and contains an integer, a non\-zero value makes dc(1) +reset on \f[B]SIGINT\f[R], rather than exit, and zero makes dc(1) exit. +If this environment variable exists and is \f[I]not\f[R] an integer, +then dc(1) will exit on \f[B]SIGINT\f[R]. +.PP +This environment variable overrides the default, which can be queried +with the \f[B]\-h\f[R] or \f[B]\-\-help\f[R] options. +.RE +.TP +\f[B]DC_TTY_MODE\f[R] +If TTY mode is \f[I]not\f[R] available (see the \f[B]TTY MODE\f[R] +section), then this environment variable has no effect. +.RS +.PP +However, when TTY mode is available, then if this environment variable +exists and contains an integer, then a non\-zero value makes dc(1) use +TTY mode, and zero makes dc(1) not use TTY mode. +.PP +This environment variable overrides the default, which can be queried +with the \f[B]\-h\f[R] or \f[B]\-\-help\f[R] options. +.RE +.TP +\f[B]DC_PROMPT\f[R] +If TTY mode is \f[I]not\f[R] available (see the \f[B]TTY MODE\f[R] +section), then this environment variable has no effect. +.RS +.PP +However, when TTY mode is available, then if this environment variable +exists and contains an integer, a non\-zero value makes dc(1) use a +prompt, and zero or a non\-integer makes dc(1) not use a prompt. +If this environment variable does not exist and \f[B]DC_TTY_MODE\f[R] +does, then the value of the \f[B]DC_TTY_MODE\f[R] environment variable +is used. +.PP +This environment variable and the \f[B]DC_TTY_MODE\f[R] environment +variable override the default, which can be queried with the +\f[B]\-h\f[R] or \f[B]\-\-help\f[R] options. +.RE +.TP +\f[B]DC_EXPR_EXIT\f[R] +If any expressions or expression files are given on the command\-line +with \f[B]\-e\f[R], \f[B]\-\-expression\f[R], \f[B]\-f\f[R], or +\f[B]\-\-file\f[R], then if this environment variable exists and +contains an integer, a non\-zero value makes dc(1) exit after executing +the expressions and expression files, and a zero value makes dc(1) not +exit. +.RS +.PP +This environment variable overrides the default, which can be queried +with the \f[B]\-h\f[R] or \f[B]\-\-help\f[R] options. +.RE +.TP +\f[B]DC_DIGIT_CLAMP\f[R] +When parsing numbers and if this environment variable exists and +contains an integer, a non\-zero value makes dc(1) clamp digits that are +greater than or equal to the current \f[B]ibase\f[R] so that all such +digits are considered equal to the \f[B]ibase\f[R] minus 1, and a zero +value disables such clamping so that those digits are always equal to +their value, which is multiplied by the power of the \f[B]ibase\f[R]. +.RS +.PP +This never applies to single\-digit numbers, as per the bc(1) standard +(see the \f[B]STANDARDS\f[R] section). +.PP +This environment variable overrides the default, which can be queried +with the \f[B]\-h\f[R] or \f[B]\-\-help\f[R] options. +.RE +.SH EXIT STATUS +dc(1) returns the following exit statuses: +.TP +\f[B]0\f[R] +No error. +.TP +\f[B]1\f[R] +A math error occurred. +This follows standard practice of using \f[B]1\f[R] for expected errors, +since math errors will happen in the process of normal execution. +.RS +.PP +Math errors include divide by \f[B]0\f[R], taking the square root of a +negative number, attempting to convert a negative number to a hardware +integer, overflow when converting a number to a hardware integer, +overflow when calculating the size of a number, and attempting to use a +non\-integer where an integer is required. +.PP +Converting to a hardware integer happens for the second operand of the +power (\f[B]\[ha]\f[R]) operator. +.RE +.TP +\f[B]2\f[R] +A parse error occurred. +.RS +.PP +Parse errors include unexpected \f[B]EOF\f[R], using an invalid +character, failing to find the end of a string or comment, and using a +token where it is invalid. +.RE +.TP +\f[B]3\f[R] +A runtime error occurred. +.RS +.PP +Runtime errors include assigning an invalid number to any global +(\f[B]ibase\f[R], \f[B]obase\f[R], or \f[B]scale\f[R]), giving a bad +expression to a \f[B]read()\f[R] call, calling \f[B]read()\f[R] inside +of a \f[B]read()\f[R] call, type errors (including attempting to execute +a number), and attempting an operation when the stack has too few +elements. +.RE +.TP +\f[B]4\f[R] +A fatal error occurred. +.RS +.PP +Fatal errors include memory allocation errors, I/O errors, failing to +open files, attempting to use files that do not have only ASCII +characters (dc(1) only accepts ASCII characters), attempting to open a +directory as a file, and giving invalid command\-line options. +.RE +.PP +The exit status \f[B]4\f[R] is special; when a fatal error occurs, dc(1) +always exits and returns \f[B]4\f[R], no matter what mode dc(1) is in. +.PP +The other statuses will only be returned when dc(1) is not in +interactive mode (see the \f[B]INTERACTIVE MODE\f[R] section), since +dc(1) resets its state (see the \f[B]RESET\f[R] section) and accepts +more input when one of those errors occurs in interactive mode. +This is also the case when interactive mode is forced by the +\f[B]\-i\f[R] flag or \f[B]\-\-interactive\f[R] option. +.PP +These exit statuses allow dc(1) to be used in shell scripting with error +checking, and its normal behavior can be forced by using the +\f[B]\-i\f[R] flag or \f[B]\-\-interactive\f[R] option. +.SH INTERACTIVE MODE +Like bc(1), dc(1) has an interactive mode and a non\-interactive mode. +Interactive mode is turned on automatically when both \f[B]stdin\f[R] +and \f[B]stdout\f[R] are hooked to a terminal, but the \f[B]\-i\f[R] +flag and \f[B]\-\-interactive\f[R] option can turn it on in other +situations. +.PP +In interactive mode, dc(1) attempts to recover from errors (see the +\f[B]RESET\f[R] section), and in normal execution, flushes +\f[B]stdout\f[R] as soon as execution is done for the current input. +dc(1) may also reset on \f[B]SIGINT\f[R] instead of exit, depending on +the contents of, or default for, the \f[B]DC_SIGINT_RESET\f[R] +environment variable (see the \f[B]ENVIRONMENT VARIABLES\f[R] section). +.SH TTY MODE +If \f[B]stdin\f[R], \f[B]stdout\f[R], and \f[B]stderr\f[R] are all +connected to a TTY, then \[lq]TTY mode\[rq] is considered to be +available, and thus, dc(1) can turn on TTY mode, subject to some +settings. +.PP +If there is the environment variable \f[B]DC_TTY_MODE\f[R] in the +environment (see the \f[B]ENVIRONMENT VARIABLES\f[R] section), then if +that environment variable contains a non\-zero integer, dc(1) will turn +on TTY mode when \f[B]stdin\f[R], \f[B]stdout\f[R], and \f[B]stderr\f[R] +are all connected to a TTY. +If the \f[B]DC_TTY_MODE\f[R] environment variable exists but is +\f[I]not\f[R] a non\-zero integer, then dc(1) will not turn TTY mode on. +.PP +If the environment variable \f[B]DC_TTY_MODE\f[R] does \f[I]not\f[R] +exist, the default setting is used. +The default setting can be queried with the \f[B]\-h\f[R] or +\f[B]\-\-help\f[R] options. +.PP +TTY mode is different from interactive mode because interactive mode is +required in the bc(1) specification (see the \f[B]STANDARDS\f[R] +section), and interactive mode requires only \f[B]stdin\f[R] and +\f[B]stdout\f[R] to be connected to a terminal. +.SS Command\-Line History +Command\-line history is only enabled if TTY mode is, i.e., that +\f[B]stdin\f[R], \f[B]stdout\f[R], and \f[B]stderr\f[R] are connected to +a TTY and the \f[B]DC_TTY_MODE\f[R] environment variable (see the +\f[B]ENVIRONMENT VARIABLES\f[R] section) and its default do not disable +TTY mode. +See the \f[B]COMMAND LINE HISTORY\f[R] section for more information. +.SS Prompt +If TTY mode is available, then a prompt can be enabled. +Like TTY mode itself, it can be turned on or off with an environment +variable: \f[B]DC_PROMPT\f[R] (see the \f[B]ENVIRONMENT VARIABLES\f[R] +section). +.PP +If the environment variable \f[B]DC_PROMPT\f[R] exists and is a +non\-zero integer, then the prompt is turned on when \f[B]stdin\f[R], +\f[B]stdout\f[R], and \f[B]stderr\f[R] are connected to a TTY and the +\f[B]\-P\f[R] and \f[B]\-\-no\-prompt\f[R] options were not used. +The read prompt will be turned on under the same conditions, except that +the \f[B]\-R\f[R] and \f[B]\-\-no\-read\-prompt\f[R] options must also +not be used. +.PP +However, if \f[B]DC_PROMPT\f[R] does not exist, the prompt can be +enabled or disabled with the \f[B]DC_TTY_MODE\f[R] environment variable, +the \f[B]\-P\f[R] and \f[B]\-\-no\-prompt\f[R] options, and the +\f[B]\-R\f[R] and \f[B]\-\-no\-read\-prompt\f[R] options. +See the \f[B]ENVIRONMENT VARIABLES\f[R] and \f[B]OPTIONS\f[R] sections +for more details. +.SH SIGNAL HANDLING +Sending a \f[B]SIGINT\f[R] will cause dc(1) to do one of two things. +.PP +If dc(1) is not in interactive mode (see the \f[B]INTERACTIVE MODE\f[R] +section), or the \f[B]DC_SIGINT_RESET\f[R] environment variable (see the +\f[B]ENVIRONMENT VARIABLES\f[R] section), or its default, is either not +an integer or it is zero, dc(1) will exit. +.PP +However, if dc(1) is in interactive mode, and the +\f[B]DC_SIGINT_RESET\f[R] or its default is an integer and non\-zero, +then dc(1) will stop executing the current input and reset (see the +\f[B]RESET\f[R] section) upon receiving a \f[B]SIGINT\f[R]. +.PP +Note that \[lq]current input\[rq] can mean one of two things. +If dc(1) is processing input from \f[B]stdin\f[R] in interactive mode, +it will ask for more input. +If dc(1) is processing input from a file in interactive mode, it will +stop processing the file and start processing the next file, if one +exists, or ask for input from \f[B]stdin\f[R] if no other file exists. +.PP +This means that if a \f[B]SIGINT\f[R] is sent to dc(1) as it is +executing a file, it can seem as though dc(1) did not respond to the +signal since it will immediately start executing the next file. +This is by design; most files that users execute when interacting with +dc(1) have function definitions, which are quick to parse. +If a file takes a long time to execute, there may be a bug in that file. +The rest of the files could still be executed without problem, allowing +the user to continue. +.PP +\f[B]SIGTERM\f[R] and \f[B]SIGQUIT\f[R] cause dc(1) to clean up and +exit, and it uses the default handler for all other signals. +The one exception is \f[B]SIGHUP\f[R]; in that case, and only when dc(1) +is in TTY mode (see the \f[B]TTY MODE\f[R] section), a \f[B]SIGHUP\f[R] +will cause dc(1) to clean up and exit. +.SH COMMAND LINE HISTORY +dc(1) supports interactive command\-line editing. +.PP +If dc(1) can be in TTY mode (see the \f[B]TTY MODE\f[R] section), +history can be enabled. +This means that command\-line history can only be enabled when +\f[B]stdin\f[R], \f[B]stdout\f[R], and \f[B]stderr\f[R] are all +connected to a TTY. +.PP +Like TTY mode itself, it can be turned on or off with the environment +variable \f[B]DC_TTY_MODE\f[R] (see the \f[B]ENVIRONMENT VARIABLES\f[R] +section). +.PP +\f[B]Note\f[R]: tabs are converted to 8 spaces. +.SH SEE ALSO +bc(1) +.SH STANDARDS +The dc(1) utility operators and some behavior are compliant with the +operators in the IEEE Std 1003.1\-2017 (\[lq]POSIX.1\-2017\[rq]) bc(1) +specification at +https://pubs.opengroup.org/onlinepubs/9699919799/utilities/bc.html . +.SH BUGS +None are known. +Report bugs at https://github.com/gavinhoward/bc . +.SH AUTHOR +Gavin D. Howard \c +.MT gavin@gavinhoward.com +.ME \c +\ and contributors. diff --git a/static/freebsd/man1/H.1 b/static/freebsd/man1/H.1 new file mode 100644 index 00000000..990eadec --- /dev/null +++ b/static/freebsd/man1/H.1 @@ -0,0 +1,1671 @@ +.\" +.\" SPDX-License-Identifier: BSD-2-Clause +.\" +.\" Copyright (c) 2018-2025 Gavin D. Howard and contributors. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions are met: +.\" +.\" * Redistributions of source code must retain the above copyright notice, +.\" this list of conditions and the following disclaimer. +.\" +.\" * Redistributions in binary form must reproduce the above copyright notice, +.\" this list of conditions and the following disclaimer in the documentation +.\" and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +.\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +.\" LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +.\" POSSIBILITY OF SUCH DAMAGE. +.\" +.TH "DC" "1" "August 2024" "Gavin D. Howard" "General Commands Manual" +.nh +.ad l +.SH Name +dc \- arbitrary\-precision decimal reverse\-Polish notation calculator +.SH SYNOPSIS +\f[B]dc\f[R] [\f[B]\-cChiPRvVx\f[R]] [\f[B]\-\-version\f[R]] +[\f[B]\-\-help\f[R]] [\f[B]\-\-digit\-clamp\f[R]] +[\f[B]\-\-no\-digit\-clamp\f[R]] [\f[B]\-\-interactive\f[R]] +[\f[B]\-\-no\-prompt\f[R]] [\f[B]\-\-no\-read\-prompt\f[R]] +[\f[B]\-\-extended\-register\f[R]] [\f[B]\-e\f[R] \f[I]expr\f[R]] +[\f[B]\-\-expression\f[R]=\f[I]expr\f[R]\&...] +[\f[B]\-f\f[R] \f[I]file\f[R]\&...] +[\f[B]\-\-file\f[R]=\f[I]file\f[R]\&...] +[\f[I]file\f[R]\&...] +[\f[B]\-I\f[R] \f[I]ibase\f[R]] [\f[B]\-\-ibase\f[R]=\f[I]ibase\f[R]] +[\f[B]\-O\f[R] \f[I]obase\f[R]] [\f[B]\-\-obase\f[R]=\f[I]obase\f[R]] +[\f[B]\-S\f[R] \f[I]scale\f[R]] [\f[B]\-\-scale\f[R]=\f[I]scale\f[R]] +[\f[B]\-E\f[R] \f[I]seed\f[R]] [\f[B]\-\-seed\f[R]=\f[I]seed\f[R]] +.SH DESCRIPTION +dc(1) is an arbitrary\-precision calculator. +It uses a stack (reverse Polish notation) to store numbers and results +of computations. +Arithmetic operations pop arguments off of the stack and push the +results. +.PP +If no files are given on the command\-line, then dc(1) reads from +\f[B]stdin\f[R] (see the \f[B]STDIN\f[R] section). +Otherwise, those files are processed, and dc(1) will then exit. +.PP +If a user wants to set up a standard environment, they can use +\f[B]DC_ENV_ARGS\f[R] (see the \f[B]ENVIRONMENT VARIABLES\f[R] section). +For example, if a user wants the \f[B]scale\f[R] always set to +\f[B]10\f[R], they can set \f[B]DC_ENV_ARGS\f[R] to \f[B]\-e 10k\f[R], +and this dc(1) will always start with a \f[B]scale\f[R] of \f[B]10\f[R]. +.SH OPTIONS +The following are the options that dc(1) accepts. +.TP +\f[B]\-C\f[R], \f[B]\-\-no\-digit\-clamp\f[R] +Disables clamping of digits greater than or equal to the current +\f[B]ibase\f[R] when parsing numbers. +.RS +.PP +This means that the value added to a number from a digit is always that +digit\[cq]s value multiplied by the value of ibase raised to the power +of the digit\[cq]s position, which starts from 0 at the least +significant digit. +.PP +If this and/or the \f[B]\-c\f[R] or \f[B]\-\-digit\-clamp\f[R] options +are given multiple times, the last one given is used. +.PP +This option overrides the \f[B]DC_DIGIT_CLAMP\f[R] environment variable +(see the \f[B]ENVIRONMENT VARIABLES\f[R] section) and the default, which +can be queried with the \f[B]\-h\f[R] or \f[B]\-\-help\f[R] options. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-c\f[R], \f[B]\-\-digit\-clamp\f[R] +Enables clamping of digits greater than or equal to the current +\f[B]ibase\f[R] when parsing numbers. +.RS +.PP +This means that digits that the value added to a number from a digit +that is greater than or equal to the ibase is the value of ibase minus 1 +all multiplied by the value of ibase raised to the power of the +digit\[cq]s position, which starts from 0 at the least significant +digit. +.PP +If this and/or the \f[B]\-C\f[R] or \f[B]\-\-no\-digit\-clamp\f[R] +options are given multiple times, the last one given is used. +.PP +This option overrides the \f[B]DC_DIGIT_CLAMP\f[R] environment variable +(see the \f[B]ENVIRONMENT VARIABLES\f[R] section) and the default, which +can be queried with the \f[B]\-h\f[R] or \f[B]\-\-help\f[R] options. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-E\f[R] \f[I]seed\f[R], \f[B]\-\-seed\f[R]=\f[I]seed\f[R] +Sets the builtin variable \f[B]seed\f[R] to the value \f[I]seed\f[R] +assuming that \f[I]seed\f[R] is in base 10. +It is a fatal error if \f[I]seed\f[R] is not a valid number. +.RS +.PP +If multiple instances of this option are given, the last is used. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-e\f[R] \f[I]expr\f[R], \f[B]\-\-expression\f[R]=\f[I]expr\f[R] +Evaluates \f[I]expr\f[R]. +If multiple expressions are given, they are evaluated in order. +If files are given as well (see below), the expressions and files are +evaluated in the order given. +This means that if a file is given before an expression, the file is +read in and evaluated first. +.RS +.PP +If this option is given on the command\-line (i.e., not in +\f[B]DC_ENV_ARGS\f[R], see the \f[B]ENVIRONMENT VARIABLES\f[R] section), +then after processing all expressions and files, dc(1) will exit, unless +\f[B]\-\f[R] (\f[B]stdin\f[R]) was given as an argument at least once to +\f[B]\-f\f[R] or \f[B]\-\-file\f[R], whether on the command\-line or in +\f[B]DC_ENV_ARGS\f[R]. +However, if any other \f[B]\-e\f[R], \f[B]\-\-expression\f[R], +\f[B]\-f\f[R], or \f[B]\-\-file\f[R] arguments are given after +\f[B]\-f\-\f[R] or equivalent is given, dc(1) will give a fatal error +and exit. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-f\f[R] \f[I]file\f[R], \f[B]\-\-file\f[R]=\f[I]file\f[R] +Reads in \f[I]file\f[R] and evaluates it, line by line, as though it +were read through \f[B]stdin\f[R]. +If expressions are also given (see above), the expressions are evaluated +in the order given. +.RS +.PP +If this option is given on the command\-line (i.e., not in +\f[B]DC_ENV_ARGS\f[R], see the \f[B]ENVIRONMENT VARIABLES\f[R] section), +then after processing all expressions and files, dc(1) will exit, unless +\f[B]\-\f[R] (\f[B]stdin\f[R]) was given as an argument at least once to +\f[B]\-f\f[R] or \f[B]\-\-file\f[R]. +However, if any other \f[B]\-e\f[R], \f[B]\-\-expression\f[R], +\f[B]\-f\f[R], or \f[B]\-\-file\f[R] arguments are given after +\f[B]\-f\-\f[R] or equivalent is given, dc(1) will give a fatal error +and exit. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-h\f[R], \f[B]\-\-help\f[R] +Prints a usage message and exits. +.TP +\f[B]\-I\f[R] \f[I]ibase\f[R], \f[B]\-\-ibase\f[R]=\f[I]ibase\f[R] +Sets the builtin variable \f[B]ibase\f[R] to the value \f[I]ibase\f[R] +assuming that \f[I]ibase\f[R] is in base 10. +It is a fatal error if \f[I]ibase\f[R] is not a valid number. +.RS +.PP +If multiple instances of this option are given, the last is used. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-i\f[R], \f[B]\-\-interactive\f[R] +Forces interactive mode. +(See the \f[B]INTERACTIVE MODE\f[R] section.) +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-L\f[R], \f[B]\-\-no\-line\-length\f[R] +Disables line length checking and prints numbers without backslashes and +newlines. +In other words, this option sets \f[B]BC_LINE_LENGTH\f[R] to \f[B]0\f[R] +(see the \f[B]ENVIRONMENT VARIABLES\f[R] section). +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-O\f[R] \f[I]obase\f[R], \f[B]\-\-obase\f[R]=\f[I]obase\f[R] +Sets the builtin variable \f[B]obase\f[R] to the value \f[I]obase\f[R] +assuming that \f[I]obase\f[R] is in base 10. +It is a fatal error if \f[I]obase\f[R] is not a valid number. +.RS +.PP +If multiple instances of this option are given, the last is used. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-P\f[R], \f[B]\-\-no\-prompt\f[R] +Disables the prompt in TTY mode. +(The prompt is only enabled in TTY mode. +See the \f[B]TTY MODE\f[R] section.) +This is mostly for those users that do not want a prompt or are not used +to having them in dc(1). +Most of those users would want to put this option in +\f[B]DC_ENV_ARGS\f[R]. +.RS +.PP +These options override the \f[B]DC_PROMPT\f[R] and \f[B]DC_TTY_MODE\f[R] +environment variables (see the \f[B]ENVIRONMENT VARIABLES\f[R] section). +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-R\f[R], \f[B]\-\-no\-read\-prompt\f[R] +Disables the read prompt in TTY mode. +(The read prompt is only enabled in TTY mode. +See the \f[B]TTY MODE\f[R] section.) +This is mostly for those users that do not want a read prompt or are not +used to having them in dc(1). +Most of those users would want to put this option in +\f[B]BC_ENV_ARGS\f[R] (see the \f[B]ENVIRONMENT VARIABLES\f[R] section). +This option is also useful in hash bang lines of dc(1) scripts that +prompt for user input. +.RS +.PP +This option does not disable the regular prompt because the read prompt +is only used when the \f[B]?\f[R] command is used. +.PP +These options \f[I]do\f[R] override the \f[B]DC_PROMPT\f[R] and +\f[B]DC_TTY_MODE\f[R] environment variables (see the \f[B]ENVIRONMENT +VARIABLES\f[R] section), but only for the read prompt. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-S\f[R] \f[I]scale\f[R], \f[B]\-\-scale\f[R]=\f[I]scale\f[R] +Sets the builtin variable \f[B]scale\f[R] to the value \f[I]scale\f[R] +assuming that \f[I]scale\f[R] is in base 10. +It is a fatal error if \f[I]scale\f[R] is not a valid number. +.RS +.PP +If multiple instances of this option are given, the last is used. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-v\f[R], \f[B]\-V\f[R], \f[B]\-\-version\f[R] +Print the version information (copyright header) and exits. +.TP +\f[B]\-x\f[R] \f[B]\-\-extended\-register\f[R] +Enables extended register mode. +See the \f[I]Extended Register Mode\f[R] subsection of the +\f[B]REGISTERS\f[R] section for more information. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-z\f[R], \f[B]\-\-leading\-zeroes\f[R] +Makes dc(1) print all numbers greater than \f[B]\-1\f[R] and less than +\f[B]1\f[R], and not equal to \f[B]0\f[R], with a leading zero. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.PP +All long options are \f[B]non\-portable extensions\f[R]. +.SH STDIN +If no files are given on the command\-line and no files or expressions +are given by the \f[B]\-f\f[R], \f[B]\-\-file\f[R], \f[B]\-e\f[R], or +\f[B]\-\-expression\f[R] options, then dc(1) reads from \f[B]stdin\f[R]. +.PP +However, there is a caveat to this. +.PP +First, \f[B]stdin\f[R] is evaluated a line at a time. +The only exception to this is if a string has been finished, but not +ended. +This means that, except for escaped brackets, all brackets must be +balanced before dc(1) parses and executes. +.SH STDOUT +Any non\-error output is written to \f[B]stdout\f[R]. +In addition, if history (see the \f[B]HISTORY\f[R] section) and the +prompt (see the \f[B]TTY MODE\f[R] section) are enabled, both are output +to \f[B]stdout\f[R]. +.PP +\f[B]Note\f[R]: Unlike other dc(1) implementations, this dc(1) will +issue a fatal error (see the \f[B]EXIT STATUS\f[R] section) if it cannot +write to \f[B]stdout\f[R], so if \f[B]stdout\f[R] is closed, as in +\f[B]dc >&\-\f[R], it will quit with an error. +This is done so that dc(1) can report problems when \f[B]stdout\f[R] is +redirected to a file. +.PP +If there are scripts that depend on the behavior of other dc(1) +implementations, it is recommended that those scripts be changed to +redirect \f[B]stdout\f[R] to \f[B]/dev/null\f[R]. +.SH STDERR +Any error output is written to \f[B]stderr\f[R]. +.PP +\f[B]Note\f[R]: Unlike other dc(1) implementations, this dc(1) will +issue a fatal error (see the \f[B]EXIT STATUS\f[R] section) if it cannot +write to \f[B]stderr\f[R], so if \f[B]stderr\f[R] is closed, as in +\f[B]dc 2>&\-\f[R], it will quit with an error. +This is done so that dc(1) can exit with an error code when +\f[B]stderr\f[R] is redirected to a file. +.PP +If there are scripts that depend on the behavior of other dc(1) +implementations, it is recommended that those scripts be changed to +redirect \f[B]stderr\f[R] to \f[B]/dev/null\f[R]. +.SH SYNTAX +Each item in the input source code, either a number (see the +\f[B]NUMBERS\f[R] section) or a command (see the \f[B]COMMANDS\f[R] +section), is processed and executed, in order. +Input is processed immediately when entered. +.PP +\f[B]ibase\f[R] is a register (see the \f[B]REGISTERS\f[R] section) that +determines how to interpret constant numbers. +It is the \[lq]input\[rq] base, or the number base used for interpreting +input numbers. +\f[B]ibase\f[R] is initially \f[B]10\f[R]. +The max allowable value for \f[B]ibase\f[R] is \f[B]16\f[R]. +The min allowable value for \f[B]ibase\f[R] is \f[B]2\f[R]. +The max allowable value for \f[B]ibase\f[R] can be queried in dc(1) +programs with the \f[B]T\f[R] command. +.PP +\f[B]obase\f[R] is a register (see the \f[B]REGISTERS\f[R] section) that +determines how to output results. +It is the \[lq]output\[rq] base, or the number base used for outputting +numbers. +\f[B]obase\f[R] is initially \f[B]10\f[R]. +The max allowable value for \f[B]obase\f[R] is \f[B]DC_BASE_MAX\f[R] and +can be queried with the \f[B]U\f[R] command. +The min allowable value for \f[B]obase\f[R] is \f[B]0\f[R]. +If \f[B]obase\f[R] is \f[B]0\f[R], values are output in scientific +notation, and if \f[B]obase\f[R] is \f[B]1\f[R], values are output in +engineering notation. +Otherwise, values are output in the specified base. +.PP +Outputting in scientific and engineering notations are +\f[B]non\-portable extensions\f[R]. +.PP +The \f[I]scale\f[R] of an expression is the number of digits in the +result of the expression right of the decimal point, and \f[B]scale\f[R] +is a register (see the \f[B]REGISTERS\f[R] section) that sets the +precision of any operations (with exceptions). +\f[B]scale\f[R] is initially \f[B]0\f[R]. +\f[B]scale\f[R] cannot be negative. +The max allowable value for \f[B]scale\f[R] can be queried in dc(1) +programs with the \f[B]V\f[R] command. +.PP +\f[B]seed\f[R] is a register containing the current seed for the +pseudo\-random number generator. +If the current value of \f[B]seed\f[R] is queried and stored, then if it +is assigned to \f[B]seed\f[R] later, the pseudo\-random number generator +is guaranteed to produce the same sequence of pseudo\-random numbers +that were generated after the value of \f[B]seed\f[R] was first queried. +.PP +Multiple values assigned to \f[B]seed\f[R] can produce the same sequence +of pseudo\-random numbers. +Likewise, when a value is assigned to \f[B]seed\f[R], it is not +guaranteed that querying \f[B]seed\f[R] immediately after will return +the same value. +In addition, the value of \f[B]seed\f[R] will change after any call to +the \f[B]\[cq]\f[R] command or the \f[B]\[lq]\f[R] command that does not +get receive a value of \f[B]0\f[R] or \f[B]1\f[R]. +The maximum integer returned by the \f[B]\[cq]\f[R] command can be +queried with the \f[B]W\f[R] command. +.PP +\f[B]Note\f[R]: The values returned by the pseudo\-random number +generator with the \f[B]\[cq]\f[R] and \f[B]\[lq]\f[R] commands are +guaranteed to \f[B]NOT\f[R] be cryptographically secure. +This is a consequence of using a seeded pseudo\-random number generator. +However, they \f[I]are\f[R] guaranteed to be reproducible with identical +\f[B]seed\f[R] values. +This means that the pseudo\-random values from dc(1) should only be used +where a reproducible stream of pseudo\-random numbers is +\f[I]ESSENTIAL\f[R]. +In any other case, use a non\-seeded pseudo\-random number generator. +.PP +The pseudo\-random number generator, \f[B]seed\f[R], and all associated +operations are \f[B]non\-portable extensions\f[R]. +.SS Comments +Comments go from \f[B]#\f[R] until, and not including, the next newline. +This is a \f[B]non\-portable extension\f[R]. +.SH NUMBERS +Numbers are strings made up of digits, uppercase letters up to +\f[B]F\f[R], and at most \f[B]1\f[R] period for a radix. +Numbers can have up to \f[B]DC_NUM_MAX\f[R] digits. +Uppercase letters are equal to \f[B]9\f[R] plus their position in the +alphabet (i.e., \f[B]A\f[R] equals \f[B]10\f[R], or \f[B]9+1\f[R]). +.PP +If a digit or letter makes no sense with the current value of +\f[B]ibase\f[R] (i.e., they are greater than or equal to the current +value of \f[B]ibase\f[R]), then the behavior depends on the existence of +the \f[B]\-c\f[R]/\f[B]\-\-digit\-clamp\f[R] or +\f[B]\-C\f[R]/\f[B]\-\-no\-digit\-clamp\f[R] options (see the +\f[B]OPTIONS\f[R] section), the existence and setting of the +\f[B]DC_DIGIT_CLAMP\f[R] environment variable (see the \f[B]ENVIRONMENT +VARIABLES\f[R] section), or the default, which can be queried with the +\f[B]\-h\f[R]/\f[B]\-\-help\f[R] option. +.PP +If clamping is off, then digits or letters that are greater than or +equal to the current value of \f[B]ibase\f[R] are not changed. +Instead, their given value is multiplied by the appropriate power of +\f[B]ibase\f[R] and added into the number. +This means that, with an \f[B]ibase\f[R] of \f[B]3\f[R], the number +\f[B]AB\f[R] is equal to \f[B]3\[ha]1*A+3\[ha]0*B\f[R], which is +\f[B]3\f[R] times \f[B]10\f[R] plus \f[B]11\f[R], or \f[B]41\f[R]. +.PP +If clamping is on, then digits or letters that are greater than or equal +to the current value of \f[B]ibase\f[R] are set to the value of the +highest valid digit in \f[B]ibase\f[R] before being multiplied by the +appropriate power of \f[B]ibase\f[R] and added into the number. +This means that, with an \f[B]ibase\f[R] of \f[B]3\f[R], the number +\f[B]AB\f[R] is equal to \f[B]3\[ha]1*2+3\[ha]0*2\f[R], which is +\f[B]3\f[R] times \f[B]2\f[R] plus \f[B]2\f[R], or \f[B]8\f[R]. +.PP +There is one exception to clamping: single\-character numbers (i.e., +\f[B]A\f[R] alone). +Such numbers are never clamped and always take the value they would have +in the highest possible \f[B]ibase\f[R]. +This means that \f[B]A\f[R] alone always equals decimal \f[B]10\f[R] and +\f[B]Z\f[R] alone always equals decimal \f[B]35\f[R]. +This behavior is mandated by the standard for bc(1) (see the STANDARDS +section) and is meant to provide an easy way to set the current +\f[B]ibase\f[R] (with the \f[B]i\f[R] command) regardless of the current +value of \f[B]ibase\f[R]. +.PP +If clamping is on, and the clamped value of a character is needed, use a +leading zero, i.e., for \f[B]A\f[R], use \f[B]0A\f[R]. +.PP +In addition, dc(1) accepts numbers in scientific notation. +These have the form \f[B]e\f[R]. +The exponent (the portion after the \f[B]e\f[R]) must be an integer. +An example is \f[B]1.89237e9\f[R], which is equal to +\f[B]1892370000\f[R]. +Negative exponents are also allowed, so \f[B]4.2890e_3\f[R] is equal to +\f[B]0.0042890\f[R]. +.PP +\f[B]WARNING\f[R]: Both the number and the exponent in scientific +notation are interpreted according to the current \f[B]ibase\f[R], but +the number is still multiplied by \f[B]10\[ha]exponent\f[R] regardless +of the current \f[B]ibase\f[R]. +For example, if \f[B]ibase\f[R] is \f[B]16\f[R] and dc(1) is given the +number string \f[B]FFeA\f[R], the resulting decimal number will be +\f[B]2550000000000\f[R], and if dc(1) is given the number string +\f[B]10e_4\f[R], the resulting decimal number will be \f[B]0.0016\f[R]. +.PP +Accepting input as scientific notation is a \f[B]non\-portable +extension\f[R]. +.SH COMMANDS +The valid commands are listed below. +.SS Printing +These commands are used for printing. +.PP +Note that both scientific notation and engineering notation are +available for printing numbers. +Scientific notation is activated by assigning \f[B]0\f[R] to +\f[B]obase\f[R] using \f[B]0o\f[R], and engineering notation is +activated by assigning \f[B]1\f[R] to \f[B]obase\f[R] using +\f[B]1o\f[R]. +To deactivate them, just assign a different value to \f[B]obase\f[R]. +.PP +Printing numbers in scientific notation and/or engineering notation is a +\f[B]non\-portable extension\f[R]. +.TP +\f[B]p\f[R] +Prints the value on top of the stack, whether number or string, and +prints a newline after. +.RS +.PP +This does not alter the stack. +.RE +.TP +\f[B]n\f[R] +Prints the value on top of the stack, whether number or string, and pops +it off of the stack. +.TP +\f[B]P\f[R] +Pops a value off the stack. +.RS +.PP +If the value is a number, it is truncated and the absolute value of the +result is printed as though \f[B]obase\f[R] is \f[B]256\f[R] and each +digit is interpreted as an 8\-bit ASCII character, making it a byte +stream. +.PP +If the value is a string, it is printed without a trailing newline. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]f\f[R] +Prints the entire contents of the stack, in order from newest to oldest, +without altering anything. +.RS +.PP +Users should use this command when they get lost. +.RE +.SS Arithmetic +These are the commands used for arithmetic. +.TP +\f[B]+\f[R] +The top two values are popped off the stack, added, and the result is +pushed onto the stack. +The \f[I]scale\f[R] of the result is equal to the max \f[I]scale\f[R] of +both operands. +.TP +\f[B]\-\f[R] +The top two values are popped off the stack, subtracted, and the result +is pushed onto the stack. +The \f[I]scale\f[R] of the result is equal to the max \f[I]scale\f[R] of +both operands. +.TP +\f[B]*\f[R] +The top two values are popped off the stack, multiplied, and the result +is pushed onto the stack. +If \f[B]a\f[R] is the \f[I]scale\f[R] of the first expression and +\f[B]b\f[R] is the \f[I]scale\f[R] of the second expression, the +\f[I]scale\f[R] of the result is equal to +\f[B]min(a+b,max(scale,a,b))\f[R] where \f[B]min()\f[R] and +\f[B]max()\f[R] return the obvious values. +.TP +\f[B]/\f[R] +The top two values are popped off the stack, divided, and the result is +pushed onto the stack. +The \f[I]scale\f[R] of the result is equal to \f[B]scale\f[R]. +.RS +.PP +The first value popped off of the stack must be non\-zero. +.RE +.TP +\f[B]%\f[R] +The top two values are popped off the stack, remaindered, and the result +is pushed onto the stack. +.RS +.PP +Remaindering is equivalent to 1) Computing \f[B]a/b\f[R] to current +\f[B]scale\f[R], and 2) Using the result of step 1 to calculate +\f[B]a\-(a/b)*b\f[R] to \f[I]scale\f[R] +\f[B]max(scale+scale(b),scale(a))\f[R]. +.PP +The first value popped off of the stack must be non\-zero. +.RE +.TP +\f[B]\[ti]\f[R] +The top two values are popped off the stack, divided and remaindered, +and the results (divided first, remainder second) are pushed onto the +stack. +This is equivalent to \f[B]x y / x y %\f[R] except that \f[B]x\f[R] and +\f[B]y\f[R] are only evaluated once. +.RS +.PP +The first value popped off of the stack must be non\-zero. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\[ha]\f[R] +The top two values are popped off the stack, the second is raised to the +power of the first, and the result is pushed onto the stack. +The \f[I]scale\f[R] of the result is equal to \f[B]scale\f[R]. +.RS +.PP +The first value popped off of the stack must be an integer, and if that +value is negative, the second value popped off of the stack must be +non\-zero. +.RE +.TP +\f[B]v\f[R] +The top value is popped off the stack, its square root is computed, and +the result is pushed onto the stack. +The \f[I]scale\f[R] of the result is equal to \f[B]scale\f[R]. +.RS +.PP +The value popped off of the stack must be non\-negative. +.RE +.TP +\f[B]_\f[R] +If this command \f[I]immediately\f[R] precedes a number (i.e., no spaces +or other commands), then that number is input as a negative number. +.RS +.PP +Otherwise, the top value on the stack is popped and copied, and the copy +is negated and pushed onto the stack. +This behavior without a number is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]b\f[R] +The top value is popped off the stack, and if it is zero, it is pushed +back onto the stack. +Otherwise, its absolute value is pushed onto the stack. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]|\f[R] +The top three values are popped off the stack, a modular exponentiation +is computed, and the result is pushed onto the stack. +.RS +.PP +The first value popped is used as the reduction modulus and must be an +integer and non\-zero. +The second value popped is used as the exponent and must be an integer +and non\-negative. +The third value popped is the base and must be an integer. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]$\f[R] +The top value is popped off the stack and copied, and the copy is +truncated and pushed onto the stack. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\[at]\f[R] +The top two values are popped off the stack, and the precision of the +second is set to the value of the first, whether by truncation or +extension. +.RS +.PP +The first value popped off of the stack must be an integer and +non\-negative. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]H\f[R] +The top two values are popped off the stack, and the second is shifted +left (radix shifted right) to the value of the first. +.RS +.PP +The first value popped off of the stack must be an integer and +non\-negative. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]h\f[R] +The top two values are popped off the stack, and the second is shifted +right (radix shifted left) to the value of the first. +.RS +.PP +The first value popped off of the stack must be an integer and +non\-negative. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]G\f[R] +The top two values are popped off of the stack, they are compared, and a +\f[B]1\f[R] is pushed if they are equal, or \f[B]0\f[R] otherwise. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]N\f[R] +The top value is popped off of the stack, and if it a \f[B]0\f[R], a +\f[B]1\f[R] is pushed; otherwise, a \f[B]0\f[R] is pushed. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B](\f[R] +The top two values are popped off of the stack, they are compared, and a +\f[B]1\f[R] is pushed if the first is less than the second, or +\f[B]0\f[R] otherwise. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]{\f[R] +The top two values are popped off of the stack, they are compared, and a +\f[B]1\f[R] is pushed if the first is less than or equal to the second, +or \f[B]0\f[R] otherwise. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B])\f[R] +The top two values are popped off of the stack, they are compared, and a +\f[B]1\f[R] is pushed if the first is greater than the second, or +\f[B]0\f[R] otherwise. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]}\f[R] +The top two values are popped off of the stack, they are compared, and a +\f[B]1\f[R] is pushed if the first is greater than or equal to the +second, or \f[B]0\f[R] otherwise. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]M\f[R] +The top two values are popped off of the stack. +If they are both non\-zero, a \f[B]1\f[R] is pushed onto the stack. +If either of them is zero, or both of them are, then a \f[B]0\f[R] is +pushed onto the stack. +.RS +.PP +This is like the \f[B]&&\f[R] operator in bc(1), and it is \f[I]not\f[R] +a short\-circuit operator. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]m\f[R] +The top two values are popped off of the stack. +If at least one of them is non\-zero, a \f[B]1\f[R] is pushed onto the +stack. +If both of them are zero, then a \f[B]0\f[R] is pushed onto the stack. +.RS +.PP +This is like the \f[B]||\f[R] operator in bc(1), and it is \f[I]not\f[R] +a short\-circuit operator. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.SS Pseudo\-Random Number Generator +dc(1) has a built\-in pseudo\-random number generator. +These commands query the pseudo\-random number generator. +(See Parameters for more information about the \f[B]seed\f[R] value that +controls the pseudo\-random number generator.) +.PP +The pseudo\-random number generator is guaranteed to \f[B]NOT\f[R] be +cryptographically secure. +.TP +\f[B]\[cq]\f[R] +Generates an integer between 0 and \f[B]DC_RAND_MAX\f[R], inclusive (see +the \f[B]LIMITS\f[R] section). +.RS +.PP +The generated integer is made as unbiased as possible, subject to the +limitations of the pseudo\-random number generator. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\[lq]\f[R] +Pops a value off of the stack, which is used as an \f[B]exclusive\f[R] +upper bound on the integer that will be generated. +If the bound is negative or is a non\-integer, an error is raised, and +dc(1) resets (see the \f[B]RESET\f[R] section) while \f[B]seed\f[R] +remains unchanged. +If the bound is larger than \f[B]DC_RAND_MAX\f[R], the higher bound is +honored by generating several pseudo\-random integers, multiplying them +by appropriate powers of \f[B]DC_RAND_MAX+1\f[R], and adding them +together. +Thus, the size of integer that can be generated with this command is +unbounded. +Using this command will change the value of \f[B]seed\f[R], unless the +operand is \f[B]0\f[R] or \f[B]1\f[R]. +In that case, \f[B]0\f[R] is pushed onto the stack, and \f[B]seed\f[R] +is \f[I]not\f[R] changed. +.RS +.PP +The generated integer is made as unbiased as possible, subject to the +limitations of the pseudo\-random number generator. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.SS Stack Control +These commands control the stack. +.TP +\f[B]c\f[R] +Removes all items from (\[lq]clears\[rq]) the stack. +.TP +\f[B]d\f[R] +Copies the item on top of the stack (\[lq]duplicates\[rq]) and pushes +the copy onto the stack. +.TP +\f[B]r\f[R] +Swaps (\[lq]reverses\[rq]) the two top items on the stack. +.TP +\f[B]R\f[R] +Pops (\[lq]removes\[rq]) the top value from the stack. +.SS Register Control +These commands control registers (see the \f[B]REGISTERS\f[R] section). +.TP +\f[B]s\f[R]\f[I]r\f[R] +Pops the value off the top of the stack and stores it into register +\f[I]r\f[R]. +.TP +\f[B]l\f[R]\f[I]r\f[R] +Copies the value in register \f[I]r\f[R] and pushes it onto the stack. +This does not alter the contents of \f[I]r\f[R]. +.TP +\f[B]S\f[R]\f[I]r\f[R] +Pops the value off the top of the (main) stack and pushes it onto the +stack of register \f[I]r\f[R]. +The previous value of the register becomes inaccessible. +.TP +\f[B]L\f[R]\f[I]r\f[R] +Pops the value off the top of the stack for register \f[I]r\f[R] and +push it onto the main stack. +The previous value in the stack for register \f[I]r\f[R], if any, is now +accessible via the \f[B]l\f[R]\f[I]r\f[R] command. +.SS Parameters +These commands control the values of \f[B]ibase\f[R], \f[B]obase\f[R], +\f[B]scale\f[R], and \f[B]seed\f[R]. +Also see the \f[B]SYNTAX\f[R] section. +.TP +\f[B]i\f[R] +Pops the value off of the top of the stack and uses it to set +\f[B]ibase\f[R], which must be between \f[B]2\f[R] and \f[B]16\f[R], +inclusive. +.RS +.PP +If the value on top of the stack has any \f[I]scale\f[R], the +\f[I]scale\f[R] is ignored. +.RE +.TP +\f[B]o\f[R] +Pops the value off of the top of the stack and uses it to set +\f[B]obase\f[R], which must be between \f[B]0\f[R] and +\f[B]DC_BASE_MAX\f[R], inclusive (see the \f[B]LIMITS\f[R] section and +the \f[B]NUMBERS\f[R] section). +.RS +.PP +If the value on top of the stack has any \f[I]scale\f[R], the +\f[I]scale\f[R] is ignored. +.RE +.TP +\f[B]k\f[R] +Pops the value off of the top of the stack and uses it to set +\f[B]scale\f[R], which must be non\-negative. +.RS +.PP +If the value on top of the stack has any \f[I]scale\f[R], the +\f[I]scale\f[R] is ignored. +.RE +.TP +\f[B]j\f[R] +Pops the value off of the top of the stack and uses it to set +\f[B]seed\f[R]. +The meaning of \f[B]seed\f[R] is dependent on the current pseudo\-random +number generator but is guaranteed to not change except for new major +versions. +.RS +.PP +The \f[I]scale\f[R] and sign of the value may be significant. +.PP +If a previously used \f[B]seed\f[R] value is used again, the +pseudo\-random number generator is guaranteed to produce the same +sequence of pseudo\-random numbers as it did when the \f[B]seed\f[R] +value was previously used. +.PP +The exact value assigned to \f[B]seed\f[R] is not guaranteed to be +returned if the \f[B]J\f[R] command is used. +However, if \f[B]seed\f[R] \f[I]does\f[R] return a different value, both +values, when assigned to \f[B]seed\f[R], are guaranteed to produce the +same sequence of pseudo\-random numbers. +This means that certain values assigned to \f[B]seed\f[R] will not +produce unique sequences of pseudo\-random numbers. +.PP +There is no limit to the length (number of significant decimal digits) +or \f[I]scale\f[R] of the value that can be assigned to \f[B]seed\f[R]. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]I\f[R] +Pushes the current value of \f[B]ibase\f[R] onto the main stack. +.TP +\f[B]O\f[R] +Pushes the current value of \f[B]obase\f[R] onto the main stack. +.TP +\f[B]K\f[R] +Pushes the current value of \f[B]scale\f[R] onto the main stack. +.TP +\f[B]J\f[R] +Pushes the current value of \f[B]seed\f[R] onto the main stack. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]T\f[R] +Pushes the maximum allowable value of \f[B]ibase\f[R] onto the main +stack. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]U\f[R] +Pushes the maximum allowable value of \f[B]obase\f[R] onto the main +stack. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]V\f[R] +Pushes the maximum allowable value of \f[B]scale\f[R] onto the main +stack. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]W\f[R] +Pushes the maximum (inclusive) integer that can be generated with the +\f[B]\[cq]\f[R] pseudo\-random number generator command. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.SS Strings +The following commands control strings. +.PP +dc(1) can work with both numbers and strings, and registers (see the +\f[B]REGISTERS\f[R] section) can hold both strings and numbers. +dc(1) always knows whether the contents of a register are a string or a +number. +.PP +While arithmetic operations have to have numbers, and will print an +error if given a string, other commands accept strings. +.PP +Strings can also be executed as macros. +For example, if the string \f[B][1pR]\f[R] is executed as a macro, then +the code \f[B]1pR\f[R] is executed, meaning that the \f[B]1\f[R] will be +printed with a newline after and then popped from the stack. +.TP +\f[B][\f[R]\f[I]characters\f[R]\f[B]]\f[R] +Makes a string containing \f[I]characters\f[R] and pushes it onto the +stack. +.RS +.PP +If there are brackets (\f[B][\f[R] and \f[B]]\f[R]) in the string, then +they must be balanced. +Unbalanced brackets can be escaped using a backslash (\f[B]\[rs]\f[R]) +character. +.PP +If there is a backslash character in the string, the character after it +(even another backslash) is put into the string verbatim, but the +(first) backslash is not. +.RE +.TP +\f[B]a\f[R] +The value on top of the stack is popped. +.RS +.PP +If it is a number, it is truncated and its absolute value is taken. +The result mod \f[B]256\f[R] is calculated. +If that result is \f[B]0\f[R], push an empty string; otherwise, push a +one\-character string where the character is the result of the mod +interpreted as an ASCII character. +.PP +If it is a string, then a new string is made. +If the original string is empty, the new string is empty. +If it is not, then the first character of the original string is used to +create the new string as a one\-character string. +The new string is then pushed onto the stack. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]x\f[R] +Pops a value off of the top of the stack. +.RS +.PP +If it is a number, it is pushed back onto the stack. +.PP +If it is a string, it is executed as a macro. +.PP +This behavior is the norm whenever a macro is executed, whether by this +command or by the conditional execution commands below. +.RE +.TP +\f[B]>\f[R]\f[I]r\f[R] +Pops two values off of the stack that must be numbers and compares them. +If the first value is greater than the second, then the contents of +register \f[I]r\f[R] are executed. +.RS +.PP +For example, \f[B]0 1>a\f[R] will execute the contents of register +\f[B]a\f[R], and \f[B]1 0>a\f[R] will not. +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.RE +.TP +\f[B]>\f[R]\f[I]r\f[R]\f[B]e\f[R]\f[I]s\f[R] +Like the above, but will execute register \f[I]s\f[R] if the comparison +fails. +.RS +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]!>\f[R]\f[I]r\f[R] +Pops two values off of the stack that must be numbers and compares them. +If the first value is not greater than the second (less than or equal +to), then the contents of register \f[I]r\f[R] are executed. +.RS +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.RE +.TP +\f[B]!>\f[R]\f[I]r\f[R]\f[B]e\f[R]\f[I]s\f[R] +Like the above, but will execute register \f[I]s\f[R] if the comparison +fails. +.RS +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]<\f[R]\f[I]r\f[R] +Pops two values off of the stack that must be numbers and compares them. +If the first value is less than the second, then the contents of +register \f[I]r\f[R] are executed. +.RS +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.RE +.TP +\f[B]<\f[R]\f[I]r\f[R]\f[B]e\f[R]\f[I]s\f[R] +Like the above, but will execute register \f[I]s\f[R] if the comparison +fails. +.RS +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]!<\f[R]\f[I]r\f[R] +Pops two values off of the stack that must be numbers and compares them. +If the first value is not less than the second (greater than or equal +to), then the contents of register \f[I]r\f[R] are executed. +.RS +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.RE +.TP +\f[B]!<\f[R]\f[I]r\f[R]\f[B]e\f[R]\f[I]s\f[R] +Like the above, but will execute register \f[I]s\f[R] if the comparison +fails. +.RS +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]=\f[R]\f[I]r\f[R] +Pops two values off of the stack that must be numbers and compares them. +If the first value is equal to the second, then the contents of register +\f[I]r\f[R] are executed. +.RS +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.RE +.TP +\f[B]=\f[R]\f[I]r\f[R]\f[B]e\f[R]\f[I]s\f[R] +Like the above, but will execute register \f[I]s\f[R] if the comparison +fails. +.RS +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]!=\f[R]\f[I]r\f[R] +Pops two values off of the stack that must be numbers and compares them. +If the first value is not equal to the second, then the contents of +register \f[I]r\f[R] are executed. +.RS +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.RE +.TP +\f[B]!=\f[R]\f[I]r\f[R]\f[B]e\f[R]\f[I]s\f[R] +Like the above, but will execute register \f[I]s\f[R] if the comparison +fails. +.RS +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]?\f[R] +Reads a line from the \f[B]stdin\f[R] and executes it. +This is to allow macros to request input from users. +.TP +\f[B]q\f[R] +During execution of a macro, this exits the execution of that macro and +the execution of the macro that executed it. +If there are no macros, or only one macro executing, dc(1) exits. +.TP +\f[B]Q\f[R] +Pops a value from the stack which must be non\-negative and is used the +number of macro executions to pop off of the execution stack. +If the number of levels to pop is greater than the number of executing +macros, dc(1) exits. +.TP +\f[B],\f[R] +Pushes the depth of the execution stack onto the stack. +The execution stack is the stack of string executions. +The number that is pushed onto the stack is exactly as many as is needed +to make dc(1) exit with the \f[B]Q\f[R] command, so the sequence +\f[B],Q\f[R] will make dc(1) exit. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.SS Status +These commands query status of the stack or its top value. +.TP +\f[B]Z\f[R] +Pops a value off of the stack. +.RS +.PP +If it is a number, calculates the number of significant decimal digits +it has and pushes the result. +It will push \f[B]1\f[R] if the argument is \f[B]0\f[R] with no decimal +places. +.PP +If it is a string, pushes the number of characters the string has. +.RE +.TP +\f[B]X\f[R] +Pops a value off of the stack. +.RS +.PP +If it is a number, pushes the \f[I]scale\f[R] of the value onto the +stack. +.PP +If it is a string, pushes \f[B]0\f[R]. +.RE +.TP +\f[B]u\f[R] +Pops one value off of the stack. +If the value is a number, this pushes \f[B]1\f[R] onto the stack. +Otherwise (if it is a string), it pushes \f[B]0\f[R]. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]t\f[R] +Pops one value off of the stack. +If the value is a string, this pushes \f[B]1\f[R] onto the stack. +Otherwise (if it is a number), it pushes \f[B]0\f[R]. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]z\f[R] +Pushes the current depth of the stack (before execution of this command) +onto the stack. +.TP +\f[B]y\f[R]\f[I]r\f[R] +Pushes the current stack depth of the register \f[I]r\f[R] onto the main +stack. +.RS +.PP +Because each register has a depth of \f[B]1\f[R] (with the value +\f[B]0\f[R] in the top item) when dc(1) starts, dc(1) requires that each +register\[cq]s stack must always have at least one item; dc(1) will give +an error and reset otherwise (see the \f[B]RESET\f[R] section). +This means that this command will never push \f[B]0\f[R]. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.SS Arrays +These commands manipulate arrays. +.TP +\f[B]:\f[R]\f[I]r\f[R] +Pops the top two values off of the stack. +The second value will be stored in the array \f[I]r\f[R] (see the +\f[B]REGISTERS\f[R] section), indexed by the first value. +.TP +\f[B];\f[R]\f[I]r\f[R] +Pops the value on top of the stack and uses it as an index into the +array \f[I]r\f[R]. +The selected value is then pushed onto the stack. +.TP +\f[B]Y\f[R]\f[I]r\f[R] +Pushes the length of the array \f[I]r\f[R] onto the stack. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.SS Global Settings +These commands retrieve global settings. +These are the only commands that require multiple specific characters, +and all of them begin with the letter \f[B]g\f[R]. +Only the characters below are allowed after the character \f[B]g\f[R]; +any other character produces a parse error (see the \f[B]ERRORS\f[R] +section). +.TP +\f[B]gl\f[R] +Pushes the line length set by \f[B]DC_LINE_LENGTH\f[R] (see the +\f[B]ENVIRONMENT VARIABLES\f[R] section) onto the stack. +.TP +\f[B]gx\f[R] +Pushes \f[B]1\f[R] onto the stack if extended register mode is on, +\f[B]0\f[R] otherwise. +See the \f[I]Extended Register Mode\f[R] subsection of the +\f[B]REGISTERS\f[R] section for more information. +.TP +\f[B]gz\f[R] +Pushes \f[B]0\f[R] onto the stack if the leading zero setting has not +been enabled with the \f[B]\-z\f[R] or \f[B]\-\-leading\-zeroes\f[R] +options (see the \f[B]OPTIONS\f[R] section), non\-zero otherwise. +.SH REGISTERS +Registers are names that can store strings, numbers, and arrays. +(Number/string registers do not interfere with array registers.) +.PP +Each register is also its own stack, so the current register value is +the top of the stack for the register. +All registers, when first referenced, have one value (\f[B]0\f[R]) in +their stack, and it is a runtime error to attempt to pop that item off +of the register stack. +.PP +In non\-extended register mode, a register name is just the single +character that follows any command that needs a register name. +The only exceptions are: a newline (\f[B]`\[rs]n'\f[R]) and a left +bracket (\f[B]`['\f[R]); it is a parse error for a newline or a left +bracket to be used as a register name. +.SS Extended Register Mode +Unlike most other dc(1) implentations, this dc(1) provides nearly +unlimited amounts of registers, if extended register mode is enabled. +.PP +If extended register mode is enabled (\f[B]\-x\f[R] or +\f[B]\-\-extended\-register\f[R] command\-line arguments are given), +then normal single character registers are used \f[I]unless\f[R] the +character immediately following a command that needs a register name is +a space (according to \f[B]isspace()\f[R]) and not a newline +(\f[B]`\[rs]n'\f[R]). +.PP +In that case, the register name is found according to the regex +\f[B][a\-z][a\-z0\-9_]*\f[R] (like bc(1) identifiers), and it is a parse +error if the next non\-space characters do not match that regex. +.SH RESET +When dc(1) encounters an error or a signal that it has a non\-default +handler for, it resets. +This means that several things happen. +.PP +First, any macros that are executing are stopped and popped off the +execution stack. +The behavior is not unlike that of exceptions in programming languages. +Then the execution point is set so that any code waiting to execute +(after all macros returned) is skipped. +.PP +However, the stack of values is \f[I]not\f[R] cleared; in interactive +mode, users can inspect the stack and manipulate it. +.PP +Thus, when dc(1) resets, it skips any remaining code waiting to be +executed. +Then, if it is interactive mode, and the error was not a fatal error +(see the \f[B]EXIT STATUS\f[R] section), it asks for more input; +otherwise, it exits with the appropriate return code. +.SH PERFORMANCE +Most dc(1) implementations use \f[B]char\f[R] types to calculate the +value of \f[B]1\f[R] decimal digit at a time, but that can be slow. +This dc(1) does something different. +.PP +It uses large integers to calculate more than \f[B]1\f[R] decimal digit +at a time. +If built in a environment where \f[B]DC_LONG_BIT\f[R] (see the +\f[B]LIMITS\f[R] section) is \f[B]64\f[R], then each integer has +\f[B]9\f[R] decimal digits. +If built in an environment where \f[B]DC_LONG_BIT\f[R] is \f[B]32\f[R] +then each integer has \f[B]4\f[R] decimal digits. +This value (the number of decimal digits per large integer) is called +\f[B]DC_BASE_DIGS\f[R]. +.PP +In addition, this dc(1) uses an even larger integer for overflow +checking. +This integer type depends on the value of \f[B]DC_LONG_BIT\f[R], but is +always at least twice as large as the integer type used to store digits. +.SH LIMITS +The following are the limits on dc(1): +.TP +\f[B]DC_LONG_BIT\f[R] +The number of bits in the \f[B]long\f[R] type in the environment where +dc(1) was built. +This determines how many decimal digits can be stored in a single large +integer (see the \f[B]PERFORMANCE\f[R] section). +.TP +\f[B]DC_BASE_DIGS\f[R] +The number of decimal digits per large integer (see the +\f[B]PERFORMANCE\f[R] section). +Depends on \f[B]DC_LONG_BIT\f[R]. +.TP +\f[B]DC_BASE_POW\f[R] +The max decimal number that each large integer can store (see +\f[B]DC_BASE_DIGS\f[R]) plus \f[B]1\f[R]. +Depends on \f[B]DC_BASE_DIGS\f[R]. +.TP +\f[B]DC_OVERFLOW_MAX\f[R] +The max number that the overflow type (see the \f[B]PERFORMANCE\f[R] +section) can hold. +Depends on \f[B]DC_LONG_BIT\f[R]. +.TP +\f[B]DC_BASE_MAX\f[R] +The maximum output base. +Set at \f[B]DC_BASE_POW\f[R]. +.TP +\f[B]DC_DIM_MAX\f[R] +The maximum size of arrays. +Set at \f[B]SIZE_MAX\-1\f[R]. +.TP +\f[B]DC_SCALE_MAX\f[R] +The maximum \f[B]scale\f[R]. +Set at \f[B]DC_OVERFLOW_MAX\-1\f[R]. +.TP +\f[B]DC_STRING_MAX\f[R] +The maximum length of strings. +Set at \f[B]DC_OVERFLOW_MAX\-1\f[R]. +.TP +\f[B]DC_NAME_MAX\f[R] +The maximum length of identifiers. +Set at \f[B]DC_OVERFLOW_MAX\-1\f[R]. +.TP +\f[B]DC_NUM_MAX\f[R] +The maximum length of a number (in decimal digits), which includes +digits after the decimal point. +Set at \f[B]DC_OVERFLOW_MAX\-1\f[R]. +.TP +\f[B]DC_RAND_MAX\f[R] +The maximum integer (inclusive) returned by the \f[B]\[cq]\f[R] command, +if dc(1). +Set at \f[B]2\[ha]DC_LONG_BIT\-1\f[R]. +.TP +Exponent +The maximum allowable exponent (positive or negative). +Set at \f[B]DC_OVERFLOW_MAX\f[R]. +.TP +Number of vars +The maximum number of vars/arrays. +Set at \f[B]SIZE_MAX\-1\f[R]. +.PP +These limits are meant to be effectively non\-existent; the limits are +so large (at least on 64\-bit machines) that there should not be any +point at which they become a problem. +In fact, memory should be exhausted before these limits should be hit. +.SH ENVIRONMENT VARIABLES +As \f[B]non\-portable extensions\f[R], dc(1) recognizes the following +environment variables: +.TP +\f[B]DC_ENV_ARGS\f[R] +This is another way to give command\-line arguments to dc(1). +They should be in the same format as all other command\-line arguments. +These are always processed first, so any files given in +\f[B]DC_ENV_ARGS\f[R] will be processed before arguments and files given +on the command\-line. +This gives the user the ability to set up \[lq]standard\[rq] options and +files to be used at every invocation. +The most useful thing for such files to contain would be useful +functions that the user might want every time dc(1) runs. +Another use would be to use the \f[B]\-e\f[R] option to set +\f[B]scale\f[R] to a value other than \f[B]0\f[R]. +.RS +.PP +The code that parses \f[B]DC_ENV_ARGS\f[R] will correctly handle quoted +arguments, but it does not understand escape sequences. +For example, the string \f[B]\[lq]/home/gavin/some dc file.dc\[rq]\f[R] +will be correctly parsed, but the string \f[B]\[lq]/home/gavin/some +\[dq]dc\[dq] file.dc\[rq]\f[R] will include the backslashes. +.PP +The quote parsing will handle either kind of quotes, \f[B]\[cq]\f[R] or +\f[B]\[lq]\f[R]. +Thus, if you have a file with any number of single quotes in the name, +you can use double quotes as the outside quotes, as in \f[B]\[lq]some +`dc' file.dc\[rq]\f[R], and vice versa if you have a file with double +quotes. +However, handling a file with both kinds of quotes in +\f[B]DC_ENV_ARGS\f[R] is not supported due to the complexity of the +parsing, though such files are still supported on the command\-line +where the parsing is done by the shell. +.RE +.TP +\f[B]DC_LINE_LENGTH\f[R] +If this environment variable exists and contains an integer that is +greater than \f[B]1\f[R] and is less than \f[B]UINT16_MAX\f[R] +(\f[B]2\[ha]16\-1\f[R]), dc(1) will output lines to that length, +including the backslash newline combo. +The default line length is \f[B]70\f[R]. +.RS +.PP +The special value of \f[B]0\f[R] will disable line length checking and +print numbers without regard to line length and without backslashes and +newlines. +.RE +.TP +\f[B]DC_SIGINT_RESET\f[R] +If dc(1) is not in interactive mode (see the \f[B]INTERACTIVE MODE\f[R] +section), then this environment variable has no effect because dc(1) +exits on \f[B]SIGINT\f[R] when not in interactive mode. +.RS +.PP +However, when dc(1) is in interactive mode, then if this environment +variable exists and contains an integer, a non\-zero value makes dc(1) +reset on \f[B]SIGINT\f[R], rather than exit, and zero makes dc(1) exit. +If this environment variable exists and is \f[I]not\f[R] an integer, +then dc(1) will exit on \f[B]SIGINT\f[R]. +.PP +This environment variable overrides the default, which can be queried +with the \f[B]\-h\f[R] or \f[B]\-\-help\f[R] options. +.RE +.TP +\f[B]DC_TTY_MODE\f[R] +If TTY mode is \f[I]not\f[R] available (see the \f[B]TTY MODE\f[R] +section), then this environment variable has no effect. +.RS +.PP +However, when TTY mode is available, then if this environment variable +exists and contains an integer, then a non\-zero value makes dc(1) use +TTY mode, and zero makes dc(1) not use TTY mode. +.PP +This environment variable overrides the default, which can be queried +with the \f[B]\-h\f[R] or \f[B]\-\-help\f[R] options. +.RE +.TP +\f[B]DC_PROMPT\f[R] +If TTY mode is \f[I]not\f[R] available (see the \f[B]TTY MODE\f[R] +section), then this environment variable has no effect. +.RS +.PP +However, when TTY mode is available, then if this environment variable +exists and contains an integer, a non\-zero value makes dc(1) use a +prompt, and zero or a non\-integer makes dc(1) not use a prompt. +If this environment variable does not exist and \f[B]DC_TTY_MODE\f[R] +does, then the value of the \f[B]DC_TTY_MODE\f[R] environment variable +is used. +.PP +This environment variable and the \f[B]DC_TTY_MODE\f[R] environment +variable override the default, which can be queried with the +\f[B]\-h\f[R] or \f[B]\-\-help\f[R] options. +.RE +.TP +\f[B]DC_EXPR_EXIT\f[R] +If any expressions or expression files are given on the command\-line +with \f[B]\-e\f[R], \f[B]\-\-expression\f[R], \f[B]\-f\f[R], or +\f[B]\-\-file\f[R], then if this environment variable exists and +contains an integer, a non\-zero value makes dc(1) exit after executing +the expressions and expression files, and a zero value makes dc(1) not +exit. +.RS +.PP +This environment variable overrides the default, which can be queried +with the \f[B]\-h\f[R] or \f[B]\-\-help\f[R] options. +.RE +.TP +\f[B]DC_DIGIT_CLAMP\f[R] +When parsing numbers and if this environment variable exists and +contains an integer, a non\-zero value makes dc(1) clamp digits that are +greater than or equal to the current \f[B]ibase\f[R] so that all such +digits are considered equal to the \f[B]ibase\f[R] minus 1, and a zero +value disables such clamping so that those digits are always equal to +their value, which is multiplied by the power of the \f[B]ibase\f[R]. +.RS +.PP +This never applies to single\-digit numbers, as per the bc(1) standard +(see the \f[B]STANDARDS\f[R] section). +.PP +This environment variable overrides the default, which can be queried +with the \f[B]\-h\f[R] or \f[B]\-\-help\f[R] options. +.RE +.SH EXIT STATUS +dc(1) returns the following exit statuses: +.TP +\f[B]0\f[R] +No error. +.TP +\f[B]1\f[R] +A math error occurred. +This follows standard practice of using \f[B]1\f[R] for expected errors, +since math errors will happen in the process of normal execution. +.RS +.PP +Math errors include divide by \f[B]0\f[R], taking the square root of a +negative number, using a negative number as a bound for the +pseudo\-random number generator, attempting to convert a negative number +to a hardware integer, overflow when converting a number to a hardware +integer, overflow when calculating the size of a number, and attempting +to use a non\-integer where an integer is required. +.PP +Converting to a hardware integer happens for the second operand of the +power (\f[B]\[ha]\f[R]), places (\f[B]\[at]\f[R]), left shift +(\f[B]H\f[R]), and right shift (\f[B]h\f[R]) operators. +.RE +.TP +\f[B]2\f[R] +A parse error occurred. +.RS +.PP +Parse errors include unexpected \f[B]EOF\f[R], using an invalid +character, failing to find the end of a string or comment, and using a +token where it is invalid. +.RE +.TP +\f[B]3\f[R] +A runtime error occurred. +.RS +.PP +Runtime errors include assigning an invalid number to any global +(\f[B]ibase\f[R], \f[B]obase\f[R], or \f[B]scale\f[R]), giving a bad +expression to a \f[B]read()\f[R] call, calling \f[B]read()\f[R] inside +of a \f[B]read()\f[R] call, type errors (including attempting to execute +a number), and attempting an operation when the stack has too few +elements. +.RE +.TP +\f[B]4\f[R] +A fatal error occurred. +.RS +.PP +Fatal errors include memory allocation errors, I/O errors, failing to +open files, attempting to use files that do not have only ASCII +characters (dc(1) only accepts ASCII characters), attempting to open a +directory as a file, and giving invalid command\-line options. +.RE +.PP +The exit status \f[B]4\f[R] is special; when a fatal error occurs, dc(1) +always exits and returns \f[B]4\f[R], no matter what mode dc(1) is in. +.PP +The other statuses will only be returned when dc(1) is not in +interactive mode (see the \f[B]INTERACTIVE MODE\f[R] section), since +dc(1) resets its state (see the \f[B]RESET\f[R] section) and accepts +more input when one of those errors occurs in interactive mode. +This is also the case when interactive mode is forced by the +\f[B]\-i\f[R] flag or \f[B]\-\-interactive\f[R] option. +.PP +These exit statuses allow dc(1) to be used in shell scripting with error +checking, and its normal behavior can be forced by using the +\f[B]\-i\f[R] flag or \f[B]\-\-interactive\f[R] option. +.SH INTERACTIVE MODE +Like bc(1), dc(1) has an interactive mode and a non\-interactive mode. +Interactive mode is turned on automatically when both \f[B]stdin\f[R] +and \f[B]stdout\f[R] are hooked to a terminal, but the \f[B]\-i\f[R] +flag and \f[B]\-\-interactive\f[R] option can turn it on in other +situations. +.PP +In interactive mode, dc(1) attempts to recover from errors (see the +\f[B]RESET\f[R] section), and in normal execution, flushes +\f[B]stdout\f[R] as soon as execution is done for the current input. +dc(1) may also reset on \f[B]SIGINT\f[R] instead of exit, depending on +the contents of, or default for, the \f[B]DC_SIGINT_RESET\f[R] +environment variable (see the \f[B]ENVIRONMENT VARIABLES\f[R] section). +.SH TTY MODE +If \f[B]stdin\f[R], \f[B]stdout\f[R], and \f[B]stderr\f[R] are all +connected to a TTY, then \[lq]TTY mode\[rq] is considered to be +available, and thus, dc(1) can turn on TTY mode, subject to some +settings. +.PP +If there is the environment variable \f[B]DC_TTY_MODE\f[R] in the +environment (see the \f[B]ENVIRONMENT VARIABLES\f[R] section), then if +that environment variable contains a non\-zero integer, dc(1) will turn +on TTY mode when \f[B]stdin\f[R], \f[B]stdout\f[R], and \f[B]stderr\f[R] +are all connected to a TTY. +If the \f[B]DC_TTY_MODE\f[R] environment variable exists but is +\f[I]not\f[R] a non\-zero integer, then dc(1) will not turn TTY mode on. +.PP +If the environment variable \f[B]DC_TTY_MODE\f[R] does \f[I]not\f[R] +exist, the default setting is used. +The default setting can be queried with the \f[B]\-h\f[R] or +\f[B]\-\-help\f[R] options. +.PP +TTY mode is different from interactive mode because interactive mode is +required in the bc(1) specification (see the \f[B]STANDARDS\f[R] +section), and interactive mode requires only \f[B]stdin\f[R] and +\f[B]stdout\f[R] to be connected to a terminal. +.SS Prompt +If TTY mode is available, then a prompt can be enabled. +Like TTY mode itself, it can be turned on or off with an environment +variable: \f[B]DC_PROMPT\f[R] (see the \f[B]ENVIRONMENT VARIABLES\f[R] +section). +.PP +If the environment variable \f[B]DC_PROMPT\f[R] exists and is a +non\-zero integer, then the prompt is turned on when \f[B]stdin\f[R], +\f[B]stdout\f[R], and \f[B]stderr\f[R] are connected to a TTY and the +\f[B]\-P\f[R] and \f[B]\-\-no\-prompt\f[R] options were not used. +The read prompt will be turned on under the same conditions, except that +the \f[B]\-R\f[R] and \f[B]\-\-no\-read\-prompt\f[R] options must also +not be used. +.PP +However, if \f[B]DC_PROMPT\f[R] does not exist, the prompt can be +enabled or disabled with the \f[B]DC_TTY_MODE\f[R] environment variable, +the \f[B]\-P\f[R] and \f[B]\-\-no\-prompt\f[R] options, and the +\f[B]\-R\f[R] and \f[B]\-\-no\-read\-prompt\f[R] options. +See the \f[B]ENVIRONMENT VARIABLES\f[R] and \f[B]OPTIONS\f[R] sections +for more details. +.SH SIGNAL HANDLING +Sending a \f[B]SIGINT\f[R] will cause dc(1) to do one of two things. +.PP +If dc(1) is not in interactive mode (see the \f[B]INTERACTIVE MODE\f[R] +section), or the \f[B]DC_SIGINT_RESET\f[R] environment variable (see the +\f[B]ENVIRONMENT VARIABLES\f[R] section), or its default, is either not +an integer or it is zero, dc(1) will exit. +.PP +However, if dc(1) is in interactive mode, and the +\f[B]DC_SIGINT_RESET\f[R] or its default is an integer and non\-zero, +then dc(1) will stop executing the current input and reset (see the +\f[B]RESET\f[R] section) upon receiving a \f[B]SIGINT\f[R]. +.PP +Note that \[lq]current input\[rq] can mean one of two things. +If dc(1) is processing input from \f[B]stdin\f[R] in interactive mode, +it will ask for more input. +If dc(1) is processing input from a file in interactive mode, it will +stop processing the file and start processing the next file, if one +exists, or ask for input from \f[B]stdin\f[R] if no other file exists. +.PP +This means that if a \f[B]SIGINT\f[R] is sent to dc(1) as it is +executing a file, it can seem as though dc(1) did not respond to the +signal since it will immediately start executing the next file. +This is by design; most files that users execute when interacting with +dc(1) have function definitions, which are quick to parse. +If a file takes a long time to execute, there may be a bug in that file. +The rest of the files could still be executed without problem, allowing +the user to continue. +.PP +\f[B]SIGTERM\f[R] and \f[B]SIGQUIT\f[R] cause dc(1) to clean up and +exit, and it uses the default handler for all other signals. +.SH LOCALES +This dc(1) ships with support for adding error messages for different +locales and thus, supports \f[B]LC_MESSAGES\f[R]. +.SH SEE ALSO +bc(1) +.SH STANDARDS +The dc(1) utility operators and some behavior are compliant with the +operators in the IEEE Std 1003.1\-2017 (\[lq]POSIX.1\-2017\[rq]) bc(1) +specification at +https://pubs.opengroup.org/onlinepubs/9699919799/utilities/bc.html . +.SH BUGS +None are known. +Report bugs at https://github.com/gavinhoward/bc . +.SH AUTHOR +Gavin D. Howard \c +.MT gavin@gavinhoward.com +.ME \c +\ and contributors. diff --git a/static/freebsd/man1/HN.1 b/static/freebsd/man1/HN.1 new file mode 100644 index 00000000..ebc4292b --- /dev/null +++ b/static/freebsd/man1/HN.1 @@ -0,0 +1,1668 @@ +.\" +.\" SPDX-License-Identifier: BSD-2-Clause +.\" +.\" Copyright (c) 2018-2025 Gavin D. Howard and contributors. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions are met: +.\" +.\" * Redistributions of source code must retain the above copyright notice, +.\" this list of conditions and the following disclaimer. +.\" +.\" * Redistributions in binary form must reproduce the above copyright notice, +.\" this list of conditions and the following disclaimer in the documentation +.\" and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +.\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +.\" LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +.\" POSSIBILITY OF SUCH DAMAGE. +.\" +.TH "DC" "1" "August 2024" "Gavin D. Howard" "General Commands Manual" +.nh +.ad l +.SH Name +dc \- arbitrary\-precision decimal reverse\-Polish notation calculator +.SH SYNOPSIS +\f[B]dc\f[R] [\f[B]\-cChiPRvVx\f[R]] [\f[B]\-\-version\f[R]] +[\f[B]\-\-help\f[R]] [\f[B]\-\-digit\-clamp\f[R]] +[\f[B]\-\-no\-digit\-clamp\f[R]] [\f[B]\-\-interactive\f[R]] +[\f[B]\-\-no\-prompt\f[R]] [\f[B]\-\-no\-read\-prompt\f[R]] +[\f[B]\-\-extended\-register\f[R]] [\f[B]\-e\f[R] \f[I]expr\f[R]] +[\f[B]\-\-expression\f[R]=\f[I]expr\f[R]\&...] +[\f[B]\-f\f[R] \f[I]file\f[R]\&...] +[\f[B]\-\-file\f[R]=\f[I]file\f[R]\&...] +[\f[I]file\f[R]\&...] +[\f[B]\-I\f[R] \f[I]ibase\f[R]] [\f[B]\-\-ibase\f[R]=\f[I]ibase\f[R]] +[\f[B]\-O\f[R] \f[I]obase\f[R]] [\f[B]\-\-obase\f[R]=\f[I]obase\f[R]] +[\f[B]\-S\f[R] \f[I]scale\f[R]] [\f[B]\-\-scale\f[R]=\f[I]scale\f[R]] +[\f[B]\-E\f[R] \f[I]seed\f[R]] [\f[B]\-\-seed\f[R]=\f[I]seed\f[R]] +.SH DESCRIPTION +dc(1) is an arbitrary\-precision calculator. +It uses a stack (reverse Polish notation) to store numbers and results +of computations. +Arithmetic operations pop arguments off of the stack and push the +results. +.PP +If no files are given on the command\-line, then dc(1) reads from +\f[B]stdin\f[R] (see the \f[B]STDIN\f[R] section). +Otherwise, those files are processed, and dc(1) will then exit. +.PP +If a user wants to set up a standard environment, they can use +\f[B]DC_ENV_ARGS\f[R] (see the \f[B]ENVIRONMENT VARIABLES\f[R] section). +For example, if a user wants the \f[B]scale\f[R] always set to +\f[B]10\f[R], they can set \f[B]DC_ENV_ARGS\f[R] to \f[B]\-e 10k\f[R], +and this dc(1) will always start with a \f[B]scale\f[R] of \f[B]10\f[R]. +.SH OPTIONS +The following are the options that dc(1) accepts. +.TP +\f[B]\-C\f[R], \f[B]\-\-no\-digit\-clamp\f[R] +Disables clamping of digits greater than or equal to the current +\f[B]ibase\f[R] when parsing numbers. +.RS +.PP +This means that the value added to a number from a digit is always that +digit\[cq]s value multiplied by the value of ibase raised to the power +of the digit\[cq]s position, which starts from 0 at the least +significant digit. +.PP +If this and/or the \f[B]\-c\f[R] or \f[B]\-\-digit\-clamp\f[R] options +are given multiple times, the last one given is used. +.PP +This option overrides the \f[B]DC_DIGIT_CLAMP\f[R] environment variable +(see the \f[B]ENVIRONMENT VARIABLES\f[R] section) and the default, which +can be queried with the \f[B]\-h\f[R] or \f[B]\-\-help\f[R] options. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-c\f[R], \f[B]\-\-digit\-clamp\f[R] +Enables clamping of digits greater than or equal to the current +\f[B]ibase\f[R] when parsing numbers. +.RS +.PP +This means that digits that the value added to a number from a digit +that is greater than or equal to the ibase is the value of ibase minus 1 +all multiplied by the value of ibase raised to the power of the +digit\[cq]s position, which starts from 0 at the least significant +digit. +.PP +If this and/or the \f[B]\-C\f[R] or \f[B]\-\-no\-digit\-clamp\f[R] +options are given multiple times, the last one given is used. +.PP +This option overrides the \f[B]DC_DIGIT_CLAMP\f[R] environment variable +(see the \f[B]ENVIRONMENT VARIABLES\f[R] section) and the default, which +can be queried with the \f[B]\-h\f[R] or \f[B]\-\-help\f[R] options. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-E\f[R] \f[I]seed\f[R], \f[B]\-\-seed\f[R]=\f[I]seed\f[R] +Sets the builtin variable \f[B]seed\f[R] to the value \f[I]seed\f[R] +assuming that \f[I]seed\f[R] is in base 10. +It is a fatal error if \f[I]seed\f[R] is not a valid number. +.RS +.PP +If multiple instances of this option are given, the last is used. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-e\f[R] \f[I]expr\f[R], \f[B]\-\-expression\f[R]=\f[I]expr\f[R] +Evaluates \f[I]expr\f[R]. +If multiple expressions are given, they are evaluated in order. +If files are given as well (see below), the expressions and files are +evaluated in the order given. +This means that if a file is given before an expression, the file is +read in and evaluated first. +.RS +.PP +If this option is given on the command\-line (i.e., not in +\f[B]DC_ENV_ARGS\f[R], see the \f[B]ENVIRONMENT VARIABLES\f[R] section), +then after processing all expressions and files, dc(1) will exit, unless +\f[B]\-\f[R] (\f[B]stdin\f[R]) was given as an argument at least once to +\f[B]\-f\f[R] or \f[B]\-\-file\f[R], whether on the command\-line or in +\f[B]DC_ENV_ARGS\f[R]. +However, if any other \f[B]\-e\f[R], \f[B]\-\-expression\f[R], +\f[B]\-f\f[R], or \f[B]\-\-file\f[R] arguments are given after +\f[B]\-f\-\f[R] or equivalent is given, dc(1) will give a fatal error +and exit. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-f\f[R] \f[I]file\f[R], \f[B]\-\-file\f[R]=\f[I]file\f[R] +Reads in \f[I]file\f[R] and evaluates it, line by line, as though it +were read through \f[B]stdin\f[R]. +If expressions are also given (see above), the expressions are evaluated +in the order given. +.RS +.PP +If this option is given on the command\-line (i.e., not in +\f[B]DC_ENV_ARGS\f[R], see the \f[B]ENVIRONMENT VARIABLES\f[R] section), +then after processing all expressions and files, dc(1) will exit, unless +\f[B]\-\f[R] (\f[B]stdin\f[R]) was given as an argument at least once to +\f[B]\-f\f[R] or \f[B]\-\-file\f[R]. +However, if any other \f[B]\-e\f[R], \f[B]\-\-expression\f[R], +\f[B]\-f\f[R], or \f[B]\-\-file\f[R] arguments are given after +\f[B]\-f\-\f[R] or equivalent is given, dc(1) will give a fatal error +and exit. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-h\f[R], \f[B]\-\-help\f[R] +Prints a usage message and exits. +.TP +\f[B]\-I\f[R] \f[I]ibase\f[R], \f[B]\-\-ibase\f[R]=\f[I]ibase\f[R] +Sets the builtin variable \f[B]ibase\f[R] to the value \f[I]ibase\f[R] +assuming that \f[I]ibase\f[R] is in base 10. +It is a fatal error if \f[I]ibase\f[R] is not a valid number. +.RS +.PP +If multiple instances of this option are given, the last is used. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-i\f[R], \f[B]\-\-interactive\f[R] +Forces interactive mode. +(See the \f[B]INTERACTIVE MODE\f[R] section.) +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-L\f[R], \f[B]\-\-no\-line\-length\f[R] +Disables line length checking and prints numbers without backslashes and +newlines. +In other words, this option sets \f[B]BC_LINE_LENGTH\f[R] to \f[B]0\f[R] +(see the \f[B]ENVIRONMENT VARIABLES\f[R] section). +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-O\f[R] \f[I]obase\f[R], \f[B]\-\-obase\f[R]=\f[I]obase\f[R] +Sets the builtin variable \f[B]obase\f[R] to the value \f[I]obase\f[R] +assuming that \f[I]obase\f[R] is in base 10. +It is a fatal error if \f[I]obase\f[R] is not a valid number. +.RS +.PP +If multiple instances of this option are given, the last is used. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-P\f[R], \f[B]\-\-no\-prompt\f[R] +Disables the prompt in TTY mode. +(The prompt is only enabled in TTY mode. +See the \f[B]TTY MODE\f[R] section.) +This is mostly for those users that do not want a prompt or are not used +to having them in dc(1). +Most of those users would want to put this option in +\f[B]DC_ENV_ARGS\f[R]. +.RS +.PP +These options override the \f[B]DC_PROMPT\f[R] and \f[B]DC_TTY_MODE\f[R] +environment variables (see the \f[B]ENVIRONMENT VARIABLES\f[R] section). +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-R\f[R], \f[B]\-\-no\-read\-prompt\f[R] +Disables the read prompt in TTY mode. +(The read prompt is only enabled in TTY mode. +See the \f[B]TTY MODE\f[R] section.) +This is mostly for those users that do not want a read prompt or are not +used to having them in dc(1). +Most of those users would want to put this option in +\f[B]BC_ENV_ARGS\f[R] (see the \f[B]ENVIRONMENT VARIABLES\f[R] section). +This option is also useful in hash bang lines of dc(1) scripts that +prompt for user input. +.RS +.PP +This option does not disable the regular prompt because the read prompt +is only used when the \f[B]?\f[R] command is used. +.PP +These options \f[I]do\f[R] override the \f[B]DC_PROMPT\f[R] and +\f[B]DC_TTY_MODE\f[R] environment variables (see the \f[B]ENVIRONMENT +VARIABLES\f[R] section), but only for the read prompt. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-S\f[R] \f[I]scale\f[R], \f[B]\-\-scale\f[R]=\f[I]scale\f[R] +Sets the builtin variable \f[B]scale\f[R] to the value \f[I]scale\f[R] +assuming that \f[I]scale\f[R] is in base 10. +It is a fatal error if \f[I]scale\f[R] is not a valid number. +.RS +.PP +If multiple instances of this option are given, the last is used. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-v\f[R], \f[B]\-V\f[R], \f[B]\-\-version\f[R] +Print the version information (copyright header) and exits. +.TP +\f[B]\-x\f[R] \f[B]\-\-extended\-register\f[R] +Enables extended register mode. +See the \f[I]Extended Register Mode\f[R] subsection of the +\f[B]REGISTERS\f[R] section for more information. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-z\f[R], \f[B]\-\-leading\-zeroes\f[R] +Makes dc(1) print all numbers greater than \f[B]\-1\f[R] and less than +\f[B]1\f[R], and not equal to \f[B]0\f[R], with a leading zero. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.PP +All long options are \f[B]non\-portable extensions\f[R]. +.SH STDIN +If no files are given on the command\-line and no files or expressions +are given by the \f[B]\-f\f[R], \f[B]\-\-file\f[R], \f[B]\-e\f[R], or +\f[B]\-\-expression\f[R] options, then dc(1) reads from \f[B]stdin\f[R]. +.PP +However, there is a caveat to this. +.PP +First, \f[B]stdin\f[R] is evaluated a line at a time. +The only exception to this is if a string has been finished, but not +ended. +This means that, except for escaped brackets, all brackets must be +balanced before dc(1) parses and executes. +.SH STDOUT +Any non\-error output is written to \f[B]stdout\f[R]. +In addition, if history (see the \f[B]HISTORY\f[R] section) and the +prompt (see the \f[B]TTY MODE\f[R] section) are enabled, both are output +to \f[B]stdout\f[R]. +.PP +\f[B]Note\f[R]: Unlike other dc(1) implementations, this dc(1) will +issue a fatal error (see the \f[B]EXIT STATUS\f[R] section) if it cannot +write to \f[B]stdout\f[R], so if \f[B]stdout\f[R] is closed, as in +\f[B]dc >&\-\f[R], it will quit with an error. +This is done so that dc(1) can report problems when \f[B]stdout\f[R] is +redirected to a file. +.PP +If there are scripts that depend on the behavior of other dc(1) +implementations, it is recommended that those scripts be changed to +redirect \f[B]stdout\f[R] to \f[B]/dev/null\f[R]. +.SH STDERR +Any error output is written to \f[B]stderr\f[R]. +.PP +\f[B]Note\f[R]: Unlike other dc(1) implementations, this dc(1) will +issue a fatal error (see the \f[B]EXIT STATUS\f[R] section) if it cannot +write to \f[B]stderr\f[R], so if \f[B]stderr\f[R] is closed, as in +\f[B]dc 2>&\-\f[R], it will quit with an error. +This is done so that dc(1) can exit with an error code when +\f[B]stderr\f[R] is redirected to a file. +.PP +If there are scripts that depend on the behavior of other dc(1) +implementations, it is recommended that those scripts be changed to +redirect \f[B]stderr\f[R] to \f[B]/dev/null\f[R]. +.SH SYNTAX +Each item in the input source code, either a number (see the +\f[B]NUMBERS\f[R] section) or a command (see the \f[B]COMMANDS\f[R] +section), is processed and executed, in order. +Input is processed immediately when entered. +.PP +\f[B]ibase\f[R] is a register (see the \f[B]REGISTERS\f[R] section) that +determines how to interpret constant numbers. +It is the \[lq]input\[rq] base, or the number base used for interpreting +input numbers. +\f[B]ibase\f[R] is initially \f[B]10\f[R]. +The max allowable value for \f[B]ibase\f[R] is \f[B]16\f[R]. +The min allowable value for \f[B]ibase\f[R] is \f[B]2\f[R]. +The max allowable value for \f[B]ibase\f[R] can be queried in dc(1) +programs with the \f[B]T\f[R] command. +.PP +\f[B]obase\f[R] is a register (see the \f[B]REGISTERS\f[R] section) that +determines how to output results. +It is the \[lq]output\[rq] base, or the number base used for outputting +numbers. +\f[B]obase\f[R] is initially \f[B]10\f[R]. +The max allowable value for \f[B]obase\f[R] is \f[B]DC_BASE_MAX\f[R] and +can be queried with the \f[B]U\f[R] command. +The min allowable value for \f[B]obase\f[R] is \f[B]0\f[R]. +If \f[B]obase\f[R] is \f[B]0\f[R], values are output in scientific +notation, and if \f[B]obase\f[R] is \f[B]1\f[R], values are output in +engineering notation. +Otherwise, values are output in the specified base. +.PP +Outputting in scientific and engineering notations are +\f[B]non\-portable extensions\f[R]. +.PP +The \f[I]scale\f[R] of an expression is the number of digits in the +result of the expression right of the decimal point, and \f[B]scale\f[R] +is a register (see the \f[B]REGISTERS\f[R] section) that sets the +precision of any operations (with exceptions). +\f[B]scale\f[R] is initially \f[B]0\f[R]. +\f[B]scale\f[R] cannot be negative. +The max allowable value for \f[B]scale\f[R] can be queried in dc(1) +programs with the \f[B]V\f[R] command. +.PP +\f[B]seed\f[R] is a register containing the current seed for the +pseudo\-random number generator. +If the current value of \f[B]seed\f[R] is queried and stored, then if it +is assigned to \f[B]seed\f[R] later, the pseudo\-random number generator +is guaranteed to produce the same sequence of pseudo\-random numbers +that were generated after the value of \f[B]seed\f[R] was first queried. +.PP +Multiple values assigned to \f[B]seed\f[R] can produce the same sequence +of pseudo\-random numbers. +Likewise, when a value is assigned to \f[B]seed\f[R], it is not +guaranteed that querying \f[B]seed\f[R] immediately after will return +the same value. +In addition, the value of \f[B]seed\f[R] will change after any call to +the \f[B]\[cq]\f[R] command or the \f[B]\[lq]\f[R] command that does not +get receive a value of \f[B]0\f[R] or \f[B]1\f[R]. +The maximum integer returned by the \f[B]\[cq]\f[R] command can be +queried with the \f[B]W\f[R] command. +.PP +\f[B]Note\f[R]: The values returned by the pseudo\-random number +generator with the \f[B]\[cq]\f[R] and \f[B]\[lq]\f[R] commands are +guaranteed to \f[B]NOT\f[R] be cryptographically secure. +This is a consequence of using a seeded pseudo\-random number generator. +However, they \f[I]are\f[R] guaranteed to be reproducible with identical +\f[B]seed\f[R] values. +This means that the pseudo\-random values from dc(1) should only be used +where a reproducible stream of pseudo\-random numbers is +\f[I]ESSENTIAL\f[R]. +In any other case, use a non\-seeded pseudo\-random number generator. +.PP +The pseudo\-random number generator, \f[B]seed\f[R], and all associated +operations are \f[B]non\-portable extensions\f[R]. +.SS Comments +Comments go from \f[B]#\f[R] until, and not including, the next newline. +This is a \f[B]non\-portable extension\f[R]. +.SH NUMBERS +Numbers are strings made up of digits, uppercase letters up to +\f[B]F\f[R], and at most \f[B]1\f[R] period for a radix. +Numbers can have up to \f[B]DC_NUM_MAX\f[R] digits. +Uppercase letters are equal to \f[B]9\f[R] plus their position in the +alphabet (i.e., \f[B]A\f[R] equals \f[B]10\f[R], or \f[B]9+1\f[R]). +.PP +If a digit or letter makes no sense with the current value of +\f[B]ibase\f[R] (i.e., they are greater than or equal to the current +value of \f[B]ibase\f[R]), then the behavior depends on the existence of +the \f[B]\-c\f[R]/\f[B]\-\-digit\-clamp\f[R] or +\f[B]\-C\f[R]/\f[B]\-\-no\-digit\-clamp\f[R] options (see the +\f[B]OPTIONS\f[R] section), the existence and setting of the +\f[B]DC_DIGIT_CLAMP\f[R] environment variable (see the \f[B]ENVIRONMENT +VARIABLES\f[R] section), or the default, which can be queried with the +\f[B]\-h\f[R]/\f[B]\-\-help\f[R] option. +.PP +If clamping is off, then digits or letters that are greater than or +equal to the current value of \f[B]ibase\f[R] are not changed. +Instead, their given value is multiplied by the appropriate power of +\f[B]ibase\f[R] and added into the number. +This means that, with an \f[B]ibase\f[R] of \f[B]3\f[R], the number +\f[B]AB\f[R] is equal to \f[B]3\[ha]1*A+3\[ha]0*B\f[R], which is +\f[B]3\f[R] times \f[B]10\f[R] plus \f[B]11\f[R], or \f[B]41\f[R]. +.PP +If clamping is on, then digits or letters that are greater than or equal +to the current value of \f[B]ibase\f[R] are set to the value of the +highest valid digit in \f[B]ibase\f[R] before being multiplied by the +appropriate power of \f[B]ibase\f[R] and added into the number. +This means that, with an \f[B]ibase\f[R] of \f[B]3\f[R], the number +\f[B]AB\f[R] is equal to \f[B]3\[ha]1*2+3\[ha]0*2\f[R], which is +\f[B]3\f[R] times \f[B]2\f[R] plus \f[B]2\f[R], or \f[B]8\f[R]. +.PP +There is one exception to clamping: single\-character numbers (i.e., +\f[B]A\f[R] alone). +Such numbers are never clamped and always take the value they would have +in the highest possible \f[B]ibase\f[R]. +This means that \f[B]A\f[R] alone always equals decimal \f[B]10\f[R] and +\f[B]Z\f[R] alone always equals decimal \f[B]35\f[R]. +This behavior is mandated by the standard for bc(1) (see the STANDARDS +section) and is meant to provide an easy way to set the current +\f[B]ibase\f[R] (with the \f[B]i\f[R] command) regardless of the current +value of \f[B]ibase\f[R]. +.PP +If clamping is on, and the clamped value of a character is needed, use a +leading zero, i.e., for \f[B]A\f[R], use \f[B]0A\f[R]. +.PP +In addition, dc(1) accepts numbers in scientific notation. +These have the form \f[B]e\f[R]. +The exponent (the portion after the \f[B]e\f[R]) must be an integer. +An example is \f[B]1.89237e9\f[R], which is equal to +\f[B]1892370000\f[R]. +Negative exponents are also allowed, so \f[B]4.2890e_3\f[R] is equal to +\f[B]0.0042890\f[R]. +.PP +\f[B]WARNING\f[R]: Both the number and the exponent in scientific +notation are interpreted according to the current \f[B]ibase\f[R], but +the number is still multiplied by \f[B]10\[ha]exponent\f[R] regardless +of the current \f[B]ibase\f[R]. +For example, if \f[B]ibase\f[R] is \f[B]16\f[R] and dc(1) is given the +number string \f[B]FFeA\f[R], the resulting decimal number will be +\f[B]2550000000000\f[R], and if dc(1) is given the number string +\f[B]10e_4\f[R], the resulting decimal number will be \f[B]0.0016\f[R]. +.PP +Accepting input as scientific notation is a \f[B]non\-portable +extension\f[R]. +.SH COMMANDS +The valid commands are listed below. +.SS Printing +These commands are used for printing. +.PP +Note that both scientific notation and engineering notation are +available for printing numbers. +Scientific notation is activated by assigning \f[B]0\f[R] to +\f[B]obase\f[R] using \f[B]0o\f[R], and engineering notation is +activated by assigning \f[B]1\f[R] to \f[B]obase\f[R] using +\f[B]1o\f[R]. +To deactivate them, just assign a different value to \f[B]obase\f[R]. +.PP +Printing numbers in scientific notation and/or engineering notation is a +\f[B]non\-portable extension\f[R]. +.TP +\f[B]p\f[R] +Prints the value on top of the stack, whether number or string, and +prints a newline after. +.RS +.PP +This does not alter the stack. +.RE +.TP +\f[B]n\f[R] +Prints the value on top of the stack, whether number or string, and pops +it off of the stack. +.TP +\f[B]P\f[R] +Pops a value off the stack. +.RS +.PP +If the value is a number, it is truncated and the absolute value of the +result is printed as though \f[B]obase\f[R] is \f[B]256\f[R] and each +digit is interpreted as an 8\-bit ASCII character, making it a byte +stream. +.PP +If the value is a string, it is printed without a trailing newline. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]f\f[R] +Prints the entire contents of the stack, in order from newest to oldest, +without altering anything. +.RS +.PP +Users should use this command when they get lost. +.RE +.SS Arithmetic +These are the commands used for arithmetic. +.TP +\f[B]+\f[R] +The top two values are popped off the stack, added, and the result is +pushed onto the stack. +The \f[I]scale\f[R] of the result is equal to the max \f[I]scale\f[R] of +both operands. +.TP +\f[B]\-\f[R] +The top two values are popped off the stack, subtracted, and the result +is pushed onto the stack. +The \f[I]scale\f[R] of the result is equal to the max \f[I]scale\f[R] of +both operands. +.TP +\f[B]*\f[R] +The top two values are popped off the stack, multiplied, and the result +is pushed onto the stack. +If \f[B]a\f[R] is the \f[I]scale\f[R] of the first expression and +\f[B]b\f[R] is the \f[I]scale\f[R] of the second expression, the +\f[I]scale\f[R] of the result is equal to +\f[B]min(a+b,max(scale,a,b))\f[R] where \f[B]min()\f[R] and +\f[B]max()\f[R] return the obvious values. +.TP +\f[B]/\f[R] +The top two values are popped off the stack, divided, and the result is +pushed onto the stack. +The \f[I]scale\f[R] of the result is equal to \f[B]scale\f[R]. +.RS +.PP +The first value popped off of the stack must be non\-zero. +.RE +.TP +\f[B]%\f[R] +The top two values are popped off the stack, remaindered, and the result +is pushed onto the stack. +.RS +.PP +Remaindering is equivalent to 1) Computing \f[B]a/b\f[R] to current +\f[B]scale\f[R], and 2) Using the result of step 1 to calculate +\f[B]a\-(a/b)*b\f[R] to \f[I]scale\f[R] +\f[B]max(scale+scale(b),scale(a))\f[R]. +.PP +The first value popped off of the stack must be non\-zero. +.RE +.TP +\f[B]\[ti]\f[R] +The top two values are popped off the stack, divided and remaindered, +and the results (divided first, remainder second) are pushed onto the +stack. +This is equivalent to \f[B]x y / x y %\f[R] except that \f[B]x\f[R] and +\f[B]y\f[R] are only evaluated once. +.RS +.PP +The first value popped off of the stack must be non\-zero. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\[ha]\f[R] +The top two values are popped off the stack, the second is raised to the +power of the first, and the result is pushed onto the stack. +The \f[I]scale\f[R] of the result is equal to \f[B]scale\f[R]. +.RS +.PP +The first value popped off of the stack must be an integer, and if that +value is negative, the second value popped off of the stack must be +non\-zero. +.RE +.TP +\f[B]v\f[R] +The top value is popped off the stack, its square root is computed, and +the result is pushed onto the stack. +The \f[I]scale\f[R] of the result is equal to \f[B]scale\f[R]. +.RS +.PP +The value popped off of the stack must be non\-negative. +.RE +.TP +\f[B]_\f[R] +If this command \f[I]immediately\f[R] precedes a number (i.e., no spaces +or other commands), then that number is input as a negative number. +.RS +.PP +Otherwise, the top value on the stack is popped and copied, and the copy +is negated and pushed onto the stack. +This behavior without a number is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]b\f[R] +The top value is popped off the stack, and if it is zero, it is pushed +back onto the stack. +Otherwise, its absolute value is pushed onto the stack. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]|\f[R] +The top three values are popped off the stack, a modular exponentiation +is computed, and the result is pushed onto the stack. +.RS +.PP +The first value popped is used as the reduction modulus and must be an +integer and non\-zero. +The second value popped is used as the exponent and must be an integer +and non\-negative. +The third value popped is the base and must be an integer. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]$\f[R] +The top value is popped off the stack and copied, and the copy is +truncated and pushed onto the stack. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\[at]\f[R] +The top two values are popped off the stack, and the precision of the +second is set to the value of the first, whether by truncation or +extension. +.RS +.PP +The first value popped off of the stack must be an integer and +non\-negative. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]H\f[R] +The top two values are popped off the stack, and the second is shifted +left (radix shifted right) to the value of the first. +.RS +.PP +The first value popped off of the stack must be an integer and +non\-negative. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]h\f[R] +The top two values are popped off the stack, and the second is shifted +right (radix shifted left) to the value of the first. +.RS +.PP +The first value popped off of the stack must be an integer and +non\-negative. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]G\f[R] +The top two values are popped off of the stack, they are compared, and a +\f[B]1\f[R] is pushed if they are equal, or \f[B]0\f[R] otherwise. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]N\f[R] +The top value is popped off of the stack, and if it a \f[B]0\f[R], a +\f[B]1\f[R] is pushed; otherwise, a \f[B]0\f[R] is pushed. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B](\f[R] +The top two values are popped off of the stack, they are compared, and a +\f[B]1\f[R] is pushed if the first is less than the second, or +\f[B]0\f[R] otherwise. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]{\f[R] +The top two values are popped off of the stack, they are compared, and a +\f[B]1\f[R] is pushed if the first is less than or equal to the second, +or \f[B]0\f[R] otherwise. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B])\f[R] +The top two values are popped off of the stack, they are compared, and a +\f[B]1\f[R] is pushed if the first is greater than the second, or +\f[B]0\f[R] otherwise. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]}\f[R] +The top two values are popped off of the stack, they are compared, and a +\f[B]1\f[R] is pushed if the first is greater than or equal to the +second, or \f[B]0\f[R] otherwise. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]M\f[R] +The top two values are popped off of the stack. +If they are both non\-zero, a \f[B]1\f[R] is pushed onto the stack. +If either of them is zero, or both of them are, then a \f[B]0\f[R] is +pushed onto the stack. +.RS +.PP +This is like the \f[B]&&\f[R] operator in bc(1), and it is \f[I]not\f[R] +a short\-circuit operator. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]m\f[R] +The top two values are popped off of the stack. +If at least one of them is non\-zero, a \f[B]1\f[R] is pushed onto the +stack. +If both of them are zero, then a \f[B]0\f[R] is pushed onto the stack. +.RS +.PP +This is like the \f[B]||\f[R] operator in bc(1), and it is \f[I]not\f[R] +a short\-circuit operator. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.SS Pseudo\-Random Number Generator +dc(1) has a built\-in pseudo\-random number generator. +These commands query the pseudo\-random number generator. +(See Parameters for more information about the \f[B]seed\f[R] value that +controls the pseudo\-random number generator.) +.PP +The pseudo\-random number generator is guaranteed to \f[B]NOT\f[R] be +cryptographically secure. +.TP +\f[B]\[cq]\f[R] +Generates an integer between 0 and \f[B]DC_RAND_MAX\f[R], inclusive (see +the \f[B]LIMITS\f[R] section). +.RS +.PP +The generated integer is made as unbiased as possible, subject to the +limitations of the pseudo\-random number generator. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\[lq]\f[R] +Pops a value off of the stack, which is used as an \f[B]exclusive\f[R] +upper bound on the integer that will be generated. +If the bound is negative or is a non\-integer, an error is raised, and +dc(1) resets (see the \f[B]RESET\f[R] section) while \f[B]seed\f[R] +remains unchanged. +If the bound is larger than \f[B]DC_RAND_MAX\f[R], the higher bound is +honored by generating several pseudo\-random integers, multiplying them +by appropriate powers of \f[B]DC_RAND_MAX+1\f[R], and adding them +together. +Thus, the size of integer that can be generated with this command is +unbounded. +Using this command will change the value of \f[B]seed\f[R], unless the +operand is \f[B]0\f[R] or \f[B]1\f[R]. +In that case, \f[B]0\f[R] is pushed onto the stack, and \f[B]seed\f[R] +is \f[I]not\f[R] changed. +.RS +.PP +The generated integer is made as unbiased as possible, subject to the +limitations of the pseudo\-random number generator. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.SS Stack Control +These commands control the stack. +.TP +\f[B]c\f[R] +Removes all items from (\[lq]clears\[rq]) the stack. +.TP +\f[B]d\f[R] +Copies the item on top of the stack (\[lq]duplicates\[rq]) and pushes +the copy onto the stack. +.TP +\f[B]r\f[R] +Swaps (\[lq]reverses\[rq]) the two top items on the stack. +.TP +\f[B]R\f[R] +Pops (\[lq]removes\[rq]) the top value from the stack. +.SS Register Control +These commands control registers (see the \f[B]REGISTERS\f[R] section). +.TP +\f[B]s\f[R]\f[I]r\f[R] +Pops the value off the top of the stack and stores it into register +\f[I]r\f[R]. +.TP +\f[B]l\f[R]\f[I]r\f[R] +Copies the value in register \f[I]r\f[R] and pushes it onto the stack. +This does not alter the contents of \f[I]r\f[R]. +.TP +\f[B]S\f[R]\f[I]r\f[R] +Pops the value off the top of the (main) stack and pushes it onto the +stack of register \f[I]r\f[R]. +The previous value of the register becomes inaccessible. +.TP +\f[B]L\f[R]\f[I]r\f[R] +Pops the value off the top of the stack for register \f[I]r\f[R] and +push it onto the main stack. +The previous value in the stack for register \f[I]r\f[R], if any, is now +accessible via the \f[B]l\f[R]\f[I]r\f[R] command. +.SS Parameters +These commands control the values of \f[B]ibase\f[R], \f[B]obase\f[R], +\f[B]scale\f[R], and \f[B]seed\f[R]. +Also see the \f[B]SYNTAX\f[R] section. +.TP +\f[B]i\f[R] +Pops the value off of the top of the stack and uses it to set +\f[B]ibase\f[R], which must be between \f[B]2\f[R] and \f[B]16\f[R], +inclusive. +.RS +.PP +If the value on top of the stack has any \f[I]scale\f[R], the +\f[I]scale\f[R] is ignored. +.RE +.TP +\f[B]o\f[R] +Pops the value off of the top of the stack and uses it to set +\f[B]obase\f[R], which must be between \f[B]0\f[R] and +\f[B]DC_BASE_MAX\f[R], inclusive (see the \f[B]LIMITS\f[R] section and +the \f[B]NUMBERS\f[R] section). +.RS +.PP +If the value on top of the stack has any \f[I]scale\f[R], the +\f[I]scale\f[R] is ignored. +.RE +.TP +\f[B]k\f[R] +Pops the value off of the top of the stack and uses it to set +\f[B]scale\f[R], which must be non\-negative. +.RS +.PP +If the value on top of the stack has any \f[I]scale\f[R], the +\f[I]scale\f[R] is ignored. +.RE +.TP +\f[B]j\f[R] +Pops the value off of the top of the stack and uses it to set +\f[B]seed\f[R]. +The meaning of \f[B]seed\f[R] is dependent on the current pseudo\-random +number generator but is guaranteed to not change except for new major +versions. +.RS +.PP +The \f[I]scale\f[R] and sign of the value may be significant. +.PP +If a previously used \f[B]seed\f[R] value is used again, the +pseudo\-random number generator is guaranteed to produce the same +sequence of pseudo\-random numbers as it did when the \f[B]seed\f[R] +value was previously used. +.PP +The exact value assigned to \f[B]seed\f[R] is not guaranteed to be +returned if the \f[B]J\f[R] command is used. +However, if \f[B]seed\f[R] \f[I]does\f[R] return a different value, both +values, when assigned to \f[B]seed\f[R], are guaranteed to produce the +same sequence of pseudo\-random numbers. +This means that certain values assigned to \f[B]seed\f[R] will not +produce unique sequences of pseudo\-random numbers. +.PP +There is no limit to the length (number of significant decimal digits) +or \f[I]scale\f[R] of the value that can be assigned to \f[B]seed\f[R]. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]I\f[R] +Pushes the current value of \f[B]ibase\f[R] onto the main stack. +.TP +\f[B]O\f[R] +Pushes the current value of \f[B]obase\f[R] onto the main stack. +.TP +\f[B]K\f[R] +Pushes the current value of \f[B]scale\f[R] onto the main stack. +.TP +\f[B]J\f[R] +Pushes the current value of \f[B]seed\f[R] onto the main stack. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]T\f[R] +Pushes the maximum allowable value of \f[B]ibase\f[R] onto the main +stack. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]U\f[R] +Pushes the maximum allowable value of \f[B]obase\f[R] onto the main +stack. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]V\f[R] +Pushes the maximum allowable value of \f[B]scale\f[R] onto the main +stack. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]W\f[R] +Pushes the maximum (inclusive) integer that can be generated with the +\f[B]\[cq]\f[R] pseudo\-random number generator command. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.SS Strings +The following commands control strings. +.PP +dc(1) can work with both numbers and strings, and registers (see the +\f[B]REGISTERS\f[R] section) can hold both strings and numbers. +dc(1) always knows whether the contents of a register are a string or a +number. +.PP +While arithmetic operations have to have numbers, and will print an +error if given a string, other commands accept strings. +.PP +Strings can also be executed as macros. +For example, if the string \f[B][1pR]\f[R] is executed as a macro, then +the code \f[B]1pR\f[R] is executed, meaning that the \f[B]1\f[R] will be +printed with a newline after and then popped from the stack. +.TP +\f[B][\f[R]\f[I]characters\f[R]\f[B]]\f[R] +Makes a string containing \f[I]characters\f[R] and pushes it onto the +stack. +.RS +.PP +If there are brackets (\f[B][\f[R] and \f[B]]\f[R]) in the string, then +they must be balanced. +Unbalanced brackets can be escaped using a backslash (\f[B]\[rs]\f[R]) +character. +.PP +If there is a backslash character in the string, the character after it +(even another backslash) is put into the string verbatim, but the +(first) backslash is not. +.RE +.TP +\f[B]a\f[R] +The value on top of the stack is popped. +.RS +.PP +If it is a number, it is truncated and its absolute value is taken. +The result mod \f[B]256\f[R] is calculated. +If that result is \f[B]0\f[R], push an empty string; otherwise, push a +one\-character string where the character is the result of the mod +interpreted as an ASCII character. +.PP +If it is a string, then a new string is made. +If the original string is empty, the new string is empty. +If it is not, then the first character of the original string is used to +create the new string as a one\-character string. +The new string is then pushed onto the stack. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]x\f[R] +Pops a value off of the top of the stack. +.RS +.PP +If it is a number, it is pushed back onto the stack. +.PP +If it is a string, it is executed as a macro. +.PP +This behavior is the norm whenever a macro is executed, whether by this +command or by the conditional execution commands below. +.RE +.TP +\f[B]>\f[R]\f[I]r\f[R] +Pops two values off of the stack that must be numbers and compares them. +If the first value is greater than the second, then the contents of +register \f[I]r\f[R] are executed. +.RS +.PP +For example, \f[B]0 1>a\f[R] will execute the contents of register +\f[B]a\f[R], and \f[B]1 0>a\f[R] will not. +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.RE +.TP +\f[B]>\f[R]\f[I]r\f[R]\f[B]e\f[R]\f[I]s\f[R] +Like the above, but will execute register \f[I]s\f[R] if the comparison +fails. +.RS +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]!>\f[R]\f[I]r\f[R] +Pops two values off of the stack that must be numbers and compares them. +If the first value is not greater than the second (less than or equal +to), then the contents of register \f[I]r\f[R] are executed. +.RS +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.RE +.TP +\f[B]!>\f[R]\f[I]r\f[R]\f[B]e\f[R]\f[I]s\f[R] +Like the above, but will execute register \f[I]s\f[R] if the comparison +fails. +.RS +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]<\f[R]\f[I]r\f[R] +Pops two values off of the stack that must be numbers and compares them. +If the first value is less than the second, then the contents of +register \f[I]r\f[R] are executed. +.RS +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.RE +.TP +\f[B]<\f[R]\f[I]r\f[R]\f[B]e\f[R]\f[I]s\f[R] +Like the above, but will execute register \f[I]s\f[R] if the comparison +fails. +.RS +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]!<\f[R]\f[I]r\f[R] +Pops two values off of the stack that must be numbers and compares them. +If the first value is not less than the second (greater than or equal +to), then the contents of register \f[I]r\f[R] are executed. +.RS +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.RE +.TP +\f[B]!<\f[R]\f[I]r\f[R]\f[B]e\f[R]\f[I]s\f[R] +Like the above, but will execute register \f[I]s\f[R] if the comparison +fails. +.RS +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]=\f[R]\f[I]r\f[R] +Pops two values off of the stack that must be numbers and compares them. +If the first value is equal to the second, then the contents of register +\f[I]r\f[R] are executed. +.RS +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.RE +.TP +\f[B]=\f[R]\f[I]r\f[R]\f[B]e\f[R]\f[I]s\f[R] +Like the above, but will execute register \f[I]s\f[R] if the comparison +fails. +.RS +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]!=\f[R]\f[I]r\f[R] +Pops two values off of the stack that must be numbers and compares them. +If the first value is not equal to the second, then the contents of +register \f[I]r\f[R] are executed. +.RS +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.RE +.TP +\f[B]!=\f[R]\f[I]r\f[R]\f[B]e\f[R]\f[I]s\f[R] +Like the above, but will execute register \f[I]s\f[R] if the comparison +fails. +.RS +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]?\f[R] +Reads a line from the \f[B]stdin\f[R] and executes it. +This is to allow macros to request input from users. +.TP +\f[B]q\f[R] +During execution of a macro, this exits the execution of that macro and +the execution of the macro that executed it. +If there are no macros, or only one macro executing, dc(1) exits. +.TP +\f[B]Q\f[R] +Pops a value from the stack which must be non\-negative and is used the +number of macro executions to pop off of the execution stack. +If the number of levels to pop is greater than the number of executing +macros, dc(1) exits. +.TP +\f[B],\f[R] +Pushes the depth of the execution stack onto the stack. +The execution stack is the stack of string executions. +The number that is pushed onto the stack is exactly as many as is needed +to make dc(1) exit with the \f[B]Q\f[R] command, so the sequence +\f[B],Q\f[R] will make dc(1) exit. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.SS Status +These commands query status of the stack or its top value. +.TP +\f[B]Z\f[R] +Pops a value off of the stack. +.RS +.PP +If it is a number, calculates the number of significant decimal digits +it has and pushes the result. +It will push \f[B]1\f[R] if the argument is \f[B]0\f[R] with no decimal +places. +.PP +If it is a string, pushes the number of characters the string has. +.RE +.TP +\f[B]X\f[R] +Pops a value off of the stack. +.RS +.PP +If it is a number, pushes the \f[I]scale\f[R] of the value onto the +stack. +.PP +If it is a string, pushes \f[B]0\f[R]. +.RE +.TP +\f[B]u\f[R] +Pops one value off of the stack. +If the value is a number, this pushes \f[B]1\f[R] onto the stack. +Otherwise (if it is a string), it pushes \f[B]0\f[R]. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]t\f[R] +Pops one value off of the stack. +If the value is a string, this pushes \f[B]1\f[R] onto the stack. +Otherwise (if it is a number), it pushes \f[B]0\f[R]. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]z\f[R] +Pushes the current depth of the stack (before execution of this command) +onto the stack. +.TP +\f[B]y\f[R]\f[I]r\f[R] +Pushes the current stack depth of the register \f[I]r\f[R] onto the main +stack. +.RS +.PP +Because each register has a depth of \f[B]1\f[R] (with the value +\f[B]0\f[R] in the top item) when dc(1) starts, dc(1) requires that each +register\[cq]s stack must always have at least one item; dc(1) will give +an error and reset otherwise (see the \f[B]RESET\f[R] section). +This means that this command will never push \f[B]0\f[R]. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.SS Arrays +These commands manipulate arrays. +.TP +\f[B]:\f[R]\f[I]r\f[R] +Pops the top two values off of the stack. +The second value will be stored in the array \f[I]r\f[R] (see the +\f[B]REGISTERS\f[R] section), indexed by the first value. +.TP +\f[B];\f[R]\f[I]r\f[R] +Pops the value on top of the stack and uses it as an index into the +array \f[I]r\f[R]. +The selected value is then pushed onto the stack. +.TP +\f[B]Y\f[R]\f[I]r\f[R] +Pushes the length of the array \f[I]r\f[R] onto the stack. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.SS Global Settings +These commands retrieve global settings. +These are the only commands that require multiple specific characters, +and all of them begin with the letter \f[B]g\f[R]. +Only the characters below are allowed after the character \f[B]g\f[R]; +any other character produces a parse error (see the \f[B]ERRORS\f[R] +section). +.TP +\f[B]gl\f[R] +Pushes the line length set by \f[B]DC_LINE_LENGTH\f[R] (see the +\f[B]ENVIRONMENT VARIABLES\f[R] section) onto the stack. +.TP +\f[B]gx\f[R] +Pushes \f[B]1\f[R] onto the stack if extended register mode is on, +\f[B]0\f[R] otherwise. +See the \f[I]Extended Register Mode\f[R] subsection of the +\f[B]REGISTERS\f[R] section for more information. +.TP +\f[B]gz\f[R] +Pushes \f[B]0\f[R] onto the stack if the leading zero setting has not +been enabled with the \f[B]\-z\f[R] or \f[B]\-\-leading\-zeroes\f[R] +options (see the \f[B]OPTIONS\f[R] section), non\-zero otherwise. +.SH REGISTERS +Registers are names that can store strings, numbers, and arrays. +(Number/string registers do not interfere with array registers.) +.PP +Each register is also its own stack, so the current register value is +the top of the stack for the register. +All registers, when first referenced, have one value (\f[B]0\f[R]) in +their stack, and it is a runtime error to attempt to pop that item off +of the register stack. +.PP +In non\-extended register mode, a register name is just the single +character that follows any command that needs a register name. +The only exceptions are: a newline (\f[B]`\[rs]n'\f[R]) and a left +bracket (\f[B]`['\f[R]); it is a parse error for a newline or a left +bracket to be used as a register name. +.SS Extended Register Mode +Unlike most other dc(1) implentations, this dc(1) provides nearly +unlimited amounts of registers, if extended register mode is enabled. +.PP +If extended register mode is enabled (\f[B]\-x\f[R] or +\f[B]\-\-extended\-register\f[R] command\-line arguments are given), +then normal single character registers are used \f[I]unless\f[R] the +character immediately following a command that needs a register name is +a space (according to \f[B]isspace()\f[R]) and not a newline +(\f[B]`\[rs]n'\f[R]). +.PP +In that case, the register name is found according to the regex +\f[B][a\-z][a\-z0\-9_]*\f[R] (like bc(1) identifiers), and it is a parse +error if the next non\-space characters do not match that regex. +.SH RESET +When dc(1) encounters an error or a signal that it has a non\-default +handler for, it resets. +This means that several things happen. +.PP +First, any macros that are executing are stopped and popped off the +execution stack. +The behavior is not unlike that of exceptions in programming languages. +Then the execution point is set so that any code waiting to execute +(after all macros returned) is skipped. +.PP +However, the stack of values is \f[I]not\f[R] cleared; in interactive +mode, users can inspect the stack and manipulate it. +.PP +Thus, when dc(1) resets, it skips any remaining code waiting to be +executed. +Then, if it is interactive mode, and the error was not a fatal error +(see the \f[B]EXIT STATUS\f[R] section), it asks for more input; +otherwise, it exits with the appropriate return code. +.SH PERFORMANCE +Most dc(1) implementations use \f[B]char\f[R] types to calculate the +value of \f[B]1\f[R] decimal digit at a time, but that can be slow. +This dc(1) does something different. +.PP +It uses large integers to calculate more than \f[B]1\f[R] decimal digit +at a time. +If built in a environment where \f[B]DC_LONG_BIT\f[R] (see the +\f[B]LIMITS\f[R] section) is \f[B]64\f[R], then each integer has +\f[B]9\f[R] decimal digits. +If built in an environment where \f[B]DC_LONG_BIT\f[R] is \f[B]32\f[R] +then each integer has \f[B]4\f[R] decimal digits. +This value (the number of decimal digits per large integer) is called +\f[B]DC_BASE_DIGS\f[R]. +.PP +In addition, this dc(1) uses an even larger integer for overflow +checking. +This integer type depends on the value of \f[B]DC_LONG_BIT\f[R], but is +always at least twice as large as the integer type used to store digits. +.SH LIMITS +The following are the limits on dc(1): +.TP +\f[B]DC_LONG_BIT\f[R] +The number of bits in the \f[B]long\f[R] type in the environment where +dc(1) was built. +This determines how many decimal digits can be stored in a single large +integer (see the \f[B]PERFORMANCE\f[R] section). +.TP +\f[B]DC_BASE_DIGS\f[R] +The number of decimal digits per large integer (see the +\f[B]PERFORMANCE\f[R] section). +Depends on \f[B]DC_LONG_BIT\f[R]. +.TP +\f[B]DC_BASE_POW\f[R] +The max decimal number that each large integer can store (see +\f[B]DC_BASE_DIGS\f[R]) plus \f[B]1\f[R]. +Depends on \f[B]DC_BASE_DIGS\f[R]. +.TP +\f[B]DC_OVERFLOW_MAX\f[R] +The max number that the overflow type (see the \f[B]PERFORMANCE\f[R] +section) can hold. +Depends on \f[B]DC_LONG_BIT\f[R]. +.TP +\f[B]DC_BASE_MAX\f[R] +The maximum output base. +Set at \f[B]DC_BASE_POW\f[R]. +.TP +\f[B]DC_DIM_MAX\f[R] +The maximum size of arrays. +Set at \f[B]SIZE_MAX\-1\f[R]. +.TP +\f[B]DC_SCALE_MAX\f[R] +The maximum \f[B]scale\f[R]. +Set at \f[B]DC_OVERFLOW_MAX\-1\f[R]. +.TP +\f[B]DC_STRING_MAX\f[R] +The maximum length of strings. +Set at \f[B]DC_OVERFLOW_MAX\-1\f[R]. +.TP +\f[B]DC_NAME_MAX\f[R] +The maximum length of identifiers. +Set at \f[B]DC_OVERFLOW_MAX\-1\f[R]. +.TP +\f[B]DC_NUM_MAX\f[R] +The maximum length of a number (in decimal digits), which includes +digits after the decimal point. +Set at \f[B]DC_OVERFLOW_MAX\-1\f[R]. +.TP +\f[B]DC_RAND_MAX\f[R] +The maximum integer (inclusive) returned by the \f[B]\[cq]\f[R] command, +if dc(1). +Set at \f[B]2\[ha]DC_LONG_BIT\-1\f[R]. +.TP +Exponent +The maximum allowable exponent (positive or negative). +Set at \f[B]DC_OVERFLOW_MAX\f[R]. +.TP +Number of vars +The maximum number of vars/arrays. +Set at \f[B]SIZE_MAX\-1\f[R]. +.PP +These limits are meant to be effectively non\-existent; the limits are +so large (at least on 64\-bit machines) that there should not be any +point at which they become a problem. +In fact, memory should be exhausted before these limits should be hit. +.SH ENVIRONMENT VARIABLES +As \f[B]non\-portable extensions\f[R], dc(1) recognizes the following +environment variables: +.TP +\f[B]DC_ENV_ARGS\f[R] +This is another way to give command\-line arguments to dc(1). +They should be in the same format as all other command\-line arguments. +These are always processed first, so any files given in +\f[B]DC_ENV_ARGS\f[R] will be processed before arguments and files given +on the command\-line. +This gives the user the ability to set up \[lq]standard\[rq] options and +files to be used at every invocation. +The most useful thing for such files to contain would be useful +functions that the user might want every time dc(1) runs. +Another use would be to use the \f[B]\-e\f[R] option to set +\f[B]scale\f[R] to a value other than \f[B]0\f[R]. +.RS +.PP +The code that parses \f[B]DC_ENV_ARGS\f[R] will correctly handle quoted +arguments, but it does not understand escape sequences. +For example, the string \f[B]\[lq]/home/gavin/some dc file.dc\[rq]\f[R] +will be correctly parsed, but the string \f[B]\[lq]/home/gavin/some +\[dq]dc\[dq] file.dc\[rq]\f[R] will include the backslashes. +.PP +The quote parsing will handle either kind of quotes, \f[B]\[cq]\f[R] or +\f[B]\[lq]\f[R]. +Thus, if you have a file with any number of single quotes in the name, +you can use double quotes as the outside quotes, as in \f[B]\[lq]some +`dc' file.dc\[rq]\f[R], and vice versa if you have a file with double +quotes. +However, handling a file with both kinds of quotes in +\f[B]DC_ENV_ARGS\f[R] is not supported due to the complexity of the +parsing, though such files are still supported on the command\-line +where the parsing is done by the shell. +.RE +.TP +\f[B]DC_LINE_LENGTH\f[R] +If this environment variable exists and contains an integer that is +greater than \f[B]1\f[R] and is less than \f[B]UINT16_MAX\f[R] +(\f[B]2\[ha]16\-1\f[R]), dc(1) will output lines to that length, +including the backslash newline combo. +The default line length is \f[B]70\f[R]. +.RS +.PP +The special value of \f[B]0\f[R] will disable line length checking and +print numbers without regard to line length and without backslashes and +newlines. +.RE +.TP +\f[B]DC_SIGINT_RESET\f[R] +If dc(1) is not in interactive mode (see the \f[B]INTERACTIVE MODE\f[R] +section), then this environment variable has no effect because dc(1) +exits on \f[B]SIGINT\f[R] when not in interactive mode. +.RS +.PP +However, when dc(1) is in interactive mode, then if this environment +variable exists and contains an integer, a non\-zero value makes dc(1) +reset on \f[B]SIGINT\f[R], rather than exit, and zero makes dc(1) exit. +If this environment variable exists and is \f[I]not\f[R] an integer, +then dc(1) will exit on \f[B]SIGINT\f[R]. +.PP +This environment variable overrides the default, which can be queried +with the \f[B]\-h\f[R] or \f[B]\-\-help\f[R] options. +.RE +.TP +\f[B]DC_TTY_MODE\f[R] +If TTY mode is \f[I]not\f[R] available (see the \f[B]TTY MODE\f[R] +section), then this environment variable has no effect. +.RS +.PP +However, when TTY mode is available, then if this environment variable +exists and contains an integer, then a non\-zero value makes dc(1) use +TTY mode, and zero makes dc(1) not use TTY mode. +.PP +This environment variable overrides the default, which can be queried +with the \f[B]\-h\f[R] or \f[B]\-\-help\f[R] options. +.RE +.TP +\f[B]DC_PROMPT\f[R] +If TTY mode is \f[I]not\f[R] available (see the \f[B]TTY MODE\f[R] +section), then this environment variable has no effect. +.RS +.PP +However, when TTY mode is available, then if this environment variable +exists and contains an integer, a non\-zero value makes dc(1) use a +prompt, and zero or a non\-integer makes dc(1) not use a prompt. +If this environment variable does not exist and \f[B]DC_TTY_MODE\f[R] +does, then the value of the \f[B]DC_TTY_MODE\f[R] environment variable +is used. +.PP +This environment variable and the \f[B]DC_TTY_MODE\f[R] environment +variable override the default, which can be queried with the +\f[B]\-h\f[R] or \f[B]\-\-help\f[R] options. +.RE +.TP +\f[B]DC_EXPR_EXIT\f[R] +If any expressions or expression files are given on the command\-line +with \f[B]\-e\f[R], \f[B]\-\-expression\f[R], \f[B]\-f\f[R], or +\f[B]\-\-file\f[R], then if this environment variable exists and +contains an integer, a non\-zero value makes dc(1) exit after executing +the expressions and expression files, and a zero value makes dc(1) not +exit. +.RS +.PP +This environment variable overrides the default, which can be queried +with the \f[B]\-h\f[R] or \f[B]\-\-help\f[R] options. +.RE +.TP +\f[B]DC_DIGIT_CLAMP\f[R] +When parsing numbers and if this environment variable exists and +contains an integer, a non\-zero value makes dc(1) clamp digits that are +greater than or equal to the current \f[B]ibase\f[R] so that all such +digits are considered equal to the \f[B]ibase\f[R] minus 1, and a zero +value disables such clamping so that those digits are always equal to +their value, which is multiplied by the power of the \f[B]ibase\f[R]. +.RS +.PP +This never applies to single\-digit numbers, as per the bc(1) standard +(see the \f[B]STANDARDS\f[R] section). +.PP +This environment variable overrides the default, which can be queried +with the \f[B]\-h\f[R] or \f[B]\-\-help\f[R] options. +.RE +.SH EXIT STATUS +dc(1) returns the following exit statuses: +.TP +\f[B]0\f[R] +No error. +.TP +\f[B]1\f[R] +A math error occurred. +This follows standard practice of using \f[B]1\f[R] for expected errors, +since math errors will happen in the process of normal execution. +.RS +.PP +Math errors include divide by \f[B]0\f[R], taking the square root of a +negative number, using a negative number as a bound for the +pseudo\-random number generator, attempting to convert a negative number +to a hardware integer, overflow when converting a number to a hardware +integer, overflow when calculating the size of a number, and attempting +to use a non\-integer where an integer is required. +.PP +Converting to a hardware integer happens for the second operand of the +power (\f[B]\[ha]\f[R]), places (\f[B]\[at]\f[R]), left shift +(\f[B]H\f[R]), and right shift (\f[B]h\f[R]) operators. +.RE +.TP +\f[B]2\f[R] +A parse error occurred. +.RS +.PP +Parse errors include unexpected \f[B]EOF\f[R], using an invalid +character, failing to find the end of a string or comment, and using a +token where it is invalid. +.RE +.TP +\f[B]3\f[R] +A runtime error occurred. +.RS +.PP +Runtime errors include assigning an invalid number to any global +(\f[B]ibase\f[R], \f[B]obase\f[R], or \f[B]scale\f[R]), giving a bad +expression to a \f[B]read()\f[R] call, calling \f[B]read()\f[R] inside +of a \f[B]read()\f[R] call, type errors (including attempting to execute +a number), and attempting an operation when the stack has too few +elements. +.RE +.TP +\f[B]4\f[R] +A fatal error occurred. +.RS +.PP +Fatal errors include memory allocation errors, I/O errors, failing to +open files, attempting to use files that do not have only ASCII +characters (dc(1) only accepts ASCII characters), attempting to open a +directory as a file, and giving invalid command\-line options. +.RE +.PP +The exit status \f[B]4\f[R] is special; when a fatal error occurs, dc(1) +always exits and returns \f[B]4\f[R], no matter what mode dc(1) is in. +.PP +The other statuses will only be returned when dc(1) is not in +interactive mode (see the \f[B]INTERACTIVE MODE\f[R] section), since +dc(1) resets its state (see the \f[B]RESET\f[R] section) and accepts +more input when one of those errors occurs in interactive mode. +This is also the case when interactive mode is forced by the +\f[B]\-i\f[R] flag or \f[B]\-\-interactive\f[R] option. +.PP +These exit statuses allow dc(1) to be used in shell scripting with error +checking, and its normal behavior can be forced by using the +\f[B]\-i\f[R] flag or \f[B]\-\-interactive\f[R] option. +.SH INTERACTIVE MODE +Like bc(1), dc(1) has an interactive mode and a non\-interactive mode. +Interactive mode is turned on automatically when both \f[B]stdin\f[R] +and \f[B]stdout\f[R] are hooked to a terminal, but the \f[B]\-i\f[R] +flag and \f[B]\-\-interactive\f[R] option can turn it on in other +situations. +.PP +In interactive mode, dc(1) attempts to recover from errors (see the +\f[B]RESET\f[R] section), and in normal execution, flushes +\f[B]stdout\f[R] as soon as execution is done for the current input. +dc(1) may also reset on \f[B]SIGINT\f[R] instead of exit, depending on +the contents of, or default for, the \f[B]DC_SIGINT_RESET\f[R] +environment variable (see the \f[B]ENVIRONMENT VARIABLES\f[R] section). +.SH TTY MODE +If \f[B]stdin\f[R], \f[B]stdout\f[R], and \f[B]stderr\f[R] are all +connected to a TTY, then \[lq]TTY mode\[rq] is considered to be +available, and thus, dc(1) can turn on TTY mode, subject to some +settings. +.PP +If there is the environment variable \f[B]DC_TTY_MODE\f[R] in the +environment (see the \f[B]ENVIRONMENT VARIABLES\f[R] section), then if +that environment variable contains a non\-zero integer, dc(1) will turn +on TTY mode when \f[B]stdin\f[R], \f[B]stdout\f[R], and \f[B]stderr\f[R] +are all connected to a TTY. +If the \f[B]DC_TTY_MODE\f[R] environment variable exists but is +\f[I]not\f[R] a non\-zero integer, then dc(1) will not turn TTY mode on. +.PP +If the environment variable \f[B]DC_TTY_MODE\f[R] does \f[I]not\f[R] +exist, the default setting is used. +The default setting can be queried with the \f[B]\-h\f[R] or +\f[B]\-\-help\f[R] options. +.PP +TTY mode is different from interactive mode because interactive mode is +required in the bc(1) specification (see the \f[B]STANDARDS\f[R] +section), and interactive mode requires only \f[B]stdin\f[R] and +\f[B]stdout\f[R] to be connected to a terminal. +.SS Prompt +If TTY mode is available, then a prompt can be enabled. +Like TTY mode itself, it can be turned on or off with an environment +variable: \f[B]DC_PROMPT\f[R] (see the \f[B]ENVIRONMENT VARIABLES\f[R] +section). +.PP +If the environment variable \f[B]DC_PROMPT\f[R] exists and is a +non\-zero integer, then the prompt is turned on when \f[B]stdin\f[R], +\f[B]stdout\f[R], and \f[B]stderr\f[R] are connected to a TTY and the +\f[B]\-P\f[R] and \f[B]\-\-no\-prompt\f[R] options were not used. +The read prompt will be turned on under the same conditions, except that +the \f[B]\-R\f[R] and \f[B]\-\-no\-read\-prompt\f[R] options must also +not be used. +.PP +However, if \f[B]DC_PROMPT\f[R] does not exist, the prompt can be +enabled or disabled with the \f[B]DC_TTY_MODE\f[R] environment variable, +the \f[B]\-P\f[R] and \f[B]\-\-no\-prompt\f[R] options, and the +\f[B]\-R\f[R] and \f[B]\-\-no\-read\-prompt\f[R] options. +See the \f[B]ENVIRONMENT VARIABLES\f[R] and \f[B]OPTIONS\f[R] sections +for more details. +.SH SIGNAL HANDLING +Sending a \f[B]SIGINT\f[R] will cause dc(1) to do one of two things. +.PP +If dc(1) is not in interactive mode (see the \f[B]INTERACTIVE MODE\f[R] +section), or the \f[B]DC_SIGINT_RESET\f[R] environment variable (see the +\f[B]ENVIRONMENT VARIABLES\f[R] section), or its default, is either not +an integer or it is zero, dc(1) will exit. +.PP +However, if dc(1) is in interactive mode, and the +\f[B]DC_SIGINT_RESET\f[R] or its default is an integer and non\-zero, +then dc(1) will stop executing the current input and reset (see the +\f[B]RESET\f[R] section) upon receiving a \f[B]SIGINT\f[R]. +.PP +Note that \[lq]current input\[rq] can mean one of two things. +If dc(1) is processing input from \f[B]stdin\f[R] in interactive mode, +it will ask for more input. +If dc(1) is processing input from a file in interactive mode, it will +stop processing the file and start processing the next file, if one +exists, or ask for input from \f[B]stdin\f[R] if no other file exists. +.PP +This means that if a \f[B]SIGINT\f[R] is sent to dc(1) as it is +executing a file, it can seem as though dc(1) did not respond to the +signal since it will immediately start executing the next file. +This is by design; most files that users execute when interacting with +dc(1) have function definitions, which are quick to parse. +If a file takes a long time to execute, there may be a bug in that file. +The rest of the files could still be executed without problem, allowing +the user to continue. +.PP +\f[B]SIGTERM\f[R] and \f[B]SIGQUIT\f[R] cause dc(1) to clean up and +exit, and it uses the default handler for all other signals. +.SH SEE ALSO +bc(1) +.SH STANDARDS +The dc(1) utility operators and some behavior are compliant with the +operators in the IEEE Std 1003.1\-2017 (\[lq]POSIX.1\-2017\[rq]) bc(1) +specification at +https://pubs.opengroup.org/onlinepubs/9699919799/utilities/bc.html . +.SH BUGS +None are known. +Report bugs at https://github.com/gavinhoward/bc . +.SH AUTHOR +Gavin D. Howard \c +.MT gavin@gavinhoward.com +.ME \c +\ and contributors. diff --git a/static/freebsd/man1/N.1 b/static/freebsd/man1/N.1 new file mode 100644 index 00000000..74ed018b --- /dev/null +++ b/static/freebsd/man1/N.1 @@ -0,0 +1,1692 @@ +.\" +.\" SPDX-License-Identifier: BSD-2-Clause +.\" +.\" Copyright (c) 2018-2025 Gavin D. Howard and contributors. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions are met: +.\" +.\" * Redistributions of source code must retain the above copyright notice, +.\" this list of conditions and the following disclaimer. +.\" +.\" * Redistributions in binary form must reproduce the above copyright notice, +.\" this list of conditions and the following disclaimer in the documentation +.\" and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +.\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +.\" LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +.\" POSSIBILITY OF SUCH DAMAGE. +.\" +.TH "DC" "1" "August 2024" "Gavin D. Howard" "General Commands Manual" +.nh +.ad l +.SH Name +dc \- arbitrary\-precision decimal reverse\-Polish notation calculator +.SH SYNOPSIS +\f[B]dc\f[R] [\f[B]\-cChiPRvVx\f[R]] [\f[B]\-\-version\f[R]] +[\f[B]\-\-help\f[R]] [\f[B]\-\-digit\-clamp\f[R]] +[\f[B]\-\-no\-digit\-clamp\f[R]] [\f[B]\-\-interactive\f[R]] +[\f[B]\-\-no\-prompt\f[R]] [\f[B]\-\-no\-read\-prompt\f[R]] +[\f[B]\-\-extended\-register\f[R]] [\f[B]\-e\f[R] \f[I]expr\f[R]] +[\f[B]\-\-expression\f[R]=\f[I]expr\f[R]\&...] +[\f[B]\-f\f[R] \f[I]file\f[R]\&...] +[\f[B]\-\-file\f[R]=\f[I]file\f[R]\&...] +[\f[I]file\f[R]\&...] +[\f[B]\-I\f[R] \f[I]ibase\f[R]] [\f[B]\-\-ibase\f[R]=\f[I]ibase\f[R]] +[\f[B]\-O\f[R] \f[I]obase\f[R]] [\f[B]\-\-obase\f[R]=\f[I]obase\f[R]] +[\f[B]\-S\f[R] \f[I]scale\f[R]] [\f[B]\-\-scale\f[R]=\f[I]scale\f[R]] +[\f[B]\-E\f[R] \f[I]seed\f[R]] [\f[B]\-\-seed\f[R]=\f[I]seed\f[R]] +.SH DESCRIPTION +dc(1) is an arbitrary\-precision calculator. +It uses a stack (reverse Polish notation) to store numbers and results +of computations. +Arithmetic operations pop arguments off of the stack and push the +results. +.PP +If no files are given on the command\-line, then dc(1) reads from +\f[B]stdin\f[R] (see the \f[B]STDIN\f[R] section). +Otherwise, those files are processed, and dc(1) will then exit. +.PP +If a user wants to set up a standard environment, they can use +\f[B]DC_ENV_ARGS\f[R] (see the \f[B]ENVIRONMENT VARIABLES\f[R] section). +For example, if a user wants the \f[B]scale\f[R] always set to +\f[B]10\f[R], they can set \f[B]DC_ENV_ARGS\f[R] to \f[B]\-e 10k\f[R], +and this dc(1) will always start with a \f[B]scale\f[R] of \f[B]10\f[R]. +.SH OPTIONS +The following are the options that dc(1) accepts. +.TP +\f[B]\-C\f[R], \f[B]\-\-no\-digit\-clamp\f[R] +Disables clamping of digits greater than or equal to the current +\f[B]ibase\f[R] when parsing numbers. +.RS +.PP +This means that the value added to a number from a digit is always that +digit\[cq]s value multiplied by the value of ibase raised to the power +of the digit\[cq]s position, which starts from 0 at the least +significant digit. +.PP +If this and/or the \f[B]\-c\f[R] or \f[B]\-\-digit\-clamp\f[R] options +are given multiple times, the last one given is used. +.PP +This option overrides the \f[B]DC_DIGIT_CLAMP\f[R] environment variable +(see the \f[B]ENVIRONMENT VARIABLES\f[R] section) and the default, which +can be queried with the \f[B]\-h\f[R] or \f[B]\-\-help\f[R] options. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-c\f[R], \f[B]\-\-digit\-clamp\f[R] +Enables clamping of digits greater than or equal to the current +\f[B]ibase\f[R] when parsing numbers. +.RS +.PP +This means that digits that the value added to a number from a digit +that is greater than or equal to the ibase is the value of ibase minus 1 +all multiplied by the value of ibase raised to the power of the +digit\[cq]s position, which starts from 0 at the least significant +digit. +.PP +If this and/or the \f[B]\-C\f[R] or \f[B]\-\-no\-digit\-clamp\f[R] +options are given multiple times, the last one given is used. +.PP +This option overrides the \f[B]DC_DIGIT_CLAMP\f[R] environment variable +(see the \f[B]ENVIRONMENT VARIABLES\f[R] section) and the default, which +can be queried with the \f[B]\-h\f[R] or \f[B]\-\-help\f[R] options. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-E\f[R] \f[I]seed\f[R], \f[B]\-\-seed\f[R]=\f[I]seed\f[R] +Sets the builtin variable \f[B]seed\f[R] to the value \f[I]seed\f[R] +assuming that \f[I]seed\f[R] is in base 10. +It is a fatal error if \f[I]seed\f[R] is not a valid number. +.RS +.PP +If multiple instances of this option are given, the last is used. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-e\f[R] \f[I]expr\f[R], \f[B]\-\-expression\f[R]=\f[I]expr\f[R] +Evaluates \f[I]expr\f[R]. +If multiple expressions are given, they are evaluated in order. +If files are given as well (see below), the expressions and files are +evaluated in the order given. +This means that if a file is given before an expression, the file is +read in and evaluated first. +.RS +.PP +If this option is given on the command\-line (i.e., not in +\f[B]DC_ENV_ARGS\f[R], see the \f[B]ENVIRONMENT VARIABLES\f[R] section), +then after processing all expressions and files, dc(1) will exit, unless +\f[B]\-\f[R] (\f[B]stdin\f[R]) was given as an argument at least once to +\f[B]\-f\f[R] or \f[B]\-\-file\f[R], whether on the command\-line or in +\f[B]DC_ENV_ARGS\f[R]. +However, if any other \f[B]\-e\f[R], \f[B]\-\-expression\f[R], +\f[B]\-f\f[R], or \f[B]\-\-file\f[R] arguments are given after +\f[B]\-f\-\f[R] or equivalent is given, dc(1) will give a fatal error +and exit. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-f\f[R] \f[I]file\f[R], \f[B]\-\-file\f[R]=\f[I]file\f[R] +Reads in \f[I]file\f[R] and evaluates it, line by line, as though it +were read through \f[B]stdin\f[R]. +If expressions are also given (see above), the expressions are evaluated +in the order given. +.RS +.PP +If this option is given on the command\-line (i.e., not in +\f[B]DC_ENV_ARGS\f[R], see the \f[B]ENVIRONMENT VARIABLES\f[R] section), +then after processing all expressions and files, dc(1) will exit, unless +\f[B]\-\f[R] (\f[B]stdin\f[R]) was given as an argument at least once to +\f[B]\-f\f[R] or \f[B]\-\-file\f[R]. +However, if any other \f[B]\-e\f[R], \f[B]\-\-expression\f[R], +\f[B]\-f\f[R], or \f[B]\-\-file\f[R] arguments are given after +\f[B]\-f\-\f[R] or equivalent is given, dc(1) will give a fatal error +and exit. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-h\f[R], \f[B]\-\-help\f[R] +Prints a usage message and exits. +.TP +\f[B]\-I\f[R] \f[I]ibase\f[R], \f[B]\-\-ibase\f[R]=\f[I]ibase\f[R] +Sets the builtin variable \f[B]ibase\f[R] to the value \f[I]ibase\f[R] +assuming that \f[I]ibase\f[R] is in base 10. +It is a fatal error if \f[I]ibase\f[R] is not a valid number. +.RS +.PP +If multiple instances of this option are given, the last is used. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-i\f[R], \f[B]\-\-interactive\f[R] +Forces interactive mode. +(See the \f[B]INTERACTIVE MODE\f[R] section.) +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-L\f[R], \f[B]\-\-no\-line\-length\f[R] +Disables line length checking and prints numbers without backslashes and +newlines. +In other words, this option sets \f[B]BC_LINE_LENGTH\f[R] to \f[B]0\f[R] +(see the \f[B]ENVIRONMENT VARIABLES\f[R] section). +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-O\f[R] \f[I]obase\f[R], \f[B]\-\-obase\f[R]=\f[I]obase\f[R] +Sets the builtin variable \f[B]obase\f[R] to the value \f[I]obase\f[R] +assuming that \f[I]obase\f[R] is in base 10. +It is a fatal error if \f[I]obase\f[R] is not a valid number. +.RS +.PP +If multiple instances of this option are given, the last is used. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-P\f[R], \f[B]\-\-no\-prompt\f[R] +Disables the prompt in TTY mode. +(The prompt is only enabled in TTY mode. +See the \f[B]TTY MODE\f[R] section.) +This is mostly for those users that do not want a prompt or are not used +to having them in dc(1). +Most of those users would want to put this option in +\f[B]DC_ENV_ARGS\f[R]. +.RS +.PP +These options override the \f[B]DC_PROMPT\f[R] and \f[B]DC_TTY_MODE\f[R] +environment variables (see the \f[B]ENVIRONMENT VARIABLES\f[R] section). +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-R\f[R], \f[B]\-\-no\-read\-prompt\f[R] +Disables the read prompt in TTY mode. +(The read prompt is only enabled in TTY mode. +See the \f[B]TTY MODE\f[R] section.) +This is mostly for those users that do not want a read prompt or are not +used to having them in dc(1). +Most of those users would want to put this option in +\f[B]BC_ENV_ARGS\f[R] (see the \f[B]ENVIRONMENT VARIABLES\f[R] section). +This option is also useful in hash bang lines of dc(1) scripts that +prompt for user input. +.RS +.PP +This option does not disable the regular prompt because the read prompt +is only used when the \f[B]?\f[R] command is used. +.PP +These options \f[I]do\f[R] override the \f[B]DC_PROMPT\f[R] and +\f[B]DC_TTY_MODE\f[R] environment variables (see the \f[B]ENVIRONMENT +VARIABLES\f[R] section), but only for the read prompt. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-S\f[R] \f[I]scale\f[R], \f[B]\-\-scale\f[R]=\f[I]scale\f[R] +Sets the builtin variable \f[B]scale\f[R] to the value \f[I]scale\f[R] +assuming that \f[I]scale\f[R] is in base 10. +It is a fatal error if \f[I]scale\f[R] is not a valid number. +.RS +.PP +If multiple instances of this option are given, the last is used. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-v\f[R], \f[B]\-V\f[R], \f[B]\-\-version\f[R] +Print the version information (copyright header) and exits. +.TP +\f[B]\-x\f[R] \f[B]\-\-extended\-register\f[R] +Enables extended register mode. +See the \f[I]Extended Register Mode\f[R] subsection of the +\f[B]REGISTERS\f[R] section for more information. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\-z\f[R], \f[B]\-\-leading\-zeroes\f[R] +Makes dc(1) print all numbers greater than \f[B]\-1\f[R] and less than +\f[B]1\f[R], and not equal to \f[B]0\f[R], with a leading zero. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.PP +All long options are \f[B]non\-portable extensions\f[R]. +.SH STDIN +If no files are given on the command\-line and no files or expressions +are given by the \f[B]\-f\f[R], \f[B]\-\-file\f[R], \f[B]\-e\f[R], or +\f[B]\-\-expression\f[R] options, then dc(1) reads from \f[B]stdin\f[R]. +.PP +However, there is a caveat to this. +.PP +First, \f[B]stdin\f[R] is evaluated a line at a time. +The only exception to this is if a string has been finished, but not +ended. +This means that, except for escaped brackets, all brackets must be +balanced before dc(1) parses and executes. +.SH STDOUT +Any non\-error output is written to \f[B]stdout\f[R]. +In addition, if history (see the \f[B]HISTORY\f[R] section) and the +prompt (see the \f[B]TTY MODE\f[R] section) are enabled, both are output +to \f[B]stdout\f[R]. +.PP +\f[B]Note\f[R]: Unlike other dc(1) implementations, this dc(1) will +issue a fatal error (see the \f[B]EXIT STATUS\f[R] section) if it cannot +write to \f[B]stdout\f[R], so if \f[B]stdout\f[R] is closed, as in +\f[B]dc >&\-\f[R], it will quit with an error. +This is done so that dc(1) can report problems when \f[B]stdout\f[R] is +redirected to a file. +.PP +If there are scripts that depend on the behavior of other dc(1) +implementations, it is recommended that those scripts be changed to +redirect \f[B]stdout\f[R] to \f[B]/dev/null\f[R]. +.SH STDERR +Any error output is written to \f[B]stderr\f[R]. +.PP +\f[B]Note\f[R]: Unlike other dc(1) implementations, this dc(1) will +issue a fatal error (see the \f[B]EXIT STATUS\f[R] section) if it cannot +write to \f[B]stderr\f[R], so if \f[B]stderr\f[R] is closed, as in +\f[B]dc 2>&\-\f[R], it will quit with an error. +This is done so that dc(1) can exit with an error code when +\f[B]stderr\f[R] is redirected to a file. +.PP +If there are scripts that depend on the behavior of other dc(1) +implementations, it is recommended that those scripts be changed to +redirect \f[B]stderr\f[R] to \f[B]/dev/null\f[R]. +.SH SYNTAX +Each item in the input source code, either a number (see the +\f[B]NUMBERS\f[R] section) or a command (see the \f[B]COMMANDS\f[R] +section), is processed and executed, in order. +Input is processed immediately when entered. +.PP +\f[B]ibase\f[R] is a register (see the \f[B]REGISTERS\f[R] section) that +determines how to interpret constant numbers. +It is the \[lq]input\[rq] base, or the number base used for interpreting +input numbers. +\f[B]ibase\f[R] is initially \f[B]10\f[R]. +The max allowable value for \f[B]ibase\f[R] is \f[B]16\f[R]. +The min allowable value for \f[B]ibase\f[R] is \f[B]2\f[R]. +The max allowable value for \f[B]ibase\f[R] can be queried in dc(1) +programs with the \f[B]T\f[R] command. +.PP +\f[B]obase\f[R] is a register (see the \f[B]REGISTERS\f[R] section) that +determines how to output results. +It is the \[lq]output\[rq] base, or the number base used for outputting +numbers. +\f[B]obase\f[R] is initially \f[B]10\f[R]. +The max allowable value for \f[B]obase\f[R] is \f[B]DC_BASE_MAX\f[R] and +can be queried with the \f[B]U\f[R] command. +The min allowable value for \f[B]obase\f[R] is \f[B]0\f[R]. +If \f[B]obase\f[R] is \f[B]0\f[R], values are output in scientific +notation, and if \f[B]obase\f[R] is \f[B]1\f[R], values are output in +engineering notation. +Otherwise, values are output in the specified base. +.PP +Outputting in scientific and engineering notations are +\f[B]non\-portable extensions\f[R]. +.PP +The \f[I]scale\f[R] of an expression is the number of digits in the +result of the expression right of the decimal point, and \f[B]scale\f[R] +is a register (see the \f[B]REGISTERS\f[R] section) that sets the +precision of any operations (with exceptions). +\f[B]scale\f[R] is initially \f[B]0\f[R]. +\f[B]scale\f[R] cannot be negative. +The max allowable value for \f[B]scale\f[R] can be queried in dc(1) +programs with the \f[B]V\f[R] command. +.PP +\f[B]seed\f[R] is a register containing the current seed for the +pseudo\-random number generator. +If the current value of \f[B]seed\f[R] is queried and stored, then if it +is assigned to \f[B]seed\f[R] later, the pseudo\-random number generator +is guaranteed to produce the same sequence of pseudo\-random numbers +that were generated after the value of \f[B]seed\f[R] was first queried. +.PP +Multiple values assigned to \f[B]seed\f[R] can produce the same sequence +of pseudo\-random numbers. +Likewise, when a value is assigned to \f[B]seed\f[R], it is not +guaranteed that querying \f[B]seed\f[R] immediately after will return +the same value. +In addition, the value of \f[B]seed\f[R] will change after any call to +the \f[B]\[cq]\f[R] command or the \f[B]\[lq]\f[R] command that does not +get receive a value of \f[B]0\f[R] or \f[B]1\f[R]. +The maximum integer returned by the \f[B]\[cq]\f[R] command can be +queried with the \f[B]W\f[R] command. +.PP +\f[B]Note\f[R]: The values returned by the pseudo\-random number +generator with the \f[B]\[cq]\f[R] and \f[B]\[lq]\f[R] commands are +guaranteed to \f[B]NOT\f[R] be cryptographically secure. +This is a consequence of using a seeded pseudo\-random number generator. +However, they \f[I]are\f[R] guaranteed to be reproducible with identical +\f[B]seed\f[R] values. +This means that the pseudo\-random values from dc(1) should only be used +where a reproducible stream of pseudo\-random numbers is +\f[I]ESSENTIAL\f[R]. +In any other case, use a non\-seeded pseudo\-random number generator. +.PP +The pseudo\-random number generator, \f[B]seed\f[R], and all associated +operations are \f[B]non\-portable extensions\f[R]. +.SS Comments +Comments go from \f[B]#\f[R] until, and not including, the next newline. +This is a \f[B]non\-portable extension\f[R]. +.SH NUMBERS +Numbers are strings made up of digits, uppercase letters up to +\f[B]F\f[R], and at most \f[B]1\f[R] period for a radix. +Numbers can have up to \f[B]DC_NUM_MAX\f[R] digits. +Uppercase letters are equal to \f[B]9\f[R] plus their position in the +alphabet (i.e., \f[B]A\f[R] equals \f[B]10\f[R], or \f[B]9+1\f[R]). +.PP +If a digit or letter makes no sense with the current value of +\f[B]ibase\f[R] (i.e., they are greater than or equal to the current +value of \f[B]ibase\f[R]), then the behavior depends on the existence of +the \f[B]\-c\f[R]/\f[B]\-\-digit\-clamp\f[R] or +\f[B]\-C\f[R]/\f[B]\-\-no\-digit\-clamp\f[R] options (see the +\f[B]OPTIONS\f[R] section), the existence and setting of the +\f[B]DC_DIGIT_CLAMP\f[R] environment variable (see the \f[B]ENVIRONMENT +VARIABLES\f[R] section), or the default, which can be queried with the +\f[B]\-h\f[R]/\f[B]\-\-help\f[R] option. +.PP +If clamping is off, then digits or letters that are greater than or +equal to the current value of \f[B]ibase\f[R] are not changed. +Instead, their given value is multiplied by the appropriate power of +\f[B]ibase\f[R] and added into the number. +This means that, with an \f[B]ibase\f[R] of \f[B]3\f[R], the number +\f[B]AB\f[R] is equal to \f[B]3\[ha]1*A+3\[ha]0*B\f[R], which is +\f[B]3\f[R] times \f[B]10\f[R] plus \f[B]11\f[R], or \f[B]41\f[R]. +.PP +If clamping is on, then digits or letters that are greater than or equal +to the current value of \f[B]ibase\f[R] are set to the value of the +highest valid digit in \f[B]ibase\f[R] before being multiplied by the +appropriate power of \f[B]ibase\f[R] and added into the number. +This means that, with an \f[B]ibase\f[R] of \f[B]3\f[R], the number +\f[B]AB\f[R] is equal to \f[B]3\[ha]1*2+3\[ha]0*2\f[R], which is +\f[B]3\f[R] times \f[B]2\f[R] plus \f[B]2\f[R], or \f[B]8\f[R]. +.PP +There is one exception to clamping: single\-character numbers (i.e., +\f[B]A\f[R] alone). +Such numbers are never clamped and always take the value they would have +in the highest possible \f[B]ibase\f[R]. +This means that \f[B]A\f[R] alone always equals decimal \f[B]10\f[R] and +\f[B]Z\f[R] alone always equals decimal \f[B]35\f[R]. +This behavior is mandated by the standard for bc(1) (see the STANDARDS +section) and is meant to provide an easy way to set the current +\f[B]ibase\f[R] (with the \f[B]i\f[R] command) regardless of the current +value of \f[B]ibase\f[R]. +.PP +If clamping is on, and the clamped value of a character is needed, use a +leading zero, i.e., for \f[B]A\f[R], use \f[B]0A\f[R]. +.PP +In addition, dc(1) accepts numbers in scientific notation. +These have the form \f[B]e\f[R]. +The exponent (the portion after the \f[B]e\f[R]) must be an integer. +An example is \f[B]1.89237e9\f[R], which is equal to +\f[B]1892370000\f[R]. +Negative exponents are also allowed, so \f[B]4.2890e_3\f[R] is equal to +\f[B]0.0042890\f[R]. +.PP +\f[B]WARNING\f[R]: Both the number and the exponent in scientific +notation are interpreted according to the current \f[B]ibase\f[R], but +the number is still multiplied by \f[B]10\[ha]exponent\f[R] regardless +of the current \f[B]ibase\f[R]. +For example, if \f[B]ibase\f[R] is \f[B]16\f[R] and dc(1) is given the +number string \f[B]FFeA\f[R], the resulting decimal number will be +\f[B]2550000000000\f[R], and if dc(1) is given the number string +\f[B]10e_4\f[R], the resulting decimal number will be \f[B]0.0016\f[R]. +.PP +Accepting input as scientific notation is a \f[B]non\-portable +extension\f[R]. +.SH COMMANDS +The valid commands are listed below. +.SS Printing +These commands are used for printing. +.PP +Note that both scientific notation and engineering notation are +available for printing numbers. +Scientific notation is activated by assigning \f[B]0\f[R] to +\f[B]obase\f[R] using \f[B]0o\f[R], and engineering notation is +activated by assigning \f[B]1\f[R] to \f[B]obase\f[R] using +\f[B]1o\f[R]. +To deactivate them, just assign a different value to \f[B]obase\f[R]. +.PP +Printing numbers in scientific notation and/or engineering notation is a +\f[B]non\-portable extension\f[R]. +.TP +\f[B]p\f[R] +Prints the value on top of the stack, whether number or string, and +prints a newline after. +.RS +.PP +This does not alter the stack. +.RE +.TP +\f[B]n\f[R] +Prints the value on top of the stack, whether number or string, and pops +it off of the stack. +.TP +\f[B]P\f[R] +Pops a value off the stack. +.RS +.PP +If the value is a number, it is truncated and the absolute value of the +result is printed as though \f[B]obase\f[R] is \f[B]256\f[R] and each +digit is interpreted as an 8\-bit ASCII character, making it a byte +stream. +.PP +If the value is a string, it is printed without a trailing newline. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]f\f[R] +Prints the entire contents of the stack, in order from newest to oldest, +without altering anything. +.RS +.PP +Users should use this command when they get lost. +.RE +.SS Arithmetic +These are the commands used for arithmetic. +.TP +\f[B]+\f[R] +The top two values are popped off the stack, added, and the result is +pushed onto the stack. +The \f[I]scale\f[R] of the result is equal to the max \f[I]scale\f[R] of +both operands. +.TP +\f[B]\-\f[R] +The top two values are popped off the stack, subtracted, and the result +is pushed onto the stack. +The \f[I]scale\f[R] of the result is equal to the max \f[I]scale\f[R] of +both operands. +.TP +\f[B]*\f[R] +The top two values are popped off the stack, multiplied, and the result +is pushed onto the stack. +If \f[B]a\f[R] is the \f[I]scale\f[R] of the first expression and +\f[B]b\f[R] is the \f[I]scale\f[R] of the second expression, the +\f[I]scale\f[R] of the result is equal to +\f[B]min(a+b,max(scale,a,b))\f[R] where \f[B]min()\f[R] and +\f[B]max()\f[R] return the obvious values. +.TP +\f[B]/\f[R] +The top two values are popped off the stack, divided, and the result is +pushed onto the stack. +The \f[I]scale\f[R] of the result is equal to \f[B]scale\f[R]. +.RS +.PP +The first value popped off of the stack must be non\-zero. +.RE +.TP +\f[B]%\f[R] +The top two values are popped off the stack, remaindered, and the result +is pushed onto the stack. +.RS +.PP +Remaindering is equivalent to 1) Computing \f[B]a/b\f[R] to current +\f[B]scale\f[R], and 2) Using the result of step 1 to calculate +\f[B]a\-(a/b)*b\f[R] to \f[I]scale\f[R] +\f[B]max(scale+scale(b),scale(a))\f[R]. +.PP +The first value popped off of the stack must be non\-zero. +.RE +.TP +\f[B]\[ti]\f[R] +The top two values are popped off the stack, divided and remaindered, +and the results (divided first, remainder second) are pushed onto the +stack. +This is equivalent to \f[B]x y / x y %\f[R] except that \f[B]x\f[R] and +\f[B]y\f[R] are only evaluated once. +.RS +.PP +The first value popped off of the stack must be non\-zero. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\[ha]\f[R] +The top two values are popped off the stack, the second is raised to the +power of the first, and the result is pushed onto the stack. +The \f[I]scale\f[R] of the result is equal to \f[B]scale\f[R]. +.RS +.PP +The first value popped off of the stack must be an integer, and if that +value is negative, the second value popped off of the stack must be +non\-zero. +.RE +.TP +\f[B]v\f[R] +The top value is popped off the stack, its square root is computed, and +the result is pushed onto the stack. +The \f[I]scale\f[R] of the result is equal to \f[B]scale\f[R]. +.RS +.PP +The value popped off of the stack must be non\-negative. +.RE +.TP +\f[B]_\f[R] +If this command \f[I]immediately\f[R] precedes a number (i.e., no spaces +or other commands), then that number is input as a negative number. +.RS +.PP +Otherwise, the top value on the stack is popped and copied, and the copy +is negated and pushed onto the stack. +This behavior without a number is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]b\f[R] +The top value is popped off the stack, and if it is zero, it is pushed +back onto the stack. +Otherwise, its absolute value is pushed onto the stack. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]|\f[R] +The top three values are popped off the stack, a modular exponentiation +is computed, and the result is pushed onto the stack. +.RS +.PP +The first value popped is used as the reduction modulus and must be an +integer and non\-zero. +The second value popped is used as the exponent and must be an integer +and non\-negative. +The third value popped is the base and must be an integer. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]$\f[R] +The top value is popped off the stack and copied, and the copy is +truncated and pushed onto the stack. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\[at]\f[R] +The top two values are popped off the stack, and the precision of the +second is set to the value of the first, whether by truncation or +extension. +.RS +.PP +The first value popped off of the stack must be an integer and +non\-negative. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]H\f[R] +The top two values are popped off the stack, and the second is shifted +left (radix shifted right) to the value of the first. +.RS +.PP +The first value popped off of the stack must be an integer and +non\-negative. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]h\f[R] +The top two values are popped off the stack, and the second is shifted +right (radix shifted left) to the value of the first. +.RS +.PP +The first value popped off of the stack must be an integer and +non\-negative. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]G\f[R] +The top two values are popped off of the stack, they are compared, and a +\f[B]1\f[R] is pushed if they are equal, or \f[B]0\f[R] otherwise. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]N\f[R] +The top value is popped off of the stack, and if it a \f[B]0\f[R], a +\f[B]1\f[R] is pushed; otherwise, a \f[B]0\f[R] is pushed. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B](\f[R] +The top two values are popped off of the stack, they are compared, and a +\f[B]1\f[R] is pushed if the first is less than the second, or +\f[B]0\f[R] otherwise. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]{\f[R] +The top two values are popped off of the stack, they are compared, and a +\f[B]1\f[R] is pushed if the first is less than or equal to the second, +or \f[B]0\f[R] otherwise. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B])\f[R] +The top two values are popped off of the stack, they are compared, and a +\f[B]1\f[R] is pushed if the first is greater than the second, or +\f[B]0\f[R] otherwise. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]}\f[R] +The top two values are popped off of the stack, they are compared, and a +\f[B]1\f[R] is pushed if the first is greater than or equal to the +second, or \f[B]0\f[R] otherwise. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]M\f[R] +The top two values are popped off of the stack. +If they are both non\-zero, a \f[B]1\f[R] is pushed onto the stack. +If either of them is zero, or both of them are, then a \f[B]0\f[R] is +pushed onto the stack. +.RS +.PP +This is like the \f[B]&&\f[R] operator in bc(1), and it is \f[I]not\f[R] +a short\-circuit operator. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]m\f[R] +The top two values are popped off of the stack. +If at least one of them is non\-zero, a \f[B]1\f[R] is pushed onto the +stack. +If both of them are zero, then a \f[B]0\f[R] is pushed onto the stack. +.RS +.PP +This is like the \f[B]||\f[R] operator in bc(1), and it is \f[I]not\f[R] +a short\-circuit operator. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.SS Pseudo\-Random Number Generator +dc(1) has a built\-in pseudo\-random number generator. +These commands query the pseudo\-random number generator. +(See Parameters for more information about the \f[B]seed\f[R] value that +controls the pseudo\-random number generator.) +.PP +The pseudo\-random number generator is guaranteed to \f[B]NOT\f[R] be +cryptographically secure. +.TP +\f[B]\[cq]\f[R] +Generates an integer between 0 and \f[B]DC_RAND_MAX\f[R], inclusive (see +the \f[B]LIMITS\f[R] section). +.RS +.PP +The generated integer is made as unbiased as possible, subject to the +limitations of the pseudo\-random number generator. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]\[lq]\f[R] +Pops a value off of the stack, which is used as an \f[B]exclusive\f[R] +upper bound on the integer that will be generated. +If the bound is negative or is a non\-integer, an error is raised, and +dc(1) resets (see the \f[B]RESET\f[R] section) while \f[B]seed\f[R] +remains unchanged. +If the bound is larger than \f[B]DC_RAND_MAX\f[R], the higher bound is +honored by generating several pseudo\-random integers, multiplying them +by appropriate powers of \f[B]DC_RAND_MAX+1\f[R], and adding them +together. +Thus, the size of integer that can be generated with this command is +unbounded. +Using this command will change the value of \f[B]seed\f[R], unless the +operand is \f[B]0\f[R] or \f[B]1\f[R]. +In that case, \f[B]0\f[R] is pushed onto the stack, and \f[B]seed\f[R] +is \f[I]not\f[R] changed. +.RS +.PP +The generated integer is made as unbiased as possible, subject to the +limitations of the pseudo\-random number generator. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.SS Stack Control +These commands control the stack. +.TP +\f[B]c\f[R] +Removes all items from (\[lq]clears\[rq]) the stack. +.TP +\f[B]d\f[R] +Copies the item on top of the stack (\[lq]duplicates\[rq]) and pushes +the copy onto the stack. +.TP +\f[B]r\f[R] +Swaps (\[lq]reverses\[rq]) the two top items on the stack. +.TP +\f[B]R\f[R] +Pops (\[lq]removes\[rq]) the top value from the stack. +.SS Register Control +These commands control registers (see the \f[B]REGISTERS\f[R] section). +.TP +\f[B]s\f[R]\f[I]r\f[R] +Pops the value off the top of the stack and stores it into register +\f[I]r\f[R]. +.TP +\f[B]l\f[R]\f[I]r\f[R] +Copies the value in register \f[I]r\f[R] and pushes it onto the stack. +This does not alter the contents of \f[I]r\f[R]. +.TP +\f[B]S\f[R]\f[I]r\f[R] +Pops the value off the top of the (main) stack and pushes it onto the +stack of register \f[I]r\f[R]. +The previous value of the register becomes inaccessible. +.TP +\f[B]L\f[R]\f[I]r\f[R] +Pops the value off the top of the stack for register \f[I]r\f[R] and +push it onto the main stack. +The previous value in the stack for register \f[I]r\f[R], if any, is now +accessible via the \f[B]l\f[R]\f[I]r\f[R] command. +.SS Parameters +These commands control the values of \f[B]ibase\f[R], \f[B]obase\f[R], +\f[B]scale\f[R], and \f[B]seed\f[R]. +Also see the \f[B]SYNTAX\f[R] section. +.TP +\f[B]i\f[R] +Pops the value off of the top of the stack and uses it to set +\f[B]ibase\f[R], which must be between \f[B]2\f[R] and \f[B]16\f[R], +inclusive. +.RS +.PP +If the value on top of the stack has any \f[I]scale\f[R], the +\f[I]scale\f[R] is ignored. +.RE +.TP +\f[B]o\f[R] +Pops the value off of the top of the stack and uses it to set +\f[B]obase\f[R], which must be between \f[B]0\f[R] and +\f[B]DC_BASE_MAX\f[R], inclusive (see the \f[B]LIMITS\f[R] section and +the \f[B]NUMBERS\f[R] section). +.RS +.PP +If the value on top of the stack has any \f[I]scale\f[R], the +\f[I]scale\f[R] is ignored. +.RE +.TP +\f[B]k\f[R] +Pops the value off of the top of the stack and uses it to set +\f[B]scale\f[R], which must be non\-negative. +.RS +.PP +If the value on top of the stack has any \f[I]scale\f[R], the +\f[I]scale\f[R] is ignored. +.RE +.TP +\f[B]j\f[R] +Pops the value off of the top of the stack and uses it to set +\f[B]seed\f[R]. +The meaning of \f[B]seed\f[R] is dependent on the current pseudo\-random +number generator but is guaranteed to not change except for new major +versions. +.RS +.PP +The \f[I]scale\f[R] and sign of the value may be significant. +.PP +If a previously used \f[B]seed\f[R] value is used again, the +pseudo\-random number generator is guaranteed to produce the same +sequence of pseudo\-random numbers as it did when the \f[B]seed\f[R] +value was previously used. +.PP +The exact value assigned to \f[B]seed\f[R] is not guaranteed to be +returned if the \f[B]J\f[R] command is used. +However, if \f[B]seed\f[R] \f[I]does\f[R] return a different value, both +values, when assigned to \f[B]seed\f[R], are guaranteed to produce the +same sequence of pseudo\-random numbers. +This means that certain values assigned to \f[B]seed\f[R] will not +produce unique sequences of pseudo\-random numbers. +.PP +There is no limit to the length (number of significant decimal digits) +or \f[I]scale\f[R] of the value that can be assigned to \f[B]seed\f[R]. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]I\f[R] +Pushes the current value of \f[B]ibase\f[R] onto the main stack. +.TP +\f[B]O\f[R] +Pushes the current value of \f[B]obase\f[R] onto the main stack. +.TP +\f[B]K\f[R] +Pushes the current value of \f[B]scale\f[R] onto the main stack. +.TP +\f[B]J\f[R] +Pushes the current value of \f[B]seed\f[R] onto the main stack. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]T\f[R] +Pushes the maximum allowable value of \f[B]ibase\f[R] onto the main +stack. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]U\f[R] +Pushes the maximum allowable value of \f[B]obase\f[R] onto the main +stack. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]V\f[R] +Pushes the maximum allowable value of \f[B]scale\f[R] onto the main +stack. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]W\f[R] +Pushes the maximum (inclusive) integer that can be generated with the +\f[B]\[cq]\f[R] pseudo\-random number generator command. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.SS Strings +The following commands control strings. +.PP +dc(1) can work with both numbers and strings, and registers (see the +\f[B]REGISTERS\f[R] section) can hold both strings and numbers. +dc(1) always knows whether the contents of a register are a string or a +number. +.PP +While arithmetic operations have to have numbers, and will print an +error if given a string, other commands accept strings. +.PP +Strings can also be executed as macros. +For example, if the string \f[B][1pR]\f[R] is executed as a macro, then +the code \f[B]1pR\f[R] is executed, meaning that the \f[B]1\f[R] will be +printed with a newline after and then popped from the stack. +.TP +\f[B][\f[R]\f[I]characters\f[R]\f[B]]\f[R] +Makes a string containing \f[I]characters\f[R] and pushes it onto the +stack. +.RS +.PP +If there are brackets (\f[B][\f[R] and \f[B]]\f[R]) in the string, then +they must be balanced. +Unbalanced brackets can be escaped using a backslash (\f[B]\[rs]\f[R]) +character. +.PP +If there is a backslash character in the string, the character after it +(even another backslash) is put into the string verbatim, but the +(first) backslash is not. +.RE +.TP +\f[B]a\f[R] +The value on top of the stack is popped. +.RS +.PP +If it is a number, it is truncated and its absolute value is taken. +The result mod \f[B]256\f[R] is calculated. +If that result is \f[B]0\f[R], push an empty string; otherwise, push a +one\-character string where the character is the result of the mod +interpreted as an ASCII character. +.PP +If it is a string, then a new string is made. +If the original string is empty, the new string is empty. +If it is not, then the first character of the original string is used to +create the new string as a one\-character string. +The new string is then pushed onto the stack. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]x\f[R] +Pops a value off of the top of the stack. +.RS +.PP +If it is a number, it is pushed back onto the stack. +.PP +If it is a string, it is executed as a macro. +.PP +This behavior is the norm whenever a macro is executed, whether by this +command or by the conditional execution commands below. +.RE +.TP +\f[B]>\f[R]\f[I]r\f[R] +Pops two values off of the stack that must be numbers and compares them. +If the first value is greater than the second, then the contents of +register \f[I]r\f[R] are executed. +.RS +.PP +For example, \f[B]0 1>a\f[R] will execute the contents of register +\f[B]a\f[R], and \f[B]1 0>a\f[R] will not. +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.RE +.TP +\f[B]>\f[R]\f[I]r\f[R]\f[B]e\f[R]\f[I]s\f[R] +Like the above, but will execute register \f[I]s\f[R] if the comparison +fails. +.RS +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]!>\f[R]\f[I]r\f[R] +Pops two values off of the stack that must be numbers and compares them. +If the first value is not greater than the second (less than or equal +to), then the contents of register \f[I]r\f[R] are executed. +.RS +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.RE +.TP +\f[B]!>\f[R]\f[I]r\f[R]\f[B]e\f[R]\f[I]s\f[R] +Like the above, but will execute register \f[I]s\f[R] if the comparison +fails. +.RS +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]<\f[R]\f[I]r\f[R] +Pops two values off of the stack that must be numbers and compares them. +If the first value is less than the second, then the contents of +register \f[I]r\f[R] are executed. +.RS +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.RE +.TP +\f[B]<\f[R]\f[I]r\f[R]\f[B]e\f[R]\f[I]s\f[R] +Like the above, but will execute register \f[I]s\f[R] if the comparison +fails. +.RS +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]!<\f[R]\f[I]r\f[R] +Pops two values off of the stack that must be numbers and compares them. +If the first value is not less than the second (greater than or equal +to), then the contents of register \f[I]r\f[R] are executed. +.RS +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.RE +.TP +\f[B]!<\f[R]\f[I]r\f[R]\f[B]e\f[R]\f[I]s\f[R] +Like the above, but will execute register \f[I]s\f[R] if the comparison +fails. +.RS +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]=\f[R]\f[I]r\f[R] +Pops two values off of the stack that must be numbers and compares them. +If the first value is equal to the second, then the contents of register +\f[I]r\f[R] are executed. +.RS +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.RE +.TP +\f[B]=\f[R]\f[I]r\f[R]\f[B]e\f[R]\f[I]s\f[R] +Like the above, but will execute register \f[I]s\f[R] if the comparison +fails. +.RS +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]!=\f[R]\f[I]r\f[R] +Pops two values off of the stack that must be numbers and compares them. +If the first value is not equal to the second, then the contents of +register \f[I]r\f[R] are executed. +.RS +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.RE +.TP +\f[B]!=\f[R]\f[I]r\f[R]\f[B]e\f[R]\f[I]s\f[R] +Like the above, but will execute register \f[I]s\f[R] if the comparison +fails. +.RS +.PP +If either or both of the values are not numbers, dc(1) will raise an +error and reset (see the \f[B]RESET\f[R] section). +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]?\f[R] +Reads a line from the \f[B]stdin\f[R] and executes it. +This is to allow macros to request input from users. +.TP +\f[B]q\f[R] +During execution of a macro, this exits the execution of that macro and +the execution of the macro that executed it. +If there are no macros, or only one macro executing, dc(1) exits. +.TP +\f[B]Q\f[R] +Pops a value from the stack which must be non\-negative and is used the +number of macro executions to pop off of the execution stack. +If the number of levels to pop is greater than the number of executing +macros, dc(1) exits. +.TP +\f[B],\f[R] +Pushes the depth of the execution stack onto the stack. +The execution stack is the stack of string executions. +The number that is pushed onto the stack is exactly as many as is needed +to make dc(1) exit with the \f[B]Q\f[R] command, so the sequence +\f[B],Q\f[R] will make dc(1) exit. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.SS Status +These commands query status of the stack or its top value. +.TP +\f[B]Z\f[R] +Pops a value off of the stack. +.RS +.PP +If it is a number, calculates the number of significant decimal digits +it has and pushes the result. +It will push \f[B]1\f[R] if the argument is \f[B]0\f[R] with no decimal +places. +.PP +If it is a string, pushes the number of characters the string has. +.RE +.TP +\f[B]X\f[R] +Pops a value off of the stack. +.RS +.PP +If it is a number, pushes the \f[I]scale\f[R] of the value onto the +stack. +.PP +If it is a string, pushes \f[B]0\f[R]. +.RE +.TP +\f[B]u\f[R] +Pops one value off of the stack. +If the value is a number, this pushes \f[B]1\f[R] onto the stack. +Otherwise (if it is a string), it pushes \f[B]0\f[R]. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]t\f[R] +Pops one value off of the stack. +If the value is a string, this pushes \f[B]1\f[R] onto the stack. +Otherwise (if it is a number), it pushes \f[B]0\f[R]. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.TP +\f[B]z\f[R] +Pushes the current depth of the stack (before execution of this command) +onto the stack. +.TP +\f[B]y\f[R]\f[I]r\f[R] +Pushes the current stack depth of the register \f[I]r\f[R] onto the main +stack. +.RS +.PP +Because each register has a depth of \f[B]1\f[R] (with the value +\f[B]0\f[R] in the top item) when dc(1) starts, dc(1) requires that each +register\[cq]s stack must always have at least one item; dc(1) will give +an error and reset otherwise (see the \f[B]RESET\f[R] section). +This means that this command will never push \f[B]0\f[R]. +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.SS Arrays +These commands manipulate arrays. +.TP +\f[B]:\f[R]\f[I]r\f[R] +Pops the top two values off of the stack. +The second value will be stored in the array \f[I]r\f[R] (see the +\f[B]REGISTERS\f[R] section), indexed by the first value. +.TP +\f[B];\f[R]\f[I]r\f[R] +Pops the value on top of the stack and uses it as an index into the +array \f[I]r\f[R]. +The selected value is then pushed onto the stack. +.TP +\f[B]Y\f[R]\f[I]r\f[R] +Pushes the length of the array \f[I]r\f[R] onto the stack. +.RS +.PP +This is a \f[B]non\-portable extension\f[R]. +.RE +.SS Global Settings +These commands retrieve global settings. +These are the only commands that require multiple specific characters, +and all of them begin with the letter \f[B]g\f[R]. +Only the characters below are allowed after the character \f[B]g\f[R]; +any other character produces a parse error (see the \f[B]ERRORS\f[R] +section). +.TP +\f[B]gl\f[R] +Pushes the line length set by \f[B]DC_LINE_LENGTH\f[R] (see the +\f[B]ENVIRONMENT VARIABLES\f[R] section) onto the stack. +.TP +\f[B]gx\f[R] +Pushes \f[B]1\f[R] onto the stack if extended register mode is on, +\f[B]0\f[R] otherwise. +See the \f[I]Extended Register Mode\f[R] subsection of the +\f[B]REGISTERS\f[R] section for more information. +.TP +\f[B]gz\f[R] +Pushes \f[B]0\f[R] onto the stack if the leading zero setting has not +been enabled with the \f[B]\-z\f[R] or \f[B]\-\-leading\-zeroes\f[R] +options (see the \f[B]OPTIONS\f[R] section), non\-zero otherwise. +.SH REGISTERS +Registers are names that can store strings, numbers, and arrays. +(Number/string registers do not interfere with array registers.) +.PP +Each register is also its own stack, so the current register value is +the top of the stack for the register. +All registers, when first referenced, have one value (\f[B]0\f[R]) in +their stack, and it is a runtime error to attempt to pop that item off +of the register stack. +.PP +In non\-extended register mode, a register name is just the single +character that follows any command that needs a register name. +The only exceptions are: a newline (\f[B]`\[rs]n'\f[R]) and a left +bracket (\f[B]`['\f[R]); it is a parse error for a newline or a left +bracket to be used as a register name. +.SS Extended Register Mode +Unlike most other dc(1) implentations, this dc(1) provides nearly +unlimited amounts of registers, if extended register mode is enabled. +.PP +If extended register mode is enabled (\f[B]\-x\f[R] or +\f[B]\-\-extended\-register\f[R] command\-line arguments are given), +then normal single character registers are used \f[I]unless\f[R] the +character immediately following a command that needs a register name is +a space (according to \f[B]isspace()\f[R]) and not a newline +(\f[B]`\[rs]n'\f[R]). +.PP +In that case, the register name is found according to the regex +\f[B][a\-z][a\-z0\-9_]*\f[R] (like bc(1) identifiers), and it is a parse +error if the next non\-space characters do not match that regex. +.SH RESET +When dc(1) encounters an error or a signal that it has a non\-default +handler for, it resets. +This means that several things happen. +.PP +First, any macros that are executing are stopped and popped off the +execution stack. +The behavior is not unlike that of exceptions in programming languages. +Then the execution point is set so that any code waiting to execute +(after all macros returned) is skipped. +.PP +However, the stack of values is \f[I]not\f[R] cleared; in interactive +mode, users can inspect the stack and manipulate it. +.PP +Thus, when dc(1) resets, it skips any remaining code waiting to be +executed. +Then, if it is interactive mode, and the error was not a fatal error +(see the \f[B]EXIT STATUS\f[R] section), it asks for more input; +otherwise, it exits with the appropriate return code. +.SH PERFORMANCE +Most dc(1) implementations use \f[B]char\f[R] types to calculate the +value of \f[B]1\f[R] decimal digit at a time, but that can be slow. +This dc(1) does something different. +.PP +It uses large integers to calculate more than \f[B]1\f[R] decimal digit +at a time. +If built in a environment where \f[B]DC_LONG_BIT\f[R] (see the +\f[B]LIMITS\f[R] section) is \f[B]64\f[R], then each integer has +\f[B]9\f[R] decimal digits. +If built in an environment where \f[B]DC_LONG_BIT\f[R] is \f[B]32\f[R] +then each integer has \f[B]4\f[R] decimal digits. +This value (the number of decimal digits per large integer) is called +\f[B]DC_BASE_DIGS\f[R]. +.PP +In addition, this dc(1) uses an even larger integer for overflow +checking. +This integer type depends on the value of \f[B]DC_LONG_BIT\f[R], but is +always at least twice as large as the integer type used to store digits. +.SH LIMITS +The following are the limits on dc(1): +.TP +\f[B]DC_LONG_BIT\f[R] +The number of bits in the \f[B]long\f[R] type in the environment where +dc(1) was built. +This determines how many decimal digits can be stored in a single large +integer (see the \f[B]PERFORMANCE\f[R] section). +.TP +\f[B]DC_BASE_DIGS\f[R] +The number of decimal digits per large integer (see the +\f[B]PERFORMANCE\f[R] section). +Depends on \f[B]DC_LONG_BIT\f[R]. +.TP +\f[B]DC_BASE_POW\f[R] +The max decimal number that each large integer can store (see +\f[B]DC_BASE_DIGS\f[R]) plus \f[B]1\f[R]. +Depends on \f[B]DC_BASE_DIGS\f[R]. +.TP +\f[B]DC_OVERFLOW_MAX\f[R] +The max number that the overflow type (see the \f[B]PERFORMANCE\f[R] +section) can hold. +Depends on \f[B]DC_LONG_BIT\f[R]. +.TP +\f[B]DC_BASE_MAX\f[R] +The maximum output base. +Set at \f[B]DC_BASE_POW\f[R]. +.TP +\f[B]DC_DIM_MAX\f[R] +The maximum size of arrays. +Set at \f[B]SIZE_MAX\-1\f[R]. +.TP +\f[B]DC_SCALE_MAX\f[R] +The maximum \f[B]scale\f[R]. +Set at \f[B]DC_OVERFLOW_MAX\-1\f[R]. +.TP +\f[B]DC_STRING_MAX\f[R] +The maximum length of strings. +Set at \f[B]DC_OVERFLOW_MAX\-1\f[R]. +.TP +\f[B]DC_NAME_MAX\f[R] +The maximum length of identifiers. +Set at \f[B]DC_OVERFLOW_MAX\-1\f[R]. +.TP +\f[B]DC_NUM_MAX\f[R] +The maximum length of a number (in decimal digits), which includes +digits after the decimal point. +Set at \f[B]DC_OVERFLOW_MAX\-1\f[R]. +.TP +\f[B]DC_RAND_MAX\f[R] +The maximum integer (inclusive) returned by the \f[B]\[cq]\f[R] command, +if dc(1). +Set at \f[B]2\[ha]DC_LONG_BIT\-1\f[R]. +.TP +Exponent +The maximum allowable exponent (positive or negative). +Set at \f[B]DC_OVERFLOW_MAX\f[R]. +.TP +Number of vars +The maximum number of vars/arrays. +Set at \f[B]SIZE_MAX\-1\f[R]. +.PP +These limits are meant to be effectively non\-existent; the limits are +so large (at least on 64\-bit machines) that there should not be any +point at which they become a problem. +In fact, memory should be exhausted before these limits should be hit. +.SH ENVIRONMENT VARIABLES +As \f[B]non\-portable extensions\f[R], dc(1) recognizes the following +environment variables: +.TP +\f[B]DC_ENV_ARGS\f[R] +This is another way to give command\-line arguments to dc(1). +They should be in the same format as all other command\-line arguments. +These are always processed first, so any files given in +\f[B]DC_ENV_ARGS\f[R] will be processed before arguments and files given +on the command\-line. +This gives the user the ability to set up \[lq]standard\[rq] options and +files to be used at every invocation. +The most useful thing for such files to contain would be useful +functions that the user might want every time dc(1) runs. +Another use would be to use the \f[B]\-e\f[R] option to set +\f[B]scale\f[R] to a value other than \f[B]0\f[R]. +.RS +.PP +The code that parses \f[B]DC_ENV_ARGS\f[R] will correctly handle quoted +arguments, but it does not understand escape sequences. +For example, the string \f[B]\[lq]/home/gavin/some dc file.dc\[rq]\f[R] +will be correctly parsed, but the string \f[B]\[lq]/home/gavin/some +\[dq]dc\[dq] file.dc\[rq]\f[R] will include the backslashes. +.PP +The quote parsing will handle either kind of quotes, \f[B]\[cq]\f[R] or +\f[B]\[lq]\f[R]. +Thus, if you have a file with any number of single quotes in the name, +you can use double quotes as the outside quotes, as in \f[B]\[lq]some +`dc' file.dc\[rq]\f[R], and vice versa if you have a file with double +quotes. +However, handling a file with both kinds of quotes in +\f[B]DC_ENV_ARGS\f[R] is not supported due to the complexity of the +parsing, though such files are still supported on the command\-line +where the parsing is done by the shell. +.RE +.TP +\f[B]DC_LINE_LENGTH\f[R] +If this environment variable exists and contains an integer that is +greater than \f[B]1\f[R] and is less than \f[B]UINT16_MAX\f[R] +(\f[B]2\[ha]16\-1\f[R]), dc(1) will output lines to that length, +including the backslash newline combo. +The default line length is \f[B]70\f[R]. +.RS +.PP +The special value of \f[B]0\f[R] will disable line length checking and +print numbers without regard to line length and without backslashes and +newlines. +.RE +.TP +\f[B]DC_SIGINT_RESET\f[R] +If dc(1) is not in interactive mode (see the \f[B]INTERACTIVE MODE\f[R] +section), then this environment variable has no effect because dc(1) +exits on \f[B]SIGINT\f[R] when not in interactive mode. +.RS +.PP +However, when dc(1) is in interactive mode, then if this environment +variable exists and contains an integer, a non\-zero value makes dc(1) +reset on \f[B]SIGINT\f[R], rather than exit, and zero makes dc(1) exit. +If this environment variable exists and is \f[I]not\f[R] an integer, +then dc(1) will exit on \f[B]SIGINT\f[R]. +.PP +This environment variable overrides the default, which can be queried +with the \f[B]\-h\f[R] or \f[B]\-\-help\f[R] options. +.RE +.TP +\f[B]DC_TTY_MODE\f[R] +If TTY mode is \f[I]not\f[R] available (see the \f[B]TTY MODE\f[R] +section), then this environment variable has no effect. +.RS +.PP +However, when TTY mode is available, then if this environment variable +exists and contains an integer, then a non\-zero value makes dc(1) use +TTY mode, and zero makes dc(1) not use TTY mode. +.PP +This environment variable overrides the default, which can be queried +with the \f[B]\-h\f[R] or \f[B]\-\-help\f[R] options. +.RE +.TP +\f[B]DC_PROMPT\f[R] +If TTY mode is \f[I]not\f[R] available (see the \f[B]TTY MODE\f[R] +section), then this environment variable has no effect. +.RS +.PP +However, when TTY mode is available, then if this environment variable +exists and contains an integer, a non\-zero value makes dc(1) use a +prompt, and zero or a non\-integer makes dc(1) not use a prompt. +If this environment variable does not exist and \f[B]DC_TTY_MODE\f[R] +does, then the value of the \f[B]DC_TTY_MODE\f[R] environment variable +is used. +.PP +This environment variable and the \f[B]DC_TTY_MODE\f[R] environment +variable override the default, which can be queried with the +\f[B]\-h\f[R] or \f[B]\-\-help\f[R] options. +.RE +.TP +\f[B]DC_EXPR_EXIT\f[R] +If any expressions or expression files are given on the command\-line +with \f[B]\-e\f[R], \f[B]\-\-expression\f[R], \f[B]\-f\f[R], or +\f[B]\-\-file\f[R], then if this environment variable exists and +contains an integer, a non\-zero value makes dc(1) exit after executing +the expressions and expression files, and a zero value makes dc(1) not +exit. +.RS +.PP +This environment variable overrides the default, which can be queried +with the \f[B]\-h\f[R] or \f[B]\-\-help\f[R] options. +.RE +.TP +\f[B]DC_DIGIT_CLAMP\f[R] +When parsing numbers and if this environment variable exists and +contains an integer, a non\-zero value makes dc(1) clamp digits that are +greater than or equal to the current \f[B]ibase\f[R] so that all such +digits are considered equal to the \f[B]ibase\f[R] minus 1, and a zero +value disables such clamping so that those digits are always equal to +their value, which is multiplied by the power of the \f[B]ibase\f[R]. +.RS +.PP +This never applies to single\-digit numbers, as per the bc(1) standard +(see the \f[B]STANDARDS\f[R] section). +.PP +This environment variable overrides the default, which can be queried +with the \f[B]\-h\f[R] or \f[B]\-\-help\f[R] options. +.RE +.SH EXIT STATUS +dc(1) returns the following exit statuses: +.TP +\f[B]0\f[R] +No error. +.TP +\f[B]1\f[R] +A math error occurred. +This follows standard practice of using \f[B]1\f[R] for expected errors, +since math errors will happen in the process of normal execution. +.RS +.PP +Math errors include divide by \f[B]0\f[R], taking the square root of a +negative number, using a negative number as a bound for the +pseudo\-random number generator, attempting to convert a negative number +to a hardware integer, overflow when converting a number to a hardware +integer, overflow when calculating the size of a number, and attempting +to use a non\-integer where an integer is required. +.PP +Converting to a hardware integer happens for the second operand of the +power (\f[B]\[ha]\f[R]), places (\f[B]\[at]\f[R]), left shift +(\f[B]H\f[R]), and right shift (\f[B]h\f[R]) operators. +.RE +.TP +\f[B]2\f[R] +A parse error occurred. +.RS +.PP +Parse errors include unexpected \f[B]EOF\f[R], using an invalid +character, failing to find the end of a string or comment, and using a +token where it is invalid. +.RE +.TP +\f[B]3\f[R] +A runtime error occurred. +.RS +.PP +Runtime errors include assigning an invalid number to any global +(\f[B]ibase\f[R], \f[B]obase\f[R], or \f[B]scale\f[R]), giving a bad +expression to a \f[B]read()\f[R] call, calling \f[B]read()\f[R] inside +of a \f[B]read()\f[R] call, type errors (including attempting to execute +a number), and attempting an operation when the stack has too few +elements. +.RE +.TP +\f[B]4\f[R] +A fatal error occurred. +.RS +.PP +Fatal errors include memory allocation errors, I/O errors, failing to +open files, attempting to use files that do not have only ASCII +characters (dc(1) only accepts ASCII characters), attempting to open a +directory as a file, and giving invalid command\-line options. +.RE +.PP +The exit status \f[B]4\f[R] is special; when a fatal error occurs, dc(1) +always exits and returns \f[B]4\f[R], no matter what mode dc(1) is in. +.PP +The other statuses will only be returned when dc(1) is not in +interactive mode (see the \f[B]INTERACTIVE MODE\f[R] section), since +dc(1) resets its state (see the \f[B]RESET\f[R] section) and accepts +more input when one of those errors occurs in interactive mode. +This is also the case when interactive mode is forced by the +\f[B]\-i\f[R] flag or \f[B]\-\-interactive\f[R] option. +.PP +These exit statuses allow dc(1) to be used in shell scripting with error +checking, and its normal behavior can be forced by using the +\f[B]\-i\f[R] flag or \f[B]\-\-interactive\f[R] option. +.SH INTERACTIVE MODE +Like bc(1), dc(1) has an interactive mode and a non\-interactive mode. +Interactive mode is turned on automatically when both \f[B]stdin\f[R] +and \f[B]stdout\f[R] are hooked to a terminal, but the \f[B]\-i\f[R] +flag and \f[B]\-\-interactive\f[R] option can turn it on in other +situations. +.PP +In interactive mode, dc(1) attempts to recover from errors (see the +\f[B]RESET\f[R] section), and in normal execution, flushes +\f[B]stdout\f[R] as soon as execution is done for the current input. +dc(1) may also reset on \f[B]SIGINT\f[R] instead of exit, depending on +the contents of, or default for, the \f[B]DC_SIGINT_RESET\f[R] +environment variable (see the \f[B]ENVIRONMENT VARIABLES\f[R] section). +.SH TTY MODE +If \f[B]stdin\f[R], \f[B]stdout\f[R], and \f[B]stderr\f[R] are all +connected to a TTY, then \[lq]TTY mode\[rq] is considered to be +available, and thus, dc(1) can turn on TTY mode, subject to some +settings. +.PP +If there is the environment variable \f[B]DC_TTY_MODE\f[R] in the +environment (see the \f[B]ENVIRONMENT VARIABLES\f[R] section), then if +that environment variable contains a non\-zero integer, dc(1) will turn +on TTY mode when \f[B]stdin\f[R], \f[B]stdout\f[R], and \f[B]stderr\f[R] +are all connected to a TTY. +If the \f[B]DC_TTY_MODE\f[R] environment variable exists but is +\f[I]not\f[R] a non\-zero integer, then dc(1) will not turn TTY mode on. +.PP +If the environment variable \f[B]DC_TTY_MODE\f[R] does \f[I]not\f[R] +exist, the default setting is used. +The default setting can be queried with the \f[B]\-h\f[R] or +\f[B]\-\-help\f[R] options. +.PP +TTY mode is different from interactive mode because interactive mode is +required in the bc(1) specification (see the \f[B]STANDARDS\f[R] +section), and interactive mode requires only \f[B]stdin\f[R] and +\f[B]stdout\f[R] to be connected to a terminal. +.SS Command\-Line History +Command\-line history is only enabled if TTY mode is, i.e., that +\f[B]stdin\f[R], \f[B]stdout\f[R], and \f[B]stderr\f[R] are connected to +a TTY and the \f[B]DC_TTY_MODE\f[R] environment variable (see the +\f[B]ENVIRONMENT VARIABLES\f[R] section) and its default do not disable +TTY mode. +See the \f[B]COMMAND LINE HISTORY\f[R] section for more information. +.SS Prompt +If TTY mode is available, then a prompt can be enabled. +Like TTY mode itself, it can be turned on or off with an environment +variable: \f[B]DC_PROMPT\f[R] (see the \f[B]ENVIRONMENT VARIABLES\f[R] +section). +.PP +If the environment variable \f[B]DC_PROMPT\f[R] exists and is a +non\-zero integer, then the prompt is turned on when \f[B]stdin\f[R], +\f[B]stdout\f[R], and \f[B]stderr\f[R] are connected to a TTY and the +\f[B]\-P\f[R] and \f[B]\-\-no\-prompt\f[R] options were not used. +The read prompt will be turned on under the same conditions, except that +the \f[B]\-R\f[R] and \f[B]\-\-no\-read\-prompt\f[R] options must also +not be used. +.PP +However, if \f[B]DC_PROMPT\f[R] does not exist, the prompt can be +enabled or disabled with the \f[B]DC_TTY_MODE\f[R] environment variable, +the \f[B]\-P\f[R] and \f[B]\-\-no\-prompt\f[R] options, and the +\f[B]\-R\f[R] and \f[B]\-\-no\-read\-prompt\f[R] options. +See the \f[B]ENVIRONMENT VARIABLES\f[R] and \f[B]OPTIONS\f[R] sections +for more details. +.SH SIGNAL HANDLING +Sending a \f[B]SIGINT\f[R] will cause dc(1) to do one of two things. +.PP +If dc(1) is not in interactive mode (see the \f[B]INTERACTIVE MODE\f[R] +section), or the \f[B]DC_SIGINT_RESET\f[R] environment variable (see the +\f[B]ENVIRONMENT VARIABLES\f[R] section), or its default, is either not +an integer or it is zero, dc(1) will exit. +.PP +However, if dc(1) is in interactive mode, and the +\f[B]DC_SIGINT_RESET\f[R] or its default is an integer and non\-zero, +then dc(1) will stop executing the current input and reset (see the +\f[B]RESET\f[R] section) upon receiving a \f[B]SIGINT\f[R]. +.PP +Note that \[lq]current input\[rq] can mean one of two things. +If dc(1) is processing input from \f[B]stdin\f[R] in interactive mode, +it will ask for more input. +If dc(1) is processing input from a file in interactive mode, it will +stop processing the file and start processing the next file, if one +exists, or ask for input from \f[B]stdin\f[R] if no other file exists. +.PP +This means that if a \f[B]SIGINT\f[R] is sent to dc(1) as it is +executing a file, it can seem as though dc(1) did not respond to the +signal since it will immediately start executing the next file. +This is by design; most files that users execute when interacting with +dc(1) have function definitions, which are quick to parse. +If a file takes a long time to execute, there may be a bug in that file. +The rest of the files could still be executed without problem, allowing +the user to continue. +.PP +\f[B]SIGTERM\f[R] and \f[B]SIGQUIT\f[R] cause dc(1) to clean up and +exit, and it uses the default handler for all other signals. +The one exception is \f[B]SIGHUP\f[R]; in that case, and only when dc(1) +is in TTY mode (see the \f[B]TTY MODE\f[R] section), a \f[B]SIGHUP\f[R] +will cause dc(1) to clean up and exit. +.SH COMMAND LINE HISTORY +dc(1) supports interactive command\-line editing. +.PP +If dc(1) can be in TTY mode (see the \f[B]TTY MODE\f[R] section), +history can be enabled. +This means that command\-line history can only be enabled when +\f[B]stdin\f[R], \f[B]stdout\f[R], and \f[B]stderr\f[R] are all +connected to a TTY. +.PP +Like TTY mode itself, it can be turned on or off with the environment +variable \f[B]DC_TTY_MODE\f[R] (see the \f[B]ENVIRONMENT VARIABLES\f[R] +section). +.PP +\f[B]Note\f[R]: tabs are converted to 8 spaces. +.SH SEE ALSO +bc(1) +.SH STANDARDS +The dc(1) utility operators and some behavior are compliant with the +operators in the IEEE Std 1003.1\-2017 (\[lq]POSIX.1\-2017\[rq]) bc(1) +specification at +https://pubs.opengroup.org/onlinepubs/9699919799/utilities/bc.html . +.SH BUGS +None are known. +Report bugs at https://github.com/gavinhoward/bc . +.SH AUTHOR +Gavin D. Howard \c +.MT gavin@gavinhoward.com +.ME \c +\ and contributors. diff --git a/static/freebsd/man1/addr2line.1 b/static/freebsd/man1/addr2line.1 new file mode 100644 index 00000000..f1b01954 --- /dev/null +++ b/static/freebsd/man1/addr2line.1 @@ -0,0 +1,182 @@ +.\" Copyright (c) 2009,2010 Joseph Koshy +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer +.\" in this position and unchanged. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR +.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +.\" +.\" $Id: addr2line.1 3642 2018-10-14 14:24:28Z jkoshy $ +.\" +.Dd November 30, 2015 +.Dt ADDR2LINE 1 +.Os +.Sh NAME +.Nm addr2line +.Nd translate program addresses to source file names and line numbers +.Sh SYNOPSIS +.Nm +.Op Fl a | Fl -addresses +.Op Fl b Ar target | Fl -target Ns = Ns Ar target +.Op Fl e Ar pathname | Fl -exe Ns = Ns Ar pathname +.Op Fl f | Fl -functions +.Op Fl i | Fl -inlines +.Op Fl j Ar sectionname | Fl -section Ns = Ns Ar sectionname +.Op Fl p | Fl -pretty-print +.Op Fl s | Fl -basename +.Op Fl C | Fl -demangle +.Op Fl H | Fl -help +.Op Fl V | Fl -version +.Op Ar hexaddress Ns ... +.Sh DESCRIPTION +The +.Nm +utility translates program addresses specified by the command line +arguments +.Ar hexaddress +to their corresponding source file names and line numbers. +If no arguments are given to +.Nm , +it will read these addresses from standard input. +.Pp +Program addresses specified by arguments +.Ar hexaddress +are encoded using the conventions accepted by +.Xr strtoull 3 . +.Pp +By default, +.Nm +will use the executable +.Dq Pa a.out . +The +.Fl e +option may be used to specified a different ELF object. +.Pp +The +.Nm +utility recognizes the following options: +.Bl -tag -width indent +.It Fl a | Fl -addresses +Display the address prior to the line number information. +.It Fl b Ar target | Fl -target Ns = Ns Ar target +This option is recognized by +.Nm +but is ignored. +It is supported for compatibility with GNU binutils. +.It Fl e Ar pathname | Fl -exe Ns = Ns Ar pathname +Use the ELF object specified by argument +.Ar pathname +to translate addresses. +If this option is not specified, +.Nm +will use the file +.Dq Pa a.out . +.It Fl f | Fl -functions +Display function names in addition to file and line number information. +.It Fl i | Fl -inlines +If the address specified belongs to an inlined function, also display the line +number information for its caller, recursively until the first non-inlined +caller. +.It Fl j Ar sectionname | Fl -section Ns = Ns Ar sectionname +The values specified by arguments +.Ar hexaddress +are to be treated as offsets into the section named +.Ar sectionname . +.It Fl p | -pretty-print +Display the line number information on one line, in human readable manner. +.It Fl s | -basename +Display only the base name for each file name. +.It Fl C | Fl -demangle +Demangle C++ names. +.It Fl H | Fl -help +Print a help message. +.It Fl V | Fl -version +Print a version identifier and exit. +.El +.Sh OUTPUT FORMAT +If the +.Fl f +option was not specified, +.Nm +will print the file name and line number for each address specified +on a separate line. +.Pp +If the +.Fl f +option was specified, +.Nm +will print a line containing the name of the function corresponding +to program address +.Ar hexaddress , +followed by a line with the file name and line number. +.Pp +If the +.Fl p +option was specified, +.Nm +will print line number information and function name on one line in +human readable manner. If the +.Fl i +option was also specified, +.Nm +will print the caller function information prefixed with +.Dq (inlined by) . +.Pp +The +.Nm +utility prints the file name and line number using the format +.Dq FILENAME:LINENUMBER . +.Pp +If a file or function name could not be determined, +.Nm +will print a question mark in their place. +If the line number could not be determined, +.Nm +will print a zero in its place. +.Sh EXAMPLES +To map address 080483c4 in the default executable +.Pa a.out +to a source file name and line number use: +.D1 "% addr2line 080483c4" +.Pp +To map address 080483c4 in executable +.Pa helloworld , +use: +.D1 "% addr2line -e helloworld 080483c4" +.Pp +To have +.Nm +act as a filter reading addresses from its standard input use: +.D1 "% addr2line" +.Pp +To print the function name corresponding to an address in addition to +its source file and line number use: +.D1 "% addr2line -f 080483c4" +.Sh EXIT STATUS +.Ex -std +.Sh SEE ALSO +.Xr nm 1 , +.Xr elfdump 1 , +.Xr elfcopy 1 , +.Xr strtoull 3 +.Sh AUTHORS +The +.Nm +utility was written by +.An Kai Wang Aq Mt kaiwang27@users.sourceforge.net . diff --git a/static/freebsd/man1/afslog.1 b/static/freebsd/man1/afslog.1 new file mode 100644 index 00000000..891b29a6 --- /dev/null +++ b/static/freebsd/man1/afslog.1 @@ -0,0 +1,152 @@ +.\" Copyright (c) 2002 - 2007 Kungliga Tekniska Högskolan +.\" (Royal Institute of Technology, Stockholm, Sweden). +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" 3. Neither the name of the Institute nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" $Id$ +.\" +.Dd November 26, 2002 +.Dt AFSLOG 1 +.Os HEIMDAL +.Sh NAME +.Nm afslog +.Nd obtain AFS tokens +.Sh SYNOPSIS +.Nm +.Op Fl h | Fl Fl help +.Op Fl Fl no-v4 +.Op Fl Fl no-v5 +.Op Fl u | Fl Fl unlog +.Op Fl v | Fl Fl verbose +.Op Fl Fl version +.Oo Fl c Ar cell \*(Ba Xo +.Fl Fl cell= Ns Ar cell +.Xc +.Oc +.Oo Fl k Ar realm \*(Ba Xo +.Fl Fl realm= Ns Ar realm +.Xc +.Oc +.Oo Fl P Ar principal \*(Ba Xo +.Fl Fl principal= Ns Ar principal +.Xc +.Oc +.Bk -words +.Oo Fl p Ar path \*(Ba Xo +.Fl Fl file= Ns Ar path +.Xc +.Oc +.Ek +.Op Ar cell | path ... +.Sh DESCRIPTION +.Nm +obtains AFS tokens for a number of cells. What cells to get tokens for +can either be specified as an explicit list, as file paths to get +tokens for, or be left unspecified, in which case +.Nm +will use whatever magic +.Xr krb_afslog 3 +decides upon. +.Pp +Supported options: +.Bl -tag -width Ds +.It Fl Fl no-v4 +This makes +.Nm +not try using Kerberos 4. +.It Fl Fl no-v5 +This makes +.Nm +not try using Kerberos 5. +.It Xo +.Fl P Ar principal , +.Fl Fl principal Ar principal +.Xc +select what Kerberos 5 principal to use. +.It Fl Fl cache Ar cache +select what Kerberos 5 credential cache to use. +.Fl Fl principal +overrides this option. +.It Xo +.Fl u , +.Fl Fl unlog +.Xc +Destroy tokens instead of obtaining new. If this is specified, all +other options are ignored (except for +.Fl Fl help +and +.Fl Fl version ) . +.It Xo +.Fl v , +.Fl Fl verbose +.Xc +Adds more verbosity for what is actually going on. +.It Xo +.Fl c Ar cell, +.Fl Fl cell= Ns Ar cell +.Xc +This specified one or more cell names to get tokens for. +.It Xo +.Fl k Ar realm , +.Fl Fl realm= Ns Ar realm +.Xc +This is the Kerberos realm the AFS servers live in, this should +normally not be specified. +.It Xo +.Fl p Ar path , +.Fl Fl file= Ns Ar path +.Xc +This specified one or more file paths for which tokens should be +obtained. +.El +.Pp +Instead of using +.Fl c +and +.Fl p , +you may also pass a list of cells and file paths after any other +options. These arguments are considered files if they are either +the strings +.Do . Dc +or +.Dq .. +or they contain a slash, or if there exists a file by that name. +.Sh EXAMPLES +Assuming that there is no file called +.Dq openafs.org +in the current directory, and that +.Pa /afs/openafs.org +points to that cell, the follwing should be identical: +.Bd -literal -offset indent +$ afslog -c openafs.org +$ afslog openafs.org +$ afslog /afs/openafs.org/some/file +.Ed +.Sh SEE ALSO +.Xr krb_afslog 3 diff --git a/static/freebsd/man1/alias.1 b/static/freebsd/man1/alias.1 new file mode 100644 index 00000000..755d1f59 --- /dev/null +++ b/static/freebsd/man1/alias.1 @@ -0,0 +1,2 @@ +unalias -a +alias foo diff --git a/static/freebsd/man1/and2.1 b/static/freebsd/man1/and2.1 new file mode 100644 index 00000000..c6994aaa --- /dev/null +++ b/static/freebsd/man1/and2.1 @@ -0,0 +1,3 @@ +set -e +true && false +exit 0 diff --git a/static/freebsd/man1/apply.1 b/static/freebsd/man1/apply.1 new file mode 100644 index 00000000..1e011536 --- /dev/null +++ b/static/freebsd/man1/apply.1 @@ -0,0 +1,137 @@ +.\" Copyright (c) 1983, 1990, 1993 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.Dd January 28, 2022 +.Dt APPLY 1 +.Os +.Sh NAME +.Nm apply +.Nd apply a command to a set of arguments +.Sh SYNOPSIS +.Nm +.Op Fl a Ar c +.Op Fl d +.Op Cm - Ns Ar # +.Ar command argument ... +.Sh DESCRIPTION +The +.Nm +utility runs the named +.Ar command +on each +argument +.Ar argument +in turn. +.Pp +Character sequences of the form +.Dq Li \&%d +in +.Ar command , +where +.Sq Li d +is a digit from 1 to 9, are replaced by the +.Li d Ns \'th +following unused +.Ar argument . +In this case, the largest digit number of arguments are discarded for +each execution of +.Ar command . +.Pp +The options are as follows: +.Bl -tag -width indent +.It Cm - Ns Ar # +Normally arguments are taken singly; the optional number +.Ar # +specifies the number of arguments to be passed to +.Ar command . +If the number is zero, +.Ar command +is run, without arguments, once for each +.Ar argument . +.Pp +If any sequences of +.Dq Li \&%d +occur in +.Ar command , +the +.Fl # +option is ignored. +.It Fl a Ar c +The use of the character +.Sq Li % +as a magic character may be changed with the +.Fl a +option. +.It Fl d +Display the commands that would have been executed, but do not actually +execute them. +.El +.Sh ENVIRONMENT +The following environment variable affects the execution of +.Nm : +.Bl -tag -width SHELL +.It Ev SHELL +Pathname of shell to use. +If this variable is not defined, the POSIX shell is used. +.El +.Sh FILES +.Bl -tag -width /bin/sh -compact +.It Pa /bin/sh +default shell +.El +.Sh EXAMPLES +.Bl -tag -width apply -compact +.It Li "apply echo *" +is similar to +.Xr ls 1 ; +.It Li "apply \-2 cmp a1 b1 a2 b2 a3 b3" +compares the `a' files to the `b' files; +.It Li "apply \-0 who 1 2 3 4 5" +runs +.Xr who 1 +5 times; and +.It Li "apply \'ln %1 /usr/joe\'" * +links all files in the current directory to the directory +.Pa /usr/joe . +.El +.Sh HISTORY +The +.Nm +command appeared in +.Bx 4.2 . +.Sh AUTHORS +.An Rob Pike +.Sh BUGS +Shell metacharacters in +.Ar command +may have bizarre effects; it is best to enclose complicated +commands in single quotes +.Pq '' . +.Pp +The +.Nm +utility does not recognize multibyte characters. diff --git a/static/freebsd/man1/apropos.1 b/static/freebsd/man1/apropos.1 new file mode 100644 index 00000000..9129ae31 --- /dev/null +++ b/static/freebsd/man1/apropos.1 @@ -0,0 +1,513 @@ +.\" $Id: apropos.1,v 1.51 2020/10/01 22:50:00 schwarze Exp $ +.\" +.\" Copyright (c) 2011, 2012 Kristaps Dzonsons +.\" Copyright (c) 2011,2012,2014,2017,2018 Ingo Schwarze +.\" +.\" Permission to use, copy, modify, and distribute this software for any +.\" purpose with or without fee is hereby granted, provided that the above +.\" copyright notice and this permission notice appear in all copies. +.\" +.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +.\" +.Dd $Mdocdate: October 1 2020 $ +.Dt APROPOS 1 +.Os +.Sh NAME +.Nm apropos , +.Nm whatis +.Nd search manual page databases +.Sh SYNOPSIS +.Nm +.Op Fl afk +.Op Fl C Ar file +.Op Fl M Ar path +.Op Fl m Ar path +.Op Fl O Ar outkey +.Op Fl S Ar arch +.Op Fl s Ar section +.Ar expression ... +.Sh DESCRIPTION +The +.Nm apropos +and +.Nm whatis +utilities query manual page databases generated by +.Xr makewhatis 8 , +evaluating +.Ar expression +for each file in each database. +By default, they display the names, section numbers, and description lines +of all matching manuals. +.Pp +By default, +.Nm +searches for +.Xr makewhatis 8 +databases in the default paths stipulated by +.Xr man 1 +and uses case-insensitive extended regular expression matching +over manual names and descriptions +.Pq the Li \&Nm No and Li \&Nd No macro keys . +Multiple terms imply pairwise +.Fl o . +.Pp +.Nm whatis +is a synonym for +.Nm +.Fl f . +.Pp +The options are as follows: +.Bl -tag -width Ds +.It Fl a +Instead of showing only the title lines, show the complete manual pages, +just like +.Xr man 1 +.Fl a +would. +If the standard output is a terminal device and +.Fl c +is not specified, use +.Xr less 1 +to paginate them. +In +.Fl a +mode, the options +.Fl IKOTW +described in the +.Xr mandoc 1 +manual are also available. +.It Fl C Ar file +Specify an alternative configuration +.Ar file +in +.Xr man.conf 5 +format. +.It Fl f +Search for all words in +.Ar expression +in manual page names only. +The search is case-insensitive and matches whole words only. +In this mode, macro keys, comparison operators, and logical operators +are not available. +.It Fl k +Support the full +.Ar expression +syntax. +It is the default for +.Nm . +.It Fl M Ar path +Use the colon-separated path instead of the default list of paths +searched for +.Xr makewhatis 8 +databases. +Invalid paths, or paths without manual databases, are ignored. +.It Fl m Ar path +Prepend the colon-separated paths to the list of paths searched +for +.Xr makewhatis 8 +databases. +Invalid paths, or paths without manual databases, are ignored. +.It Fl O Ar outkey +Show the values associated with the key +.Ar outkey +instead of the manual descriptions. +.It Fl S Ar arch +Restrict the search to pages for the specified +.Xr machine 1 +architecture. +.Ar arch +is case-insensitive. +By default, pages for all architectures are shown. +.It Fl s Ar section +Restrict the search to the specified section of the manual. +By default, pages from all sections are shown. +See +.Xr man 1 +for a listing of sections. +.El +.Pp +The options +.Fl chlw +are also supported and are documented in +.Xr man 1 . +The options +.Fl fkl +are mutually exclusive and override each other. +.Pp +An +.Ar expression +consists of search terms joined by logical operators +.Fl a +.Pq and +and +.Fl o +.Pq or . +The +.Fl a +operator has precedence over +.Fl o +and both are evaluated left-to-right. +.Bl -tag -width Ds +.It \&( Ar expr No \&) +True if the subexpression +.Ar expr +is true. +.It Ar expr1 Fl a Ar expr2 +True if both +.Ar expr1 +and +.Ar expr2 +are true (logical +.Sq and ) . +.It Ar expr1 Oo Fl o Oc Ar expr2 +True if +.Ar expr1 +and/or +.Ar expr2 +evaluate to true (logical +.Sq or ) . +.It Ar term +True if +.Ar term +is satisfied. +This has syntax +.Sm off +.Oo +.Op Ar key Op , Ar key ... +.Pq Cm = | \(ti +.Oc +.Ar val , +.Sm on +where +.Ar key +is an +.Xr mdoc 7 +macro to query and +.Ar val +is its value. +See +.Sx Macro Keys +for a list of available keys. +Operator +.Cm = +evaluates a substring, while +.Cm \(ti +evaluates a case-sensitive extended regular expression. +.It Fl i Ar term +If +.Ar term +is a regular expression, it +is evaluated case-insensitively. +Has no effect on substring terms. +.El +.Pp +Results are sorted first according to the section number in ascending +numerical order, then by the page name in ascending +.Xr ascii 7 +alphabetical order, case-insensitive. +.Pp +Each output line is formatted as +.Pp +.D1 name[, name...](sec) \- description +.Pp +Where +.Dq name +is the manual's name, +.Dq sec +is the manual section, and +.Dq description +is the manual's short description. +If an architecture is specified for the manual, it is displayed as +.Pp +.D1 name(sec/arch) \- description +.Pp +Resulting manuals may be accessed as +.Pp +.Dl $ man \-s sec name +.Pp +If an architecture is specified in the output, use +.Pp +.Dl $ man \-s sec \-S arch name +.Ss Macro Keys +Queries evaluate over a subset of +.Xr mdoc 7 +macros indexed by +.Xr makewhatis 8 . +In addition to the macro keys listed below, the special key +.Cm any +may be used to match any available macro key. +.Pp +Names and description: +.Bl -column "xLix" description -offset indent -compact +.It Li \&Nm Ta manual name +.It Li \&Nd Ta one-line manual description +.It Li arch Ta machine architecture (case-insensitive) +.It Li sec Ta manual section number +.El +.Pp +Sections and cross references: +.Bl -column "xLix" description -offset indent -compact +.It Li \&Sh Ta section header (excluding standard sections) +.It Li \&Ss Ta subsection header +.It Li \&Xr Ta cross reference to another manual page +.It Li \&Rs Ta bibliographic reference +.El +.Pp +Semantic markup for command line utilities: +.Bl -column "xLix" description -offset indent -compact +.It Li \&Fl Ta command line options (flags) +.It Li \&Cm Ta command modifier +.It Li \&Ar Ta command argument +.It Li \&Ic Ta internal or interactive command +.It Li \&Ev Ta environmental variable +.It Li \&Pa Ta file system path +.El +.Pp +Semantic markup for function libraries: +.Bl -column "xLix" description -offset indent -compact +.It Li \&Lb Ta function library name +.It Li \&In Ta include file +.It Li \&Ft Ta function return type +.It Li \&Fn Ta function name +.It Li \&Fa Ta function argument type and name +.It Li \&Vt Ta variable type +.It Li \&Va Ta variable name +.It Li \&Dv Ta defined variable or preprocessor constant +.It Li \&Er Ta error constant +.It Li \&Ev Ta environmental variable +.El +.Pp +Various semantic markup: +.Bl -column "xLix" description -offset indent -compact +.It Li \&An Ta author name +.It Li \&Lk Ta hyperlink +.It Li \&Mt Ta Do mailto Dc hyperlink +.It Li \&Cd Ta kernel configuration declaration +.It Li \&Ms Ta mathematical symbol +.It Li \&Tn Ta tradename +.El +.Pp +Physical markup: +.Bl -column "xLix" description -offset indent -compact +.It Li \&Em Ta italic font or underline +.It Li \&Sy Ta boldface font +.It Li \&Li Ta typewriter font +.El +.Pp +Text production: +.Bl -column "xLix" description -offset indent -compact +.It Li \&St Ta reference to a standards document +.It Li \&At Ta At No version reference +.It Li \&Bx Ta Bx No version reference +.It Li \&Bsx Ta Bsx No version reference +.It Li \&Nx Ta Nx No version reference +.It Li \&Fx Ta Fx No version reference +.It Li \&Ox Ta Ox No version reference +.It Li \&Dx Ta Dx No version reference +.El +.Pp +In general, macro keys are supposed to yield complete results without +expecting the user to consider actual macro usage. +For example, results include: +.Pp +.Bl -tag -width 3n -offset 3n -compact +.It Li \&Fa +function arguments appearing on +.Ic \&Fn +lines +.It Li \&Fn +function names marked up with +.Ic \&Fo +macros +.It Li \&In +include file names marked up with +.Ic \&Fd +macros +.It Li \&Vt +types appearing as function return types and +.It \& +types appearing in function arguments in the SYNOPSIS +.El +.Sh ENVIRONMENT +.Bl -tag -width MANPAGER +.It Ev MANPAGER +Any non-empty value of the environment variable +.Ev MANPAGER +is used instead of the standard pagination program, +.Xr less 1 ; +see +.Xr man 1 +for details. +Only used if +.Fl a +or +.Fl l +is specified. +.It Ev MANPATH +A colon-separated list of directories to search for manual pages; see +.Xr man 1 +for details. +Overridden by +.Fl M , +ignored if +.Fl l +is specified. +.It Ev PAGER +Specifies the pagination program to use when +.Ev MANPAGER +is not defined. +If neither PAGER nor MANPAGER is defined, +.Xr less 1 +is used. +Only used if +.Fl a +or +.Fl l +is specified. +.El +.Sh FILES +.Bl -tag -width "/etc/man.conf" -compact +.It Pa mandoc.db +name of the +.Xr makewhatis 8 +keyword database +.It Pa /etc/man.conf +default +.Xr man 1 +configuration file +.El +.Sh EXIT STATUS +.Ex -std +.Sh EXAMPLES +Search for +.Qq .cf +as a substring of manual names and descriptions: +.Pp +.Dl $ apropos =.cf +.Pp +Include matches for +.Qq .cnf +and +.Qq .conf +as well: +.Pp +.Dl $ apropos =.cf =.cnf =.conf +.Pp +Search in names and descriptions using a case-sensitive regular expression: +.Pp +.Dl $ apropos \(aq\(tiset.?[ug]id\(aq +.Pp +Search for all manual pages in a given section: +.Pp +.Dl $ apropos \-s 9 \&. +.Pp +Search for manuals in the library section mentioning both the +.Qq optind +and the +.Qq optarg +variables: +.Pp +.Dl $ apropos \-s 3 Va=optind \-a Va=optarg +.Pp +Do exactly the same as calling +.Nm whatis +with the argument +.Qq ssh : +.Pp +.Dl $ apropos \-\- \-i \(aqNm\(ti[[:<:]]ssh[[:>:]]\(aq +.Pp +The following two invocations are equivalent: +.Pp +.D1 Li $ apropos -S Ar arch Li -s Ar section expression +.Bd -ragged -offset indent +.Li $ apropos \e( Ar expression Li \e) +.Li -a arch\(ti^( Ns Ar arch Ns Li |any)$ +.Li -a sec\(ti^ Ns Ar section Ns Li $ +.Ed +.Sh SEE ALSO +.Xr man 1 , +.Xr re_format 7 , +.Xr makewhatis 8 +.Sh STANDARDS +The +.Nm +utility is compliant with the +.St -p1003.1-2008 +specification of +.Xr man 1 +.Fl k . +.Pp +All options, the +.Nm whatis +command, support for logical operators, macro keys, +substring matching, sorting of results, the environment variables +.Ev MANPAGER +and +.Ev MANPATH , +the database format, and the configuration file +are extensions to that specification. +.Sh HISTORY +Part of the functionality of +.Nm whatis +was already provided by the former +.Nm manwhere +utility in +.Bx 1 . +The +.Nm +and +.Nm whatis +utilities first appeared in +.Bx 2 . +They were rewritten from scratch for +.Ox 5.6 . +.Pp +The +.Fl M +option and the +.Ev MANPATH +variable first appeared in +.Bx 4.3 ; +.Fl m +in +.Bx 4.3 Reno ; +.Fl C +in +.Bx 4.4 Lite1 ; +and +.Fl S +and +.Fl s +in +.Ox 4.5 +for +.Nm +and in +.Ox 5.6 +for +.Nm whatis . +The options +.Fl acfhIKklOTWw +appeared in +.Ox 5.7 . +.Sh AUTHORS +.An -nosplit +.An Bill Joy +wrote +.Nm manwhere +in 1977 and the original +.Bx +.Nm +and +.Nm whatis +in February 1979. +The current version was written by +.An Kristaps Dzonsons Aq Mt kristaps@bsd.lv +and +.An Ingo Schwarze Aq Mt schwarze@openbsd.org . diff --git a/static/freebsd/man1/ar.1 b/static/freebsd/man1/ar.1 new file mode 100644 index 00000000..4b3c8081 --- /dev/null +++ b/static/freebsd/man1/ar.1 @@ -0,0 +1,627 @@ +.\" Copyright (c) 2007,2009-2012 Joseph Koshy. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" This software is provided by Joseph Koshy ``as is'' and +.\" any express or implied warranties, including, but not limited to, the +.\" implied warranties of merchantability and fitness for a particular purpose +.\" are disclaimed. in no event shall Joseph Koshy be liable +.\" for any direct, indirect, incidental, special, exemplary, or consequential +.\" damages (including, but not limited to, procurement of substitute goods +.\" or services; loss of use, data, or profits; or business interruption) +.\" however caused and on any theory of liability, whether in contract, strict +.\" liability, or tort (including negligence or otherwise) arising in any way +.\" out of the use of this software, even if advised of the possibility of +.\" such damage. +.\" +.\" $Id: ar.1 3642 2018-10-14 14:24:28Z jkoshy $ +.\" +.Dd September 30, 2018 +.Dt AR 1 +.Os +.Sh NAME +.Nm ar +.Nd manage archives +.Sh SYNOPSIS +.Nm +.Fl d +.Op Fl f +.Op Fl j +.Op Fl T +.Op Fl v +.Op Fl z +.Ar archive +.Ar +.Nm +.Fl m +.Op Fl a Ar position-after +.Op Fl b Ar position-before +.Op Fl f +.Op Fl i Ar position-before +.Op Fl j +.Op Fl s | Fl S +.Op Fl T +.Op Fl z +.Ar archive +.Ar +.Nm +.Fl p +.Op Fl f +.Op Fl s +.Op Fl T +.Op Fl v +.Ar archive +.Op Ar +.Nm +.Fl q +.Op Fl c +.Op Fl D +.Op Fl f +.Op Fl F Ar flavor | Fl -flavor Ar flavor +.Op Fl s | Fl S +.Op Fl T +.Op Fl U +.Op Fl v +.Op Fl z +.Ar archive +.Ar +.Nm +.Fl r +.Op Fl a Ar position-after +.Op Fl b Ar position-before +.Op Fl c +.Op Fl D +.Op Fl f +.Op Fl F Ar flavor | Fl -flavor Ar flavor +.Op Fl i Ar position-before +.Op Fl j +.Op Fl s | Fl S +.Op Fl T +.Op Fl u +.Op Fl U +.Op Fl v +.Op Fl z +.Ar archive +.Ar +.Nm +.Fl s +.Op Fl D +.Op Fl j +.Op Fl U +.Op Fl z +.Ar archive +.Nm +.Fl t +.Op Fl f +.Op Fl s +.Op Fl T +.Op Fl v +.Ar archive +.Op Ar +.Nm +.Fl x +.Op Fl C +.Op Fl f +.Op Fl o +.Op Fl s +.Op Fl T +.Op Fl u +.Op Fl v +.Ar archive +.Op Ar +.Nm +.Fl M +.Nm +.Fl V +.Sh DESCRIPTION +The +.Nm +utility creates and maintains groups of files combined into an +archive. +Once an archive has been created, new files can be added to it, and +existing files can be extracted, deleted or replaced. +.Pp +Files are named in the archive by their last file name component, +so if a file referenced by a path containing a +.Dq / +is archived, it will be named by the last component of the path. +Similarly when matching paths listed on the command line against +file names stored in the archive, only the last component of the +path will be compared. +.Pp +The normal use of +.Nm +is for the creation and maintenance of libraries suitable for use +with the link editor +.Xr ld 1 , +although it is not restricted to this purpose. +The +.Nm +utility can create and manage an archive symbol table (see +.Xr ar 5 ) +used to speed up link editing operations. +If a symbol table is present in an archive, it will be +kept up-to-date by subsequent operations on the archive. +.Sh OPTIONS +The +.Nm +utility supports the following options: +.Bl -tag -width indent +.It Fl a Ar member-after +When used with option +.Fl m +this option specifies that the archive members specified by +arguments +.Ar +are moved to after the archive member named by argument +.Ar member-after . +When used with option +.Fl r +this option specifies that the files specified by arguments +.Ar +are added after the archive member named by argument +.Ar member-after . +.It Fl b Ar member-before +When used with option +.Fl m +this option specifies that the archive members specified by +arguments +.Ar +are moved to before the archive member named by argument +.Ar member-before . +When used with option +.Fl r +this option specifies that the files specified by arguments +.Ar +are added before the archive member named by argument +.Ar member-before . +.It Fl c +Suppress the informational message printed when a new archive is +created using the +.Fl r +and +.Fl q +options. +.It Fl C +Prevent extracted files from replacing like-named files +in the file system. +.It Fl d +Delete the members named by arguments +.Ar +from the archive specified by argument +.Ar archive . +The archive's symbol table, if present, is updated to reflect +the new contents of the archive. +.It Fl D +When used in combination with the +.Fl r +or +.Fl q +option, insert 0's instead of the real mtime, uid and gid values +and 0644 instead of file mode from the members named by arguments +.Ar . +This ensures that checksums on the resulting archives are reproducible +when member contents are identical. +If multiple +.Fl D +and +.Fl U +options are specified on the command line, the final one takes precedence. +.It Fl f +Synonymous with option +.Fl T . +.It Fl F Ar flavor | Fl -flavor Ar flavor +Create archives with the specified archive format. +Legal values for argument +.Ar flavor +are: +.Bl -tag -width indent -compact +.It Ar bsd +Create BSD format archives. +.It Ar gnu +An alias for +.Ar svr4 . +.It Ar svr4 +Create SVR4 format archives. +.El +If this option is not specified, +.Nm +will create archives using the SVR4 format. +.It Fl i Ar member-before +Synonymous with option +.Fl b . +.It Fl j +This option is accepted for compatibility with the +.Tn FreeBSD +version of the +.Nm +utility, but is ignored. +.It Fl l +This option is accepted for compatibility with GNU +.Xr ar 1 , +but is ignored. +.It Fl m +Move archive members specified by arguments +.Ar +within the archive. +If a position has been specified by one of the +.Fl a , +.Fl b +or +.Fl i +options, the members are moved to before or after the specified +position. +If no position has been specified, the specified members are moved +to the end of the archive. +If the archive has a symbol table, it is updated to reflect the +new contents of the archive. +.It Fl M +Read and execute MRI librarian commands from standard input. +The commands understood by the +.Nm +utility are described in the section +.Sx "MRI Librarian Commands" . +.It Fl o +Preserve the original modification times of members when extracting +them. +.It Fl p +Write the contents of the specified archive members named by +arguments +.Ar +to standard output. +If no members were specified, the contents of all the files in the +archive are written in the order they appear in the archive. +.It Fl q +Append the files specified by arguments +.Ar +to the archive specified by argument +.Ar archive +without checking if the files already exist in the archive. +The archive symbol table will be updated as needed. +If the file specified by the argument +.Ar archive +does not already exist, a new archive will be created. +.It Fl r +Replace (add) the files specified by arguments +.Ar +in the archive specified by argument +.Ar archive , +creating the archive if necessary. +Replacing existing members will not change the order of members within +the archive. +If a file named in arguments +.Ar +does not exist, existing members in the archive that match that +name are not changed. +New files are added to the end of the archive unless one of the +positioning options +.Fl a , +.Fl b +or +.Fl i +is specified. +The archive symbol table, if it exists, is updated to reflect the +new state of the archive. +.It Fl s +Add an archive symbol table (see +.Xr ar 5 ) +to the archive specified by argument +.Ar archive . +Invoking +.Nm +with the +.Fl s +option alone is equivalent to invoking +.Xr ranlib 1 . +.It Fl S +Do not generate an archive symbol table. +.It Fl t +For +.Nm , +list the files specified by arguments +.Ar +in the order in which they appear in the archive, one per line. +If no files are specified, all files in the archive are listed. +.It Fl T +Use only the first fifteen characters of the archive member name or +command line file name argument when naming archive members. +.It Fl u +Conditionally update the archive or extract members. +When used with the +.Fl r +option, files named by arguments +.Ar +will be replaced in the archive if they are newer than their +archived versions. +When used with the +.Fl x +option, the members specified by arguments +.Ar +will be extracted only if they are newer than the corresponding +files in the file system. +.It Fl U +When used in combination with the +.Fl r +or +.Fl q +option, insert the real mtime, uid and gid, and file mode values +from the members named by arguments +.Ar . +If multiple +.Fl D +and +.Fl U +options are specified on the command line, the final one takes precedence. +.It Fl v +Provide verbose output. +When used with the +.Fl d , +.Fl m , +.Fl q +or +.Fl x +options, +.Nm +gives a file-by-file description of the archive modification being +performed, which consists of three white-space separated fields: +the option letter, a dash +.Dq "-" , +and the file name. +When used with the +.Fl r +option, +.Nm +displays the description as above, but the initial letter is an +.Dq a +if the file is added to the archive, or an +.Dq r +if the file replaces a file already in the archive. +When used with the +.Fl p +option, the name of the file enclosed in +.Dq < +and +.Dq > +characters is written to standard output preceded by a single newline +character and followed by two newline characters. +The contents of the named file follow the file name. +When used with the +.Fl t +option, +.Nm +displays eight whitespace separated fields: +the file permissions as displayed by +.Xr strmode 3 , +decimal user and group IDs separated by a slash ( +.Dq / Ns ) , +the file size in bytes, the file modification time in +.Xr strftime 3 +format +.Dq "%b %e %H:%M %Y" , +and the name of the file. +.It Fl V +Print a version identifier and exit. +.It Fl x +Extract archive members specified by arguments +.Ar +into the current directory. +If no members have been specified, extract all members of the archive. +If the file corresponding to an extracted member does not exist it +will be created. +If the file corresponding to an extracted member does exist, its owner +and group will not be changed while its contents will be overwritten +and its permissions will set to that entered in the archive. +The file's access and modification time would be that of the time +of extraction unless the +.Fl o +option was specified. +.It Fl z +This option is accepted for compatibility with the +.Tn FreeBSD +version of the +.Nm +utility, but is ignored. +.El +.Ss "MRI Librarian Commands" +If the +.Fl M +option is specified, the +.Nm +utility will read and execute commands from its standard input. +If standard input is a terminal, the +.Nm +utility will display the prompt +.Dq Li "AR >" +before reading a line, and will continue operation even if errors are +encountered. +If standard input is not a terminal, the +.Nm +utility will not display a prompt and will terminate execution on +encountering an error. +.Pp +Each input line contains a single command. +Words in an input line are separated by whitespace characters. +The first word of the line is the command, the remaining words are +the arguments to the command. +The command word may be specified in either case. +Arguments may be separated by commas or blanks. +.Pp +Empty lines are allowed and are ignored. +Long lines are continued by ending them with the +.Dq Li + +character. +.Pp +The +.Dq Li * +and +.Dq Li "\;" +characters start a comment. +Comments extend till the end of the line. +.Pp +When executing an MRI librarian script the +.Nm +utility works on a temporary copy of an archive. +Changes to the copy are made permanent using the +.Ic save +command. +.Pp +Commands understood by the +.Nm +utility are: +.Bl -tag -width indent +.It Ic addlib Ar archive | Ic addlib Ar archive Pq Ar member Oo Li , Ar member Oc Ns ... +Add the contents of the archive named by argument +.Ar archive +to the current archive. +If specific members are named using the arguments +.Ar member , +then those members are added to the current archive. +If no members are specified, the entire contents of the archive +are added to the current archive. +.It Ic addmod Ar member Oo Li , Ar member Oc Ns ... +Add the files named by arguments +.Ar member +to the current archive. +.It Ic clear +Discard all the contents of the current archive. +.It Ic create Ar archive +Create a new archive named by the argument +.Ar archive , +and makes it the current archive. +If the named archive already exists, it will be overwritten +when the +.Ic save +command is issued. +.It Ic delete Ar module Oo Li , Ar member Oc Ns ... +Delete the modules named by the arguments +.Ar member +from the current archive. +.It Ic directory Ar archive Po Ar member Oo Li , Ar member Oc Ns ... Pc Op Ar outputfile +List each named module in the archive. +The format of the output depends on the verbosity setting set using +the +.Ic verbose +command. +Output is sent to standard output, or to the file specified by +argument +.Ar outputfile . +.It Ic end +Exit successfully from the +.Nm +utility. +Any unsaved changes to the current archive will be discarded. +.It Ic extract Ar member Oo Li , Ar member Oc Ns ... +Extract the members named by the arguments +.Ar member +from the current archive. +.It Ic list +Display the contents of the current archive in verbose style. +.It Ic open Ar archive +Open the archive named by argument +.Ar archive +and make it the current archive. +.It Ic replace Ar member Oo Li , Ar member Oc Ns ... +Replace named members in the current archive with the files specified +by arguments +.Ar member . +The files must be present in the current directory and the named +modules must already exist in the current archive. +.It Ic save +Commit all changes to the current archive. +.It Ic verbose +Toggle the verbosity of the +.Ic directory +command. +.El +.Sh EXAMPLES +To create a new archive +.Pa ex.a +containing three files +.Pa ex1.o , +.Pa ex2.o +and +.Pa ex3.o , +use: +.Dl "ar -rc ex.a ex1.o ex2.o ex3.o" +.Pp +To add an archive symbol table to an existing archive +.Pa ex.a , +use: +.Dl "ar -s ex.a" +.Pp +To delete file +.Pa ex1.o +from archive +.Pa ex.a , +use: +.D1 "ar -d ex.a ex1.o" +.Pp +To verbosely list the contents of archive +.Pa ex.a , +use: +.D1 "ar -tv ex.a" +.Pp +To create a new archive +.Pa ex.a +containing the files +.Pa ex1.o , +and +.Pa ex2.o , +using MRI librarian commands, use the following script: +.Bd -literal -offset indent +create ex.a * specify the output archive +addmod ex1.o ex2.o * add modules +save * save pending changes +end * exit the utility +.Ed +.Sh DIAGNOSTICS +.Ex -std +.Sh SEE ALSO +.Xr ld 1 , +.Xr ranlib 1 , +.Xr archive 3 , +.Xr elf 3 , +.Xr strftime 3 , +.Xr strmode 3 , +.Xr ar 5 +.Sh STANDARDS COMPLIANCE +The +.Nm +utility's support for the +.Fl a , +.Fl b , +.Fl c , +.Fl i , +.Fl m , +.Fl p , +.Fl q , +.Fl r , +.Fl s , +.Fl t , +.Fl u , +.Fl v , +.Fl C +and +.Fl T +options is believed to be compliant with +.St -p1003.2 . +.Sh HISTORY +An +.Nm +command first appeared in AT&T UNIX Version 1. +In +.Fx 8.0 , +.An Kai Wang Aq Mt kaiw@FreeBSD.org +reimplemented +.Nm +using the +.Lb libarchive +and the +.Lb libelf . diff --git a/static/freebsd/man1/asa.1 b/static/freebsd/man1/asa.1 new file mode 100644 index 00000000..68d07357 --- /dev/null +++ b/static/freebsd/man1/asa.1 @@ -0,0 +1,94 @@ +.\" $NetBSD: asa.1,v 1.11 2002/02/08 01:36:18 ross Exp $ +.\" +.\" Copyright (c) 1993 Winning Strategies, Inc. +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by Winning Strategies, Inc. +.\" 4. The name of the author may not be used to endorse or promote products +.\" derived from this software without specific prior written permission +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +.\" +.Dd May 9, 2002 +.Dt ASA 1 +.Os +.Sh NAME +.Nm asa +.Nd interpret carriage-control characters +.Sh SYNOPSIS +.Nm +.Op Ar +.Sh DESCRIPTION +The +.Nm +utility reads files sequentially, mapping +.Tn FORTRAN +carriage-control characters to line-printer control sequences, +and writes them to the standard output. +.Pp +The first character of each line is interpreted as a carriage-control +character. +The following characters are interpreted as follows: +.Bl -tag -width ".Aq space" +.It Aq space +Output the rest of the line without change. +.It 0 +Output a +.Aq newline +character before printing the rest of the line. +.It 1 +Output a +.Aq formfeed +character before printing the rest of the line. +.It \&+ +The trailing +.Aq newline +of the previous line is replaced by a +.Aq carriage-return +before printing the rest of the line. +.El +.Pp +Lines beginning with characters other than the above are treated as if they +begin with +.Aq space . +.Sh EXIT STATUS +.Ex -std +.Sh EXAMPLES +To view a file containing the output of a +.Tn FORTRAN +program: +.Pp +.Dl "asa file" +.Pp +To format the output of a +.Tn FORTRAN +program and redirect it to a line-printer: +.Pp +.Dl "a.out | asa | lpr" +.Sh STANDARDS +The +.Nm +utility conforms to +.St -p1003.1-2001 . +.Sh AUTHORS +.An J.T. Conklin , +Winning Strategies, Inc. diff --git a/static/freebsd/man1/atf-check.1 b/static/freebsd/man1/atf-check.1 new file mode 100644 index 00000000..b03058e8 --- /dev/null +++ b/static/freebsd/man1/atf-check.1 @@ -0,0 +1,175 @@ +.\" Copyright (c) 2008 The NetBSD Foundation, Inc. +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND +.\" CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, +.\" INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +.\" MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +.\" IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS BE LIABLE FOR ANY +.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE +.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN +.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +.Dd June 21, 2020 +.Dt ATF-CHECK 1 +.Os +.Sh NAME +.Nm atf-check +.Nd executes a command and analyzes its results +.Sh SYNOPSIS +.Nm +.Op Fl s Ar qual:value +.Op Fl o Ar action:arg ... +.Op Fl e Ar action:arg ... +.Op Fl x +.Ar command +.Sh DESCRIPTION +.Nm +executes a given command and analyzes its results, including +exit code, stdout and stderr. +.Pp +.Bf Em +Test cases must use +.Xr atf-sh 3 Ns ' Ns s +.Nm atf_check +builtin function instead of calling this utility directly. +.Ef +.Pp +In the first synopsis form, +.Nm +will execute the provided command and apply checks specified +by arguments. +By default it will act as if it was run with +.Fl s +.Ar exit:0 +.Fl o +.Ar empty +.Fl e +.Ar empty . +Multiple checks for the same output channel are allowed and, if specified, +their results will be combined as a logical and (meaning that the output must +match all the provided checks). +.Pp +In the second synopsis form, +.Nm +will print information about all supported options and their purpose. +.Pp +The following options are available: +.Bl -tag -width XqualXvalueXX +.It Fl s Ar qual:value +Analyzes termination status. +Must be one of: +.Bl -tag -width signal: -compact +.It Ar exit: +checks that the program exited cleanly and that its exit status is equal to +.Va value . +The exit code can be omitted altogether, in which case any clean exit is +accepted. +.It Ar ignore +ignores the exit check. +.It Ar signal: +checks that the program exited due to a signal and that the signal that +terminated it is +.Va value . +The signal can be specified both as a number or as a name, or it can also +be omitted altogether, in which case any signal is accepted. +.El +.Pp +Most of these checkers can be prefixed by the +.Sq not- +string, which effectively reverses the check. +.It Fl o Ar action:arg +Analyzes standard output. +Must be one of: +.Bl -tag -width inline: -compact +.It Ar empty +checks that stdout is empty +.It Ar ignore +ignores stdout +.It Ar file: +compares stdout with given file +.It Ar inline: +compares stdout with inline value +.It Ar match: +looks for a regular expression in stdout +.It Ar save: +saves stdout to given file +.El +.Pp +Most of these checkers can be prefixed by the +.Sq not- +string, which effectively reverses the check. +.It Fl e Ar action:arg +Analyzes standard error (syntax identical to above) +.It Fl x +Executes +.Ar command +as a shell command line, executing it with the system shell defined by +.Va ATF_SHELL . +You should avoid using this flag if at all possible to prevent shell quoting +issues. +.It Fl r Ar timeout[:interval] +Repeats failed checks until the +.Ar timeout +(in seconds) expires. +If unspecified, the default +.Ar interval +(in milliseconds) is 50 ms. +This can be used to wait for an expected update to the contents of a file. +.El +.Sh ENVIRONMENT +.Bl -tag -width ATFXSHELLXX -compact +.It Va ATF_SHELL +Path to the system shell to be used when the +.Fl x +is given to run commands. +.El +.Sh EXIT STATUS +.Nm +exits 0 on success, and other (unspecified) value on failure. +.Sh EXAMPLES +The following are sample invocations from within a test case. +Note that we use the +.Nm atf_check +function provided by +.Xr atf-sh 3 +instead of executing +.Nm +directly: +.Bd -literal -offset indent +# Exit code 0, nothing on stdout/stderr +atf_check 'true' + +# Typical usage if failure is expected +atf_check -s not-exit:0 'false' + +# Checking stdout/stderr +echo foobar >expout +atf_check -o file:expout -e inline:"xx\etyy\en" \e + 'echo foobar ; printf "xx\etyy\en" >&2' + +# Checking for a crash +atf_check -s signal:sigsegv my_program + +# Combined checks +atf_check -o match:foo -o not-match:bar echo foo baz + +# Wait 5 seconds for a line to show up in a file +( sleep 2 ; echo "testing 123" > $test_path ) & +atf-check -o ignore -e ignore -s exit:0 -r 5 \e + grep "testing 123" $test_path +.Ed +.Sh SEE ALSO +.Xr atf-sh 1 diff --git a/static/freebsd/man1/atf-sh.1 b/static/freebsd/man1/atf-sh.1 new file mode 100644 index 00000000..b81bd18c --- /dev/null +++ b/static/freebsd/man1/atf-sh.1 @@ -0,0 +1,104 @@ +.\" Copyright (c) 2010 The NetBSD Foundation, Inc. +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND +.\" CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, +.\" INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +.\" MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +.\" IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS BE LIABLE FOR ANY +.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE +.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN +.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +.Dd March 6, 2017 +.Dt ATF-SH 1 +.Os +.Sh NAME +.Nm atf-sh +.Nd interpreter for shell-based test programs +.Sh SYNOPSIS +.Nm +.Op Fl s Ar shell +.Ar script +.Sh DESCRIPTION +.Nm +is an interpreter that runs the test program given in +.Ar script +after loading the +.Xr atf-sh 3 +library. +.Pp +.Nm +is not a real interpreter though: it is just a wrapper around +the system-wide shell defined by +.Va ATF_SHELL . +.Nm +executes the interpreter, loads the +.Xr atf-sh 3 +library and then runs the script. +You must consider +.Nm atf-sh +to be a POSIX shell by default and thus should not use any non-standard +extensions. +.Pp +The following options are available: +.Bl -tag -width XsXshellXXX +.It Fl s Ar shell +Specifies the shell to use instead of the value provided by +.Va ATF_SHELL . +.El +.Sh ENVIRONMENT +.Bl -tag -width ATFXLIBEXECDIRXX -compact +.It Va ATF_LIBEXECDIR +Overrides the builtin directory where +.Nm +is located. +Should not be overridden other than for testing purposes. +.It Va ATF_PKGDATADIR +Overrides the builtin directory where +.Pa libatf-sh.subr +is located. +Should not be overridden other than for testing purposes. +.It Va ATF_SHELL +Path to the system shell to be used in the generated scripts. +Scripts must not rely on this variable being set to select a specific +interpreter. +.It Va ATF_SHELL +Path to the system shell to be used in the generated scripts. +.El +.Sh EXAMPLES +Scripts using +.Xr atf-sh 3 +should start with: +.Bd -literal -offset indent +#! /usr/bin/env atf-sh +.Ed +.Pp +Alternatively, if you want to explicitly choose a shell interpreter, you cannot +rely on +.Xr env 1 +to find +.Nm . +Instead, you have to hardcode the path to +.Nm +in the script and then use the +.Fl s +option afterwards as a +.Em single parameter : +.Bd -literal -offset indent +#! /path/to/bin/atf-sh -s/bin/bash +.Ed +.Sh SEE ALSO +.Xr atf-sh 3 diff --git a/static/freebsd/man1/atf-test-program.1 b/static/freebsd/man1/atf-test-program.1 new file mode 100644 index 00000000..0ca19635 --- /dev/null +++ b/static/freebsd/man1/atf-test-program.1 @@ -0,0 +1,99 @@ +.\" Copyright (c) 2007 The NetBSD Foundation, Inc. +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND +.\" CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, +.\" INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +.\" MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +.\" IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS BE LIABLE FOR ANY +.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE +.\" GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN +.\" IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +.Dd March 2, 2014 +.Dt ATF-TEST-PROGRAM 1 +.Os +.Sh NAME +.Nm atf-test-program +.Nd common interface to ATF test programs +.Sh SYNOPSIS +.Nm +.Op Fl r Ar resfile +.Op Fl s Ar srcdir +.Op Fl v Ar var1=value1 Op .. Fl v Ar varN=valueN +.Ar test_case +.Nm +.Fl l +.Sh DESCRIPTION +Test programs written using the ATF libraries all share a common user +interface, which is what this manual page describes. +.Em NOTE: There is no binary known as +.Nm ; +.Em what is described in this manual page is the command-line interface +.Em exposed by the atf-c, atf-c++ and atf-sh bindings . +.Pp +In the first synopsis form, the test program will execute the provided +test case and print its results to the standard output, unless otherwise +stated by the +.Fl r +flag. +Optionally, the test case name can be suffixed by +.Sq :cleanup , +in which case the cleanup routine of the test case will be executed +instead of the test case body; see +.Xr atf-test-case 4 . +Note that the test case is +.Em executed without isolation , +so it can and probably will create and modify files in the current directory. +To execute test cases in a controller manner, you need a runtime engine +that understands the ATF interface. +The recommended runtime engine is +.Xr kyua 1 . +You should only execute test cases by hand for debugging purposes. +.Pp +In the second synopsis form, the test program will list all available +test cases alongside their meta-data properties in a format that is +machine parseable. +This list is processed by +.Xr kyua 1 +to know how to execute the test cases of a given test program. +.Pp +The following options are available: +.Bl -tag -width XvXvarXvalueXX +.It Fl l +Lists available test cases alongside a brief description for each of them. +.It Fl r Ar resfile +Specifies the file that will receive the test case result. +If not specified, the test case prints its results to stdout. +If the result of a test case needs to be parsed by another program, you must +use this option to redirect the result to a file and then read the resulting +file from the other program. +Note: +.Em do not try to process the stdout of the test case +because your program may break in the future. +.It Fl s Ar srcdir +The path to the directory where the test program is located. +This is needed in all cases, except when the test program is being executed +from the current directory. +The test program will use this path to locate any helper data files or +utilities. +.It Fl v Ar var=value +Sets the configuration variable +.Ar var +to the value +.Ar value . +.El +.Sh SEE ALSO +.Xr kyua 1 diff --git a/static/freebsd/man1/athrd.1 b/static/freebsd/man1/athrd.1 new file mode 100644 index 00000000..34672736 --- /dev/null +++ b/static/freebsd/man1/athrd.1 @@ -0,0 +1,168 @@ +.\"- +.\" Copyright (c) 2002-2009 Sam Leffler, Errno Consulting +.\" All rights reserved. +.\"" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer, +.\" without modification. +.\" 2. Redistributions in binary form must reproduce at minimum a disclaimer +.\" similar to the "NO WARRANTY" disclaimer below ("Disclaimer") and any +.\" redistribution must be conditioned upon including a substantially +.\" similar Disclaimer requirement for further binary redistribution. +.\" +.\" NO WARRANTY +.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +.\" LIMITED TO, THE IMPLIED WARRANTIES OF NONINFRINGEMENT, MERCHANTIBILITY +.\" AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL +.\" THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, +.\" OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +.\" IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF +.\" THE POSSIBILITY OF SUCH DAMAGES. +.\"/ +.Dd January 27, 2009 +.Dt ATHRD 1 +.Os +.Sh NAME +.Nm athrd +.Nd list channels and transmit power for a country/regulatory domain +.Sh SYNOPSIS +.Nm +.Op Fl aedlpcfr4ABGT +.Op Fl m Ar mode +.Bk +.Op Ar country +.Ek +.Sh DESCRIPTION +.Nm +displays the list of frequencies and the associated maximum transmit +power permitted within a regulatory domain and/or country. +.Pp +If no command line options are given, a default country (\c +.Ql US ) +is used. +Country and regulatory names are case insensitive. +.Pp +The following options are available: +.Bl -tag -width indent +.It Fl a +By default +.Nm +will display B channels only if they are not also marked as available for +use as G channels and similary for A and T channels. +With this option +.Nm +will list all channels. +.It Fl e +Calculate channels not assuming extended channel mode. +.It Fl d +Enabling debugging in the HAL code that calculates the available channels +and transmit power values. +.It Fl l +Provide a list of all known country and regulatory domain names. +.It Fl m Ar mode +Calculate channels and transmit power for operation in +.Ql mode ; +one of +.Ql station , +.Ql ibss , +.Ql monitor , +and +.Ql ap +(or the first two letters). +.It Fl p +Mark passive scan channels with lower case letters and active +scan channels with upper case letters. +.It Fl r +Mark channels that require DFS with a +.Ql * . +.It Fl 4 +Mark channels that have a 4ms packet limit with a +.Ql 4 . +.It Fl c +Display IEEE channel numbers instead of frequencies. +.It Fl f +Display frequencies (default). +.It Fl A +Display only 11A channels. +.It Fl B +Display only 11B channels. +.It Fl G +Display only 11G channels. +.It Fl T +Display only Turbo channels. +.El +.Sh EXAMPLES +The following demonstrates how to list the permissible frequencies +and maximum transport power per channel for use in Spain: +.Bd -literal -offset 2n +.Li # Ic athrd es +SPAIN (ES, 0x2d4, 724) NULL1_WORLD (0x3, 3) +2412G 14.0 2417G 14.0 2422G 14.0 2427G 17.0 2432G 14.0 2437G 17.0 +2442G 14.0 2447G 17.0 2452G 17.0 2457G 14.0 2462G 17.0 +.Ed +.Pp +Each frequency has a suffix that is one of: +.Ql G , +.Ql B , +.Ql A , +or +.Ql T +according to whether the channel is usable with 802.11g, 802.11b, +802.11a, or Atheros Turbo mode. +All channels listed as +.Ql G +are also usable in +.Ql B . +Likewise, all channels listed as +.Ql A +are usable in +.Ql T . +Channels listed as +.Ql B +or +.Ql T +are only usable in those modes. +(Note that when the +.Fl p +option is specified passive scan channels are marked with a lower case +.Ql g , +.Ql b , +.Ql a , +or +.Ql t .) +The transmit power is given in units of dbM. +.Sh DIAGNOSTICS +Various diagnostics about unknown regulatory domains and/or country +codes may be encountered. +Use the +.Fl l +option for a list of valid names. +.Sh SEE ALSO +.Xr ath 4 , +.Xr ath_hal 4 +.Sh STANDARDS +Lots belong here. +.Sh NOTES +.Nm +use the HAL to calculate the set of channels. +The transmit power calculations are done by emulating +how the HAL works. +Because +.Nm +does not +read the actual EEPROM contents from a device this emulation may lag +behind current practice. +.Sh BUGS +The HAL reset logic should be used to calculate the transmit power +for each channel instead of using a separate copy of the code. +The data presented by +.Nm +are the expected values; for compliance testing one must measure the actual +operation of the driver and the HAL. diff --git a/static/freebsd/man1/auditreduce.1 b/static/freebsd/man1/auditreduce.1 new file mode 100644 index 00000000..0a197a87 --- /dev/null +++ b/static/freebsd/man1/auditreduce.1 @@ -0,0 +1,200 @@ +.\" Copyright (c) 2004 Apple Inc. +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. Neither the name of Apple Inc. ("Apple") nor the names of +.\" its contributors may be used to endorse or promote products derived +.\" from this software without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR +.\" ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING +.\" IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +.\" POSSIBILITY OF SUCH DAMAGE. +.\" +.Dd February 20, 2020 +.Dt AUDITREDUCE 1 +.Os +.Sh NAME +.Nm auditreduce +.Nd "select records from audit trail files" +.Sh SYNOPSIS +.Nm +.Op Fl A +.Op Fl a Ar YYYYMMDD Ns Op Ar HH Ns Op Ar MM Ns Op Ar SS +.Op Fl b Ar YYYYMMDD Ns Op Ar HH Ns Op Ar MM Ns Op Ar SS +.Op Fl c Ar flags +.Op Fl d Ar YYYYMMDD +.Op Fl e Ar euid +.Op Fl f Ar egid +.Op Fl g Ar rgid +.Op Fl j Ar id +.Op Fl m Ar event +.Op Fl o Ar object Ns = Ns Ar value +.Op Fl r Ar ruid +.Op Fl u Ar auid +.Op Fl v +.Op Fl z Ar zone +.Op Ar +.Sh DESCRIPTION +The +.Nm +utility selects records from the audit trail files based on the specified +criteria. +Matching audit records are printed to the standard output in +their raw binary form. +If no +.Ar file +argument is specified, the standard input is used +by default. +Use the +.Xr praudit 1 +utility to print the selected audit records in human-readable form. +.Pp +The options are as follows: +.Bl -tag -width indent +.It Fl A +Select all records. +.It Fl a Ar YYYYMMDD Ns Op Ar HH Ns Op Ar MM Ns Op Ar SS +Select records that occurred after or on the given datetime. +.It Fl b Ar YYYYMMDD Ns Op Ar HH Ns Op Ar MM Ns Op Ar SS +Select records that occurred before the given datetime. +.It Fl c Ar flags +Select records matching the given audit classes specified as a comma +separated list of audit flags. +See +.Xr audit_control 5 +for a description of audit flags. +.It Fl d Ar YYYYMMDD +Select records that occurred on a given date. +This option cannot be used with +.Fl a +or +.Fl b . +.It Fl e Ar euid +Select records with the given effective user ID or name. +.It Fl f Ar egid +Select records with the given effective group ID or name. +.It Fl g Ar rgid +Select records with the given real group ID or name. +.It Fl j Ar id +Select records having a subject token with matching ID, where ID is a process ID. +.It Fl m Ar event +Select records with the given event name or number. This option can +be used more then once to select records of multiple event types. +See +.Xr audit_event 5 +for a description of audit event names and numbers. +.It Fl o Ar object Ns = Ns Ar value +.Bl -tag -width ".Cm msgqid" +.It Cm file +Select records containing path tokens, where the pathname matches +one of the comma delimited extended regular expression contained in +given specification. +Regular expressions which are prefixed with a tilde +.Pq Ql ~ +are excluded +from the search results. +These extended regular expressions are processed from left to right, +and a path will either be selected or deslected based on the first match. +.Pp +Since commas are used to delimit the regular expressions, a backslash +.Pq Ql \e +character should be used to escape the comma if it is a part of the search +pattern. +.It Cm msgqid +Select records containing the given message queue ID. +.It Cm pid +Select records containing the given process ID. +.It Cm semid +Select records containing the given semaphore ID. +.It Cm shmid +Select records containing the given shared memory ID. +.El +.It Fl r Ar ruid +Select records with the given real user ID or name. +.It Fl u Ar auid +Select records with the given audit ID. +.It Fl v +Invert sense of matching, to select records that do not match. +.It Fl z Ar zone +Select records from the given zone(s). +.Ar zone +is a glob for zones to match. +.El +.Sh EXAMPLES +To select all records associated with effective user ID root from the audit +log +.Pa /var/audit/20031016184719.20031017122634 : +.Bd -literal -offset indent +auditreduce -e root \e + /var/audit/20031016184719.20031017122634 +.Ed +.Pp +To select all +.Xr setlogin 2 +events from that log: +.Bd -literal -offset indent +auditreduce -m AUE_SETLOGIN \e + /var/audit/20031016184719.20031017122634 +.Ed +.Pp +Output from the above command lines will typically be piped to a new trail +file, or via standard output to the +.Xr praudit 1 +command. +.Pp +Select all records containing a path token where the pathname contains +.Pa /etc/master.passwd : +.Bd -literal -offset indent +auditreduce -o file="/etc/master.passwd" \e + /var/audit/20031016184719.20031017122634 +.Ed +.Pp +Select all records containing path tokens, where the pathname is a TTY +device: +.Bd -literal -offset indent +auditreduce -o file="/dev/tty[a-zA-Z][0-9]+" \e + /var/audit/20031016184719.20031017122634 +.Ed +.Pp +Select all records containing path tokens, where the pathname is a TTY +except for +.Pa /dev/ttyp2 : +.Bd -literal -offset indent +auditreduce -o file="~/dev/ttyp2,/dev/tty[a-zA-Z][0-9]+" \e + /var/audit/20031016184719.20031017122634 +.Ed +.Sh SEE ALSO +.Xr praudit 1 , +.Xr audit_control 5 , +.Xr audit_event 5 +.Sh HISTORY +The OpenBSM implementation was created by McAfee Research, the security +division of McAfee Inc., under contract to Apple Computer Inc.\& in 2004. +It was subsequently adopted by the TrustedBSD Project as the foundation for +the OpenBSM distribution. +.Sh AUTHORS +.An -nosplit +This software was created by McAfee Research, the security research division +of McAfee, Inc., under contract to Apple Computer Inc. +Additional authors include +.An Wayne Salamon , +.An Robert Watson , +and SPARTA Inc. +.Pp +The Basic Security Module (BSM) interface to audit records and audit event +stream format were defined by Sun Microsystems. diff --git a/static/freebsd/man1/awk.1 b/static/freebsd/man1/awk.1 new file mode 100644 index 00000000..496a2a65 --- /dev/null +++ b/static/freebsd/man1/awk.1 @@ -0,0 +1,696 @@ +.de EX +.nf +.ft CW +.. +.de EE +.br +.fi +.ft 1 +.. +.de TF +.IP "" "\w'\fB\\$1\ \ \fP'u" +.PD 0 +.. +.TH AWK 1 +.CT 1 files prog_other +.SH NAME +awk \- pattern-directed scanning and processing language +.SH SYNOPSIS +.B awk +[ +.BI \-F +.I fs +| +.B \-\^\-csv +] +[ +.BI \-v +.I var=value +] +[ +.I 'prog' +| +.BI \-f +.I progfile +] +[ +.I file ... +] +.SH DESCRIPTION +.I Awk +scans each input +.I file +for lines that match any of a set of patterns specified literally in +.I prog +or in one or more files +specified as +.B \-f +.IR progfile . +With each pattern +there can be an associated action that will be performed +when a line of a +.I file +matches the pattern. +Each line is matched against the +pattern portion of every pattern-action statement; +the associated action is performed for each matched pattern. +The file name +.B \- +means the standard input. +Any +.I file +of the form +.I var=value +is treated as an assignment, not a filename, +and is executed at the time it would have been opened if it were a filename. +The option +.B \-v +followed by +.I var=value +is an assignment to be done before +.I prog +is executed; +any number of +.B \-v +options may be present. +The +.B \-F +.I fs +option defines the input field separator to be the regular expression +.IR fs . +The +.B \-\^\-csv +option causes +.I awk +to process records using (more or less) standard comma-separated values +(CSV) format. +.PP +An input line is normally made up of fields separated by white space, +or by the regular expression +.BR FS . +The fields are denoted +.BR $1 , +.BR $2 , +\&..., while +.B $0 +refers to the entire line. +If +.BR FS +is null, the input line is split into one field per character. +.PP +A pattern-action statement has the form: +.IP +.IB pattern " { " action " } +.PP +A missing +.BI { " action " } +means print the line; +a missing pattern always matches. +Pattern-action statements are separated by newlines or semicolons. +.PP +An action is a sequence of statements. +A statement can be one of the following: +.PP +.EX +.ta \w'\f(CWdelete array[expression]\fR'u +.RS +.nf +.ft CW +if(\fI expression \fP)\fI statement \fP\fR[ \fPelse\fI statement \fP\fR]\fP +while(\fI expression \fP)\fI statement\fP +for(\fI expression \fP;\fI expression \fP;\fI expression \fP)\fI statement\fP +for(\fI var \fPin\fI array \fP)\fI statement\fP +do\fI statement \fPwhile(\fI expression \fP) +break +continue +{\fR [\fP\fI statement ... \fP\fR] \fP} +\fIexpression\fP #\fR commonly\fP\fI var = expression\fP +print\fR [ \fP\fIexpression-list \fP\fR] \fP\fR[ \fP>\fI expression \fP\fR]\fP +printf\fI format \fP\fR[ \fP,\fI expression-list \fP\fR] \fP\fR[ \fP>\fI expression \fP\fR]\fP +return\fR [ \fP\fIexpression \fP\fR]\fP +next #\fR skip remaining patterns on this input line\fP +nextfile #\fR skip rest of this file, open next, start at top\fP +delete\fI array\fP[\fI expression \fP] #\fR delete an array element\fP +delete\fI array\fP #\fR delete all elements of array\fP +exit\fR [ \fP\fIexpression \fP\fR]\fP #\fR exit immediately; status is \fP\fIexpression\fP +.fi +.RE +.EE +.DT +.PP +Statements are terminated by +semicolons, newlines or right braces. +An empty +.I expression-list +stands for +.BR $0 . +String constants are quoted \&\f(CW"\ "\fR, +with the usual C escapes recognized within. +Expressions take on string or numeric values as appropriate, +and are built using the operators +.B + \- * / % ^ +(exponentiation), and concatenation (indicated by white space). +The operators +.B +! ++ \-\- += \-= *= /= %= ^= > >= < <= == != ?: +are also available in expressions. +Variables may be scalars, array elements +(denoted +.IB x [ i ] \fR) +or fields. +Variables are initialized to the null string. +Array subscripts may be any string, +not necessarily numeric; +this allows for a form of associative memory. +Multiple subscripts such as +.B [i,j,k] +are permitted; the constituents are concatenated, +separated by the value of +.BR SUBSEP . +.PP +The +.B print +statement prints its arguments on the standard output +(or on a file if +.BI > " file +or +.BI >> " file +is present or on a pipe if +.BI | " cmd +is present), separated by the current output field separator, +and terminated by the output record separator. +.I file +and +.I cmd +may be literal names or parenthesized expressions; +identical string values in different statements denote +the same open file. +The +.B printf +statement formats its expression list according to the +.I format +(see +.IR printf (3)). +The built-in function +.BI close( expr ) +closes the file or pipe +.IR expr . +The built-in function +.BI fflush( expr ) +flushes any buffered output for the file or pipe +.IR expr . +.PP +The mathematical functions +.BR atan2 , +.BR cos , +.BR exp , +.BR log , +.BR sin , +and +.B sqrt +are built in. +Other built-in functions: +.TF "\fBlength(\fR[\fIv\^\fR]\fB)\fR" +.TP +\fBlength(\fR[\fIv\^\fR]\fB)\fR +the length of its argument +taken as a string, +number of elements in an array for an array argument, +or length of +.B $0 +if no argument. +.TP +.B rand() +random number on [0,1). +.TP +\fBsrand(\fR[\fIs\^\fR]\fB)\fR +sets seed for +.B rand +and returns the previous seed. +.TP +.BI int( x\^ ) +truncates to an integer value. +.TP +\fBsubstr(\fIs\fB, \fIm\fR [\fB, \fIn\^\fR]\fB)\fR +the +.IR n -character +substring of +.I s +that begins at position +.I m +counted from 1. +If no +.IR n , +use the rest of the string. +.TP +.BI index( s , " t" ) +the position in +.I s +where the string +.I t +occurs, or 0 if it does not. +.TP +.BI match( s , " r" ) +the position in +.I s +where the regular expression +.I r +occurs, or 0 if it does not. +The variables +.B RSTART +and +.B RLENGTH +are set to the position and length of the matched string. +.TP +\fBsplit(\fIs\fB, \fIa \fR[\fB, \fIfs\^\fR]\fB)\fR +splits the string +.I s +into array elements +.IB a [1] \fR, +.IB a [2] \fR, +\&..., +.IB a [ n ] \fR, +and returns +.IR n . +The separation is done with the regular expression +.I fs +or with the field separator +.B FS +if +.I fs +is not given. +An empty string as field separator splits the string +into one array element per character. +.TP +\fBsub(\fIr\fB, \fIt \fR[, \fIs\^\fR]\fB) +substitutes +.I t +for the first occurrence of the regular expression +.I r +in the string +.IR s . +If +.I s +is not given, +.B $0 +is used. +.TP +\fBgsub(\fIr\fB, \fIt \fR[, \fIs\^\fR]\fB) +same as +.B sub +except that all occurrences of the regular expression +are replaced; +.B sub +and +.B gsub +return the number of replacements. +.TP +\fBgensub(\fIpat\fB, \fIrepl\fB, \fIhow\fR [\fB, \fItarget\fR]\fB)\fR +replaces instances of +.I pat +in +.I target +with +.IR repl . +If +.I how +is \fB"g"\fR or \fB"G"\fR, do so globally. Otherwise, +.I how +is a number indicating which occurrence to replace. If no +.IR target , +use +.BR $0 . +Return the resulting string; +.I target +is not modified. +.TP +.BI sprintf( fmt , " expr" , " ...\fB) +the string resulting from formatting +.I expr ... +according to the +.IR printf (3) +format +.IR fmt . +.TP +.B systime() +returns the current date and time as a standard +``seconds since the epoch'' value. +.TP +.BI strftime( fmt ", " timestamp\^ ) +formats +.I timestamp +(a value in seconds since the epoch) +according to +.IR fmt , +which is a format string as supported by +.IR strftime (3). +Both +.I timestamp +and +.I fmt +may be omitted; if no +.IR timestamp , +the current time of day is used, and if no +.IR fmt , +a default format of \fB"%a %b %e %H:%M:%S %Z %Y"\fR is used. +.TP +.BI system( cmd ) +executes +.I cmd +and returns its exit status. This will be \-1 upon error, +.IR cmd 's +exit status upon a normal exit, +256 + +.I sig +upon death-by-signal, where +.I sig +is the number of the murdering signal, +or 512 + +.I sig +if there was a core dump. +.TP +.BI tolower( str ) +returns a copy of +.I str +with all upper-case characters translated to their +corresponding lower-case equivalents. +.TP +.BI toupper( str ) +returns a copy of +.I str +with all lower-case characters translated to their +corresponding upper-case equivalents. +.PD +.PP +The ``function'' +.B getline +sets +.B $0 +to the next input record from the current input file; +.B getline +.BI < " file +sets +.B $0 +to the next record from +.IR file . +.B getline +.I x +sets variable +.I x +instead. +Finally, +.IB cmd " | getline +pipes the output of +.I cmd +into +.BR getline ; +each call of +.B getline +returns the next line of output from +.IR cmd . +In all cases, +.B getline +returns 1 for a successful input, +0 for end of file, and \-1 for an error. +.PP +The functions +.BR compl , +.BR and , +.BR or , +.BR xor , +.BR lshift , +and +.B rshift +peform the corresponding bitwise operations on their +operands, which are first truncated to integer. +.PP +Patterns are arbitrary Boolean combinations +(with +.BR "! || &&" ) +of regular expressions and +relational expressions. +Regular expressions are as in +.IR egrep ; +see +.IR grep (1). +Isolated regular expressions +in a pattern apply to the entire line. +Regular expressions may also occur in +relational expressions, using the operators +.B ~ +and +.BR !~ . +.BI / re / +is a constant regular expression; +any string (constant or variable) may be used +as a regular expression, except in the position of an isolated regular expression +in a pattern. +.PP +A pattern may consist of two patterns separated by a comma; +in this case, the action is performed for all lines +from an occurrence of the first pattern +through an occurrence of the second, inclusive. +.PP +A relational expression is one of the following: +.IP +.I expression matchop regular-expression +.br +.I expression relop expression +.br +.IB expression " in " array-name +.br +.BI ( expr ,\| expr ,\| ... ") in " array-name +.PP +where a +.I relop +is any of the six relational operators in C, +and a +.I matchop +is either +.B ~ +(matches) +or +.B !~ +(does not match). +A conditional is an arithmetic expression, +a relational expression, +or a Boolean combination +of these. +.PP +The special patterns +.B BEGIN +and +.B END +may be used to capture control before the first input line is read +and after the last. +.B BEGIN +and +.B END +do not combine with other patterns. +They may appear multiple times in a program and execute +in the order they are read by +.IR awk . +.PP +Variable names with special meanings: +.TF FILENAME +.TP +.B ARGC +argument count, assignable. +.TP +.B ARGV +argument array, assignable; +non-null members are taken as filenames. +.TP +.B CONVFMT +conversion format used when converting numbers +(default +.BR "%.6g" ). +.TP +.B ENVIRON +array of environment variables; subscripts are names. +.TP +.B FILENAME +the name of the current input file. +.TP +.B FNR +ordinal number of the current record in the current file. +.TP +.B FS +regular expression used to separate fields; also settable +by option +.BI \-F fs\fR. +.TP +.BR NF +number of fields in the current record. +.TP +.B NR +ordinal number of the current record. +.TP +.B OFMT +output format for numbers (default +.BR "%.6g" ). +.TP +.B OFS +output field separator (default space). +.TP +.B ORS +output record separator (default newline). +.TP +.B RLENGTH +the length of a string matched by +.BR match . +.TP +.B RS +input record separator (default newline). +If empty, blank lines separate records. +If more than one character long, +.B RS +is treated as a regular expression, and records are +separated by text matching the expression. +.TP +.B RSTART +the start position of a string matched by +.BR match . +.TP +.B SUBSEP +separates multiple subscripts (default 034). +.PD +.PP +Functions may be defined (at the position of a pattern-action statement) thus: +.IP +.B +function foo(a, b, c) { ... } +.PP +Parameters are passed by value if scalar and by reference if array name; +functions may be called recursively. +Parameters are local to the function; all other variables are global. +Thus local variables may be created by providing excess parameters in +the function definition. +.SH ENVIRONMENT VARIABLES +If +.B POSIXLY_CORRECT +is set in the environment, then +.I awk +follows the POSIX rules for +.B sub +and +.B gsub +with respect to consecutive backslashes and ampersands. +.SH EXAMPLES +.TP +.EX +length($0) > 72 +.EE +Print lines longer than 72 characters. +.TP +.EX +{ print $2, $1 } +.EE +Print first two fields in opposite order. +.PP +.EX +BEGIN { FS = ",[ \et]*|[ \et]+" } + { print $2, $1 } +.EE +.ns +.IP +Same, with input fields separated by comma and/or spaces and tabs. +.PP +.EX +.nf + { s += $1 } +END { print "sum is", s, " average is", s/NR } +.fi +.EE +.ns +.IP +Add up first column, print sum and average. +.TP +.EX +/start/, /stop/ +.EE +Print all lines between start/stop pairs. +.PP +.EX +.nf +BEGIN { # Simulate echo(1) + for (i = 1; i < ARGC; i++) printf "%s ", ARGV[i] + printf "\en" + exit } +.fi +.EE +.SH SEE ALSO +.IR grep (1), +.IR lex (1), +.IR sed (1) +.br +A. V. Aho, B. W. Kernighan, P. J. Weinberger, +.IR "The AWK Programming Language, Second Edition" , +Addison-Wesley, 2024. ISBN 978-0-13-826972-2, 0-13-826972-6. +.SH BUGS +There are no explicit conversions between numbers and strings. +To force an expression to be treated as a number add 0 to it; +to force it to be treated as a string concatenate +\&\f(CW""\fP to it. +.PP +The scope rules for variables in functions are a botch; +the syntax is worse. +.PP +Input is expected to be UTF-8 encoded. Other multibyte +character sets are not handled. +However, in eight-bit locales, +.I awk +treats each input byte as a separate character. +.SH UNUSUAL FLOATING-POINT VALUES +.I Awk +was designed before IEEE 754 arithmetic defined Not-A-Number (NaN) +and Infinity values, which are supported by all modern floating-point +hardware. +.PP +Because +.I awk +uses +.IR strtod (3) +and +.IR atof (3) +to convert string values to double-precision floating-point values, +modern C libraries also convert strings starting with +.B inf +and +.B nan +into infinity and NaN values respectively. This led to strange results, +with something like this: +.PP +.EX +.nf +echo nancy | awk '{ print $1 + 0 }' +.fi +.EE +.PP +printing +.B nan +instead of zero. +.PP +.I Awk +now follows GNU AWK, and prefilters string values before attempting +to convert them to numbers, as follows: +.TP +.I "Hexadecimal values" +Hexadecimal values (allowed since C99) convert to zero, as they did +prior to C99. +.TP +.I "NaN values" +The two strings +.B +nan +and +.B \-nan +(case independent) convert to NaN. No others do. +(NaNs can have signs.) +.TP +.I "Infinity values" +The two strings +.B +inf +and +.B \-inf +(case independent) convert to positive and negative infinity, respectively. +No others do. diff --git a/static/freebsd/man1/basename.1 b/static/freebsd/man1/basename.1 new file mode 100644 index 00000000..41bbcc1b --- /dev/null +++ b/static/freebsd/man1/basename.1 @@ -0,0 +1,119 @@ +.\" Copyright (c) 1990, 1993, 1994 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" This code is derived from software contributed to Berkeley by +.\" the Institute of Electrical and Electronics Engineers, Inc. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.Dd June 21, 2021 +.Dt BASENAME 1 +.Os +.Sh NAME +.Nm basename , dirname +.Nd return filename or directory portion of pathname +.Sh SYNOPSIS +.Nm +.Ar string +.Op Ar suffix +.Nm +.Op Fl a +.Op Fl s Ar suffix +.Ar string +.Op Ar ... +.Nm dirname +.Ar string +.Op Ar ... +.Sh DESCRIPTION +The +.Nm +utility deletes any prefix ending with the last slash +.Ql \&/ +character present in +.Ar string +(after first stripping trailing slashes), +and a +.Ar suffix , +if given. +The +.Ar suffix +is not stripped if it is identical to the remaining characters in +.Ar string . +The resulting filename is written to the standard output. +A non-existent suffix is ignored. +If +.Fl a +is specified, then every argument is treated as a +.Ar string +as if +.Nm +were invoked with just one argument. +If +.Fl s +is specified, then the +.Ar suffix +is taken as its argument, and all other arguments are treated as a +.Ar string . +.Pp +The +.Nm dirname +utility deletes the filename portion, beginning +with the last slash +.Ql \&/ +character to the end of +.Ar string +(after first stripping trailing slashes), +and writes the result to the standard output. +.Sh EXIT STATUS +.Ex -std basename dirname +.Sh EXAMPLES +The following line sets the shell variable +.Ev FOO +to +.Pa /usr/bin . +.Pp +.Dl FOO=`dirname /usr/bin/trail` +.Sh SEE ALSO +.Xr csh 1 , +.Xr sh 1 , +.Xr basename 3 , +.Xr dirname 3 +.Sh STANDARDS +The +.Nm +and +.Nm dirname +utilities are expected to be +.St -p1003.2 +compatible. +.Sh HISTORY +The +.Nm +utility first appeared in +.At v7 . +The +.Nm dirname +utility first appeared in +.At III . diff --git a/static/freebsd/man1/beep.1 b/static/freebsd/man1/beep.1 new file mode 100644 index 00000000..a13d220a --- /dev/null +++ b/static/freebsd/man1/beep.1 @@ -0,0 +1,85 @@ +.\"- +.\" Copyright (c) 2021 Hans Petter Selasky +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +.\" +.Dd November 19, 2025 +.Dt BEEP 1 +.Os +.Sh NAME +.Nm beep +.Nd play a beep sound +.Sh SYNOPSIS +.Nm +.Op Fl Bh +.Op Fl D Ar duration_ms +.Op Fl F Ar frequency_hz +.Op Fl d Ar oss_device +.Op Fl g Ar gain +.Op Fl r Ar sample_rate_hz +.Sh DESCRIPTION +The +.Nm +utility is used to play a beep on the sound card. +.Pp +The options are as follows: +.Bl -tag -width "-r sample_rate_hz" +.It Fl B +Runs the +.Nm +utility in the background. +.It Fl D Ar duration_ms +Sets the duration of the beep in milliseconds, +between 50\~ms and 2000\~ms inclusively. +The default is 150\~ms. +.It Fl F Ar frequency_hz +Sets the center frequency of the beep in Hz. +The default is 440\~Hz. +.It Fl d Ar oss_device +Sets the OSS device to use. +The default is +.Pa /dev/dsp . +.It Fl g Ar gain +Sets the waveform gain, between 0 and 100 inclusively. +The default is 75. +.It Fl h +Display summary of options. +.It Fl r Ar sample_rate_hz +Sets the sound card sample rate in Hz, +between 8000\~Hz and 48000\~Hz inclusively. +The default is 48000\~Hz. +.El +.Sh EXAMPLES +Play default beep sound on +.Pa /dev/dsp : +.Bl -tag -width Ds -offset indent +.It $ beep +.El +.Sh SEE ALSO +.Xr mixer 3 , +.Xr sound 4 +.Sh HISTORY +The +.Nm +utility first appeared in +.Fx 14.0 . +.Sh AUTHORS +.An Hans Petter Selasky Aq Mt hselasky@FreeBSD.org diff --git a/static/freebsd/man1/biff.1 b/static/freebsd/man1/biff.1 new file mode 100644 index 00000000..70370d41 --- /dev/null +++ b/static/freebsd/man1/biff.1 @@ -0,0 +1,120 @@ +.\" Copyright (c) 1980, 1990, 1993 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.Dd April 28, 2013 +.Dt BIFF 1 +.Os +.Sh NAME +.Nm biff +.Nd "be notified if mail arrives and who it is from" +.Sh SYNOPSIS +.Nm +.Op Cm n | y | b +.Sh DESCRIPTION +The +.Nm +utility informs the system whether you want to be notified on your terminal +when mail arrives. +.Pp +Affected is the first terminal associated with the standard input, +standard output or standard error file descriptor, in that order. +Thus, it is possible to use the redirection facilities of a shell to +toggle the notification for other terminals than the one +.Nm +runs on. +.Pp +The following options are available: +.Bl -tag -width indent +.It Cm n +Disable notification. +.It Cm y +Enable header notification. +.It Cm b +Enable bell notification. +.El +.Pp +When header notification is enabled, the header and first few lines of +the message will be printed on your terminal whenever mail arrives. +A +.Dq "biff y" +command is often included in the file +.Pa .login +or +.Pa .profile +to be executed at each login. +.Pp +When bell notification is enabled, only two bell characters +.Tn ( ASCII +\\007) +will be printed on your terminal whenever mail arrives. +.Pp +If no arguments are given, +.Nm +displays the present notification status of the terminal to the +standard output. +.Pp +The +.Nm +utility operates asynchronously. +For synchronous notification use the +.Ev MAIL +variable of +.Xr sh 1 +or the +.Va mail +variable of +.Xr csh 1 . +.Sh EXIT STATUS +The +.Nm +utility exits with one of the following values: +.Bl -tag -width indent +.It 0 +Notification was enabled at the time of invocation. +.It 1 +Notification was disabled at the time of invocation. +.It >1 +An error occurred. +.El +.Sh COMPATIBILITY +Previous versions of the +.Nm +utility affected the terminal attached to standard error without first +trying the standard input or output devices. +.Sh SEE ALSO +.Xr csh 1 , +.Xr mail 1 , +.Xr sh 1 , +.Xr comsat 8 +.Sh HISTORY +The +.Nm +command appeared in +.Bx 4.0 . +It was named after the dog of Heidi Stettner. +He died +in August 1993, at 15. diff --git a/static/freebsd/man1/bintrans.1 b/static/freebsd/man1/bintrans.1 new file mode 100644 index 00000000..73baac11 --- /dev/null +++ b/static/freebsd/man1/bintrans.1 @@ -0,0 +1,284 @@ +.\" Copyright (c) 1980, 1990, 1993 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.Dd January 8, 2025 +.Dt BINTRANS 1 +.Os +.Sh NAME +.Nm bintrans , +.Nm uuencode , +.Nm uudecode , +.Nm b64encode , +.Nm b64decode , +.Nm base64 +.Nd encode / decode a binary file +.Sh SYNOPSIS +.Nm +.Op algorithm +.Op ... +.Nm uuencode +.Op Fl m +.Op Fl r +.Op Fl o Ar output_file +.Op Ar file +.Ar name +.Nm uudecode +.Op Fl cimprs +.Op Ar +.Nm uudecode +.Op Fl i +.Fl o Ar output_file +.Nm b64encode +.Op Fl r +.Op Fl w Ar column +.Op Fl o Ar output_file +.Op Ar file +.Ar name +.Nm b64decode +.Op Fl cimprs +.Op Ar +.Nm b64decode +.Op Fl i +.Fl o Ar output_file +.Op Ar file +.Nm base64 +.Op Fl d +.Op Fl w Ar column +.Op Ar file +.Sh DESCRIPTION +The +.Nm uuencode +and +.Nm uudecode +utilities are used to transmit binary files over transmission mediums +that do not support other than simple +.Tn ASCII +data. +The +.Nm b64encode +utility is synonymous with +.Nm uuencode +with the +.Fl m +flag specified. +The +.Nm b64decode +utility is synonymous with +.Nm uudecode +with the +.Fl m +flag specified. +.Pp +The +.Nm base64 +utility acts as a base64 decoder when passed the +.Fl -decode +.Po or +.Fl d +.Pc +flag and as a base64 encoder otherwise. +As a decoder it only accepts raw base64 input +and as an encoder it does not produce the framing lines. +.Nm base64 +reads standard input or +.Ar file +if it is provided and writes to standard output. +Options +.Fl -wrap +.Po or +.Fl w +.Pc +and +.Fl -ignore-garbage +.Po or +.Fl i +.Pc +are accepted for compatibility with GNU base64, +but the latter is unimplemented and silently ignored. +.Pp +The +.Nm uuencode +utility reads +.Ar file +(or by default the standard input) and writes an encoded version +to the standard output, or +.Ar output_file +if one has been specified. +The encoding uses only printing +.Tn ASCII +characters and includes the +mode of the file and the operand +.Ar name +for use by +.Nm uudecode . +.Pp +The +.Nm uudecode +utility transforms +.Em uuencoded +files (or by default, the standard input) into the original form. +The resulting file is named either +.Ar name +or (depending on options passed to +.Nm uudecode ) +.Ar output_file +and will have the mode of the original file except that setuid +and execute bits are not retained. +The +.Nm uudecode +utility ignores any leading and trailing lines. +.Pp +The following options are available for +.Nm uuencode : +.Bl -tag -width indent +.It Fl m +Use the Base64 method of encoding, rather than the traditional +.Nm uuencode +algorithm. +.It Fl r +Produce raw output by excluding the initial and final framing lines. +.It Fl o Ar output_file +Output to +.Ar output_file +instead of standard output. +.El +.Pp +The following options are available for +.Nm uudecode : +.Bl -tag -width indent +.It Fl c +Decode more than one uuencoded file from +.Ar file +if possible. +.It Fl i +Do not overwrite files. +.It Fl m +When used with the +.Fl r +flag, decode Base64 input instead of traditional +.Nm uuencode +input. +Without +.Fl r +it has no effect. +.It Fl o Ar output_file +Output to +.Ar output_file +instead of any pathname contained in the input data. +.It Fl p +Decode +.Ar file +and write output to standard output. +.It Fl r +Decode raw (or broken) input, which is missing the initial and +possibly the final framing lines. +The input is assumed to be in the traditional +.Nm uuencode +encoding, but if the +.Fl m +flag is used, or if the utility is invoked as +.Nm b64decode , +then the input is assumed to be in Base64 format. +.It Fl s +Do not strip output pathname to base filename. +By default +.Nm uudecode +deletes any prefix ending with the last slash '/' for security +reasons. +.El +.Pp +Additionally, +.Nm b64encode +accepts the following option: +.Bl -tag -width indent +.It Fl w Ar column +Wrap encoded output after +.Ar column . +.El +.Pp +.Nm +is a generic utility that can run +any of the aforementioned encoders and decoders. +It can also run algorithms that are not available +through a dedicated program: +.Pp +.Nm qp +is a quoted-printable converter +and accepts the following options: +.Bl -tag -width indent +.It Fl d +Decode. +.It Fl o Ar output_file +Output to +.Ar output_file +instead of standard output. +.It Fl r +Encode/Decode in RFC2047 specific variant. +.El +.Sh EXAMPLES +The following example packages up a source tree, compresses it, +uuencodes it and mails it to a user on another system. +When +.Nm uudecode +is run on the target system, the file ``src_tree.tar.Z'' will be +created which may then be uncompressed and extracted into the original +tree. +.Pp +.Bd -literal -offset indent -compact +tar cf \- src_tree \&| compress \&| +uuencode src_tree.tar.Z \&| mail user@example.com +.Ed +.Pp +The following example unpacks all uuencoded +files from your mailbox into your current working directory. +.Pp +.Bd -literal -offset indent -compact +uudecode -c < $MAIL +.Ed +.Pp +The following example extracts a compressed tar +archive from your mailbox +.Pp +.Bd -literal -offset indent -compact +uudecode -o /dev/stdout < $MAIL | zcat | tar xfv - +.Ed +.Sh SEE ALSO +.Xr basename 1 , +.Xr compress 1 , +.Xr mail 1 , +.Xr uucp 1 Pq Pa ports/net/freebsd-uucp , +.Xr uuencode 5 +.Sh HISTORY +The +.Nm uudecode +and +.Nm uuencode +utilities appeared in +.Bx 4.0 . +.Sh BUGS +Files encoded using the traditional algorithm are expanded by 35% (3 +bytes become 4 plus control information). diff --git a/static/freebsd/man1/bmake.1 b/static/freebsd/man1/bmake.1 new file mode 100644 index 00000000..1e0de219 --- /dev/null +++ b/static/freebsd/man1/bmake.1 @@ -0,0 +1,2927 @@ +.\" $NetBSD: make.1,v 1.390 2026/02/08 11:02:03 rillig Exp $ +.\" +.\" Copyright (c) 1990, 1993 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" from: @(#)make.1 8.4 (Berkeley) 3/19/94 +.\" +.Dd February 8, 2026 +.Dt BMAKE 1 +.Os +.Sh NAME +.Nm bmake +.Nd maintain program dependencies +.Sh SYNOPSIS +.Nm +.Op Fl BeikNnqrSstWwX +.Op Fl C Ar directory +.Op Fl D Ar variable +.Op Fl d Ar flags +.Op Fl f Ar makefile +.Op Fl I Ar directory +.Op Fl J Ar private +.Op Fl j Ar max_jobs +.Op Fl m Ar directory +.Op Fl T Ar file +.Op Fl V Ar variable +.Op Fl v Ar variable +.Op Ar variable\| Ns Cm \&= Ns Ar value No ... +.Op Ar target No ... +.Sh DESCRIPTION +.Nm +is a program designed to simplify the maintenance of other programs. +Its input is a list of specifications as to the files upon which programs +and other files depend. +If no +.Fl f Ar makefile +option is given, +.Nm +looks for the makefiles listed in +.Va .MAKE.MAKEFILE_PREFERENCE +(default +.Sq Pa makefile , +.Sq Pa Makefile ) +in order to find the specifications. +If the file +.Sq Pa .depend +exists, it is read, see +.Xr mkdep 1 . +.Pp +This manual page is intended as a reference document only. +For a more thorough description of +.Nm +and makefiles, please refer to +.%T "PMake \- A Tutorial" +(from 1993). +.Pp +.Nm +prepends the contents of the +.Ev MAKEFLAGS +environment variable to the command line arguments before parsing them. +.Pp +The options are as follows: +.Bl -tag -width Ds +.It Fl B +Try to be backwards compatible by executing a single shell per command and +by making the sources of a dependency line in sequence. +.It Fl C Ar directory +Change to +.Ar directory +before reading the makefiles or doing anything else. +If multiple +.Fl C +options are specified, each is interpreted relative to the previous one: +.Fl C Pa / Fl C Pa etc +is equivalent to +.Fl C Pa /etc . +.It Fl D Ar variable +Define +.Ar variable +to be 1, in the global scope. +.It Fl d Oo Cm \- Oc Ns Ar flags +Turn on debugging, and specify which portions of +.Nm +are to print debugging information. +Unless the flags are preceded by +.Ql \- , +they are added to the +.Ev MAKEFLAGS +environment variable and are passed on to any child make processes. +By default, debugging information is printed to standard error, +but this can be changed using the +.Cm F +debugging flag. +The debugging output is always unbuffered; in addition, if debugging +is enabled but debugging output is not directed to standard output, +the standard output is line buffered. +The available +.Ar flags +are: +.Bl -tag -width Ds +.It Cm A +Print all possible debugging information; +equivalent to specifying all of the debugging flags. +.It Cm a +Print debugging information about archive searching and caching. +.It Cm C +Print debugging information about the current working directory. +.It Cm c +Print debugging information about conditional evaluation. +.It Cm d +Print debugging information about directory searching and caching. +.It Cm e +Print debugging information about failed commands and targets. +.It Cm F Ns Oo Cm \&+ Oc Ns Ar filename +Specify where debugging output is written. +This must be the last flag, because it consumes the remainder of +the argument. +If the character immediately after the +.Cm F +flag is +.Ql \&+ , +the file is opened in append mode; +otherwise the file is overwritten. +If the file name is +.Ql stdout +or +.Ql stderr , +debugging output is written to the standard output or standard error output +respectively (and the +.Ql \&+ +option has no effect). +Otherwise, the output is written to the named file. +If the file name ends with +.Ql .%d , +the +.Ql %d +is replaced by the pid. +.It Cm f +Print debugging information about loop evaluation. +.It Cm g1 +Print the input graph before making anything. +.It Cm g2 +Print the input graph after making everything, or before exiting +on error. +.It Cm g3 +Print the input graph before exiting on error. +.It Cm h +Print debugging information about hash table operations. +.It Cm j +Print debugging information about running multiple shells. +.It Cm L +Turn on lint checks. +This throws errors for variable assignments that do not parse correctly, +at the time of assignment, so the file and line number are available. +.It Cm l +Print commands in Makefiles regardless of whether or not they are prefixed by +.Ql @ +or other +.Dq quiet +flags. +Also known as +.Dq loud +behavior. +.It Cm M +Print debugging information about +.Dq meta +mode decisions about targets. +.It Cm m +Print debugging information about making targets, including modification +dates. +.It Cm n +Don't delete the temporary command scripts created when running commands. +These temporary scripts are created in the directory +referred to by the +.Ev TMPDIR +environment variable, or in +.Pa /tmp +if +.Ev TMPDIR +is unset or set to the empty string. +The temporary scripts are created by +.Xr mkstemp 3 , +and have names of the form +.Pa makeXXXXXX . +.Em NOTE : +This can create many files in +.Ev TMPDIR +or +.Pa /tmp , +so use with care. +.It Cm p +Print debugging information about makefile parsing. +.It Cm s +Print debugging information about suffix-transformation rules. +.It Cm t +Print debugging information about target list maintenance. +.It Cm V +Force the +.Fl V +option to print raw values of variables, +overriding the default behavior set via +.Va .MAKE.EXPAND_VARIABLES . +.It Cm v +Print debugging information about variable assignment and expansion. +.It Cm x +Run shell commands with +.Fl x +so the actual commands are printed as they are executed. +.El +.It Fl e +Let environment variables override global variables within makefiles. +.It Fl f Ar makefile +Specify a makefile to read instead of one of the defaults listed in +.Va .MAKE.MAKEFILE_PREFERENCE . +If +.Ar makefile +is +.Ql \&- , +standard input is read. +If +.Ar makefile +starts with the string +.Ql \&.../ , +.Nm +searches for the specified path in the rest of the argument +in the current directory and its parents. +Multiple makefiles may be specified, and are read in the order specified. +.It Fl I Ar directory +Specify a directory in which to search for makefiles and included makefiles. +The system makefile directory (or directories, see the +.Fl m +option) is automatically included as part of this list. +.It Fl i +Ignore non-zero exit of shell commands in the makefile. +Equivalent to specifying +.Ql \&- +before each command line in the makefile. +.It Fl J Ar private +This option should +.Em not +be specified by the user. +.Pp +When the +.Fl j +option is in use in a recursive build, this option is passed by a make +to child makes to allow all the make processes in the build to +cooperate to avoid overloading the system. +.It Fl j Ar max_jobs +Specify the maximum number of jobs that +.Nm +may have running at any one time. +If +.Ar max_jobs +is a floating point number, or ends with +.Ql C , +then the value is multiplied by the number of CPUs reported online by +.Xr sysconf 3 . +The value of +.Ar max_jobs +is saved in +.Va .MAKE.JOBS . +Turns compatibility mode off, unless the +.Fl B +option is also specified. +When compatibility mode is off, all commands associated with a +target are executed in a single shell invocation as opposed to the +traditional one shell invocation per line. +This can break traditional scripts which change directories on each +command invocation and then expect to start with a fresh environment +on the next line. +It is more efficient to correct the scripts rather than turn backwards +compatibility on. +.Pp +A job token pool with +.Ar max_jobs +tokens is used to control the total number of jobs running. +Each instance of +.Nm +will wait for a token from the pool before running a new job. +.It Fl k +Continue processing after errors are encountered, but only on those targets +that do not depend on the target whose creation caused the error. +.It Fl m Ar directory +Specify a directory in which to search for +.Pa sys.mk +and makefiles included via the +.Li \&< Ns Ar file Ns Li \&> Ns -style +include statement. +The +.Fl m +option can be used multiple times to form a search path. +This path overrides the default system include path +.Pa /usr/share/mk . +Furthermore, the system include path is appended to the search path used for +.Li \*q Ns Ar file Ns Li \*q Ns -style +include statements (see the +.Fl I +option). +The system include path can be referenced via the read-only variable +.Va .SYSPATH . +.Pp +If a directory name in the +.Fl m +argument (or the +.Ev MAKESYSPATH +environment variable) starts with the string +.Ql \&.../ , +.Nm +searches for the specified file or directory named in the remaining part +of the argument string. +The search starts with the current directory +and then works upward towards the root of the file system. +If the search is successful, the resulting directory replaces the +.Ql \&.../ +specification in the +.Fl m +argument. +This feature allows +.Nm +to easily search in the current source tree for customized +.Pa sys.mk +files (e.g., by using +.Ql \&.../mk/sys.mk +as an argument). +.It Fl n +Display the commands that would have been executed, but do not +actually execute them unless the target depends on the +.Va .MAKE +special source (see below) or the command is prefixed with +.Sq Cm + . +.It Fl N +Display the commands that would have been executed, +but do not actually execute any of them; +useful for debugging top-level makefiles +without descending into subdirectories. +.It Fl q +Do not execute any commands, +instead exit 0 if the specified targets are up to date, and 1 otherwise. +.It Fl r +Do not use the built-in rules specified in the system makefile. +.It Fl S +Stop processing if an error is encountered. +This is the default behavior and the opposite of +.Fl k . +.It Fl s +Do not echo any commands as they are executed. +Equivalent to specifying +.Sq Ic @ +before each command line in the makefile. +.It Fl T Ar tracefile +When used with the +.Fl j +flag, +append a trace record to +.Ar tracefile +for each job started and completed. +.It Fl t +Rather than re-building a target as specified in the makefile, create it +or update its modification time to make it appear up-to-date. +.It Fl V Ar variable +Print the value of +.Ar variable . +Do not build any targets. +Multiple instances of this option may be specified; +the variables are printed one per line, +with a blank line for each null or undefined variable. +The value printed is extracted from the global scope after all +makefiles have been read. +.Pp +By default, the raw variable contents (which may +include additional unexpanded variable references) are shown. +If +.Ar variable +contains a +.Ql \&$ , +it is not interpreted as a variable name but rather as an expression. +Its value is expanded before printing. +The value is also expanded before printing if +.Va .MAKE.EXPAND_VARIABLES +is set to true and the +.Fl dV +option has not been used to override it. +.Pp +Note that loop-local and target-local variables, as well as values +taken temporarily by global variables during makefile processing, are +not accessible via this option. +The +.Fl dv +debug mode can be used to see these at the cost of generating +substantial extraneous output. +.It Fl v Ar variable +Like +.Fl V , +but all printed variables are always expanded to their complete value. +The last occurrence of +.Fl V +or +.Fl v +decides whether all variables are expanded or not. +.It Fl W +Treat any warnings during makefile parsing as errors. +.It Fl w +Print entering and leaving directory messages, pre and post processing. +.It Fl X +Don't export variables passed on the command line to the environment +individually. +Variables passed on the command line are still exported via the +.Ev MAKEFLAGS +environment variable. +This option may be useful on systems which have a small limit on the +size of command arguments. +.It Ar variable\| Ns Cm \&= Ns Ar value +Set the value of the variable +.Ar variable +to +.Ar value . +Normally, all values passed on the command line are also exported to +sub-makes in the environment. +The +.Fl X +flag disables this behavior. +Variable assignments should follow options for POSIX compatibility +but no ordering is enforced. +.El +.Pp +There are several different types of lines in a makefile: dependency +specifications, shell commands, variable assignments, include statements, +conditional directives, for loops, other directives, and comments. +.Pp +Lines may be continued from one line to the next +by ending them with a backslash +.Pq Ql \e . +The trailing newline character and initial whitespace on the following +line are compressed into a single space. +.Sh FILE DEPENDENCY SPECIFICATIONS +Dependency lines consist of one or more targets, an operator, and zero +or more sources. +This creates a relationship where the targets +.Dq depend +on the sources and are customarily created from them. +A target is considered out of date if it does not exist, +or if its modification time is less than that of any of its sources. +An out-of-date target is re-created, but not until all sources +have been examined and themselves re-created as needed. +Three operators may be used: +.Bl -tag -width flag +.It Ic \&: +Many dependency lines may name this target but only one may have +attached shell commands. +All sources named in all dependency lines are considered together, +and if needed the attached shell commands are run to create or +re-create the target. +If +.Nm +is interrupted, the target is removed. +.It Ic \&! +The same, but the target is always re-created whether or not it is out +of date. +.It Ic \&:: +Any dependency line may have attached shell commands, but each one +is handled independently: its sources are considered and the attached +shell commands are run if the target is out of date with respect to +(only) those sources. +Thus, different groups of the attached shell commands may be run +depending on the circumstances. +Furthermore, unlike +.Ic \&: , +for dependency lines with no sources, the attached shell +commands are always run. +Also unlike +.Ic \&: , +the target is not removed if +.Nm +is interrupted. +.El +.Pp +All dependency lines mentioning a particular target must use the same +operator. +.Pp +Targets and sources may contain the shell wildcard values +.Ql \&? , +.Ql * , +.Ql [] , +and +.Ql {} . +The values +.Ql \&? , +.Ql * , +and +.Ql [] +may only be used as part of the final component of the target or source, +and only match existing files. +The value +.Ql {} +need not necessarily be used to describe existing files. +Expansion is in directory order, not alphabetically as done in the shell. +.Sh SHELL COMMANDS +Each target may have associated with it one or more lines of shell commands, +normally used to create the target. +Each of the lines in this script +.Em must +be preceded by a tab. +(For historical reasons, spaces are not accepted.) +While targets can occur in many dependency lines if desired, +by default only one of these rules may be followed by a creation script. +If the +.Sq Ic \&:: +operator is used, however, all rules may include scripts, +and the respective scripts are executed in the order found. +.Pp +Each line is treated as a separate shell command, +unless the end of line is escaped with a backslash +.Ql \e , +in which case that line and the next are combined. +If the first characters of the command are any combination of +.Sq Ic @ , +.Sq Ic + , +or +.Sq Ic \- , +the command is treated specially. +.Bl -tag -offset indent -width indent +.It Ic @ +causes the command not to be echoed before it is executed. +.It Ic + +causes the command to be executed even when +.Fl n +is given. +This is similar to the effect of the +.Va .MAKE +special source, +except that the effect can be limited to a single line of a script. +.It Ic \- +in compatibility mode +causes any non-zero exit status of the command line to be ignored. +.El +.Pp +When +.Nm +is run in jobs mode with +.Fl j Ar max_jobs , +the entire script for the target is fed to a single instance of the shell. +In compatibility (non-jobs) mode, each command is run in a separate process. +If the command contains any shell meta characters +.Pq Ql #=|^(){};&<>*?[]:$`\e\en , +it is passed to the shell; otherwise +.Nm +attempts direct execution. +If a line starts with +.Sq Ic \- +and the shell has ErrCtl enabled, +failure of the command line is ignored as in compatibility mode. +Otherwise +.Sq Ic \- +affects the entire job; +the script stops at the first command line that fails, +but the target is not deemed to have failed. +.Pp +Makefiles should be written so that the mode of +.Nm +operation does not change their behavior. +For example, any command which uses +.Dq cd +or +.Dq chdir +without the intention of changing the directory for subsequent commands +should be put in parentheses so it executes in a subshell. +To force the use of a single shell, escape the line breaks so as to make +the whole script one command. +For example: +.Bd -literal -offset indent +avoid-chdir-side-effects: + @echo "Building $@ in $$(pwd)" + @(cd ${.CURDIR} && ${MAKE} $@) + @echo "Back in $$(pwd)" + +ensure-one-shell-regardless-of-mode: + @echo "Building $@ in $$(pwd)"; \e + (cd ${.CURDIR} && ${MAKE} $@); \e + echo "Back in $$(pwd)" +.Ed +.Pp +Since +.Nm +changes the current working directory to +.Sq Va .OBJDIR +before executing any targets, +each child process starts with that as its current working directory. +.Sh VARIABLE ASSIGNMENTS +Variables in make behave much like macros in the C preprocessor. +.Pp +Variable assignments have the form +.Sq Ar NAME Ar op Ar value , +where: +.Bl -tag -offset Ds -width Ds +.It Ar NAME +is a single-word variable name, +consisting, by tradition, of all upper-case letters, +.It Ar op +is one of the variable assignment operators described below, and +.It Ar value +is interpreted according to the variable assignment operator. +.El +.Pp +Whitespace around +.Ar NAME , +.Ar op +and +.Ar value +is discarded. +.Ss Variable assignment operators +The five operators that assign values to variables are: +.Bl -tag -width Ds +.It Ic \&= +Assign the value to the variable. +Any previous value is overwritten. +.It Ic \&+= +Append the value to the current value of the variable, +separating them by a single space. +.It Ic \&?= +Assign the value to the variable if it is not already defined. +.It Ic \&:= +Expand the value, then assign it to the variable. +.Pp +.Em NOTE : +References to undefined variables are +.Em not +expanded. +This can cause problems when variable modifiers are used. +.\" See var-op-expand.mk, the section with LATER and INDIRECT. +.It Ic \&!= +Expand the value and pass it to the shell for execution, +then assign the output from the child's standard output to the variable. +Any newlines in the result are replaced with spaces. +.El +.Ss Expansion of variables +In most contexts where variables are expanded, +.Ql \&$$ +expands to a single dollar sign. +In other contexts (most variable modifiers, string literals in conditions), +.Ql \&\e$ +expands to a single dollar sign. +.Pp +References to variables have the form +.Cm \&${ Ns Ar name Ns Oo Ns Cm \&: Ns Ar modifiers Oc Ns Cm \&} +or +.Cm \&$( Ns Ar name Ns Oo Ns Cm \&: Ns Ar modifiers Oc Ns Cm \&) . +If the variable name consists of only a single character +and the expression contains no modifiers, +the surrounding curly braces or parentheses are not required. +This shorter form is not recommended. +.Pp +If the variable name contains a dollar, the name itself is expanded first. +This allows almost arbitrary variable names, however names containing dollar, +braces, parentheses or whitespace are really best avoided. +.Pp +If the result of expanding a nested variable expression contains a dollar sign +.Pq Ql \&$ , +the result is subject to further expansion. +.Pp +Variable substitution occurs at four distinct times, depending on where +the variable is being used. +.Bl -enum +.It +Variables in dependency lines are expanded as the line is read. +.It +Variables in conditionals are expanded individually, +but only as far as necessary to determine the result of the conditional. +.It +Variables in shell commands are expanded when the shell command is +executed. +.It +.Ic .for +loop index variables are expanded on each loop iteration. +Note that other variables are not expanded when composing the body of a loop, +so the following example code: +.Bd -literal -offset indent +\&.for i in 1 2 3 +a+= ${i} +j= ${i} +b+= ${j} +\&.endfor + +all: + @echo ${a} + @echo ${b} +.Ed +.Pp +prints: +.Bd -literal -offset indent +1 2 3 +3 3 3 +.Ed +.Pp +After the loop is executed: +.Bl -tag -offset indent -width indent +.It Va a +contains +.Ql ${:U1} ${:U2} ${:U3} , +which expands to +.Ql 1 2 3 . +.It Va j +contains +.Ql ${:U3} , +which expands to +.Ql 3 . +.It Va b +contains +.Ql ${j} ${j} ${j} , +which expands to +.Ql ${:U3} ${:U3} ${:U3} +and further to +.Ql 3 3 3 . +.El +.El +.Ss Variable classes +The four different classes of variables (in order of increasing precedence) +are: +.Bl -tag -width Ds +.It Environment variables +Variables defined as part of +.Nm Ns 's +environment. +.It Global variables +Variables defined in the makefile or in included makefiles. +.It Command line variables +Variables defined as part of the command line. +.It Local variables +Variables that are defined specific to a certain target. +.El +.Pp +Local variables can be set on a dependency line, unless +.Va .MAKE.TARGET_LOCAL_VARIABLES +is set to +.Ql false . +The rest of the line +(which already has had global variables expanded) +is the variable value. +For example: +.Bd -literal -offset indent +COMPILER_WRAPPERS= ccache distcc icecc + +${OBJS}: .MAKE.META.CMP_FILTER=${COMPILER_WRAPPERS:S,^,N,} +.Ed +.Pp +Only the targets +.Ql ${OBJS} +are impacted by that filter (in +.Dq meta +mode) and +simply enabling/disabling any of the compiler wrappers does not render all +of those targets out-of-date. +.Pp +.Em NOTE : +target-local variable assignments behave differently in that; +.Bl -tag -width Ds -offset indent +.It Ic \&+= +Only appends to a previous local assignment +for the same target and variable. +.It Ic \&:= +Is redundant with respect to global variables, +which have already been expanded. +.El +.Pp +The built-in local variables are: +.Bl -tag -width ".Va .ARCHIVE" -offset indent +.It Va .ALLSRC +The list of all sources for this target; also known as +.Sq Va \&> +or +.Sq Va \&^ . +.It Va .ARCHIVE +The name of the archive file; also known as +.Sq Va \&! . +.It Va .IMPSRC +In suffix-transformation rules, the name/path of the source from which the +target is to be transformed (the +.Dq implied +source); also known as +.Sq Va \&< . +It is not defined in explicit rules. +.It Va .MEMBER +The name of the archive member; also known as +.Sq Va % . +.It Va .OODATE +The list of sources for this target that were deemed out-of-date; also +known as +.Sq Va \&? . +.It Va .PREFIX +The name of the target with suffix (if declared in +.Ic .SUFFIXES ) +removed; also known as +.Sq Va * . +.It Va .TARGET +The name of the target; also known as +.Sq Va @ . +For compatibility with other makes this is an alias for +.Va .ARCHIVE +in archive member rules. +.El +.Pp +The shorter forms +.Po +.Sq Va \&> , +.Sq Va \&^ , +.Sq Va \&! , +.Sq Va \&< , +.Sq Va \&% , +.Sq Va \&? , +.Sq Va \&* , +and +.Sq Va \&@ +.Pc +are permitted for backward +compatibility with historical makefiles and legacy POSIX make and are +not recommended. +.Pp +Variants of these variables with the punctuation followed immediately by +.Ql D +or +.Ql F , +e.g.\& +.Ql $(@D) , +are legacy forms equivalent to using the +.Ql :H +and +.Ql :T +modifiers. +These forms are accepted for compatibility with +.At V +makefiles and POSIX but are not recommended. +.Pp +Four of the local variables may be used in sources on dependency lines +because they expand to the proper value for each target on the line. +These variables are +.Sq Va .TARGET , +.Sq Va .PREFIX , +.Sq Va .ARCHIVE , +and +.Sq Va .MEMBER . +.Ss Additional built-in variables +In addition, +.Nm +sets or knows about the following variables: +.Bl -tag +.\" NB: This list is sorted case-insensitive, ignoring punctuation. +.\" NB: To find all built-in variables in make's source code, +.\" NB: search for Var_*, Global_*, SetVarObjdir, GetBooleanExpr, +.\" NB: and the implementation of Var_SetWithFlags. +.\" NB: Last synced on 2023-01-01. +.It Va .ALLTARGETS +The list of all targets encountered in the makefiles. +If evaluated during makefile parsing, +lists only those targets encountered thus far. +.It Va .CURDIR +A path to the directory where +.Nm +was executed. +Refer to the description of +.Sq Va PWD +for more details. +.It Va .ERROR_CMD +Is used in error handling, see +.Va MAKE_PRINT_VAR_ON_ERROR . +.It Va .ERROR_CWD +Is used in error handling, see +.Va MAKE_PRINT_VAR_ON_ERROR . +.It Va .ERROR_EXIT +Is used in error handling, see +.Va MAKE_PRINT_VAR_ON_ERROR . +.It Va .ERROR_META_FILE +Is used in error handling in +.Dq meta +mode, see +.Va MAKE_PRINT_VAR_ON_ERROR . +.It Va .ERROR_TARGET +Is used in error handling, see +.Va MAKE_PRINT_VAR_ON_ERROR . +.It Va .INCLUDEDFROMDIR +The directory of the file this makefile was included from. +.It Va .INCLUDEDFROMFILE +The filename of the file this makefile was included from. +.\" .INCLUDES is intentionally undocumented, as it is obsolete. +.\" .LIBS is intentionally undocumented, as it is obsolete. +.It Va MACHINE +The machine hardware name, see +.Xr uname 1 . +.It Va MACHINE_ARCH +The machine processor architecture name, see +.Xr uname 1 . +.It Va MAKE +The name that +.Nm +was executed with +.Pq Va argv[0] . +.It Va .MAKE +The same as +.Va MAKE , +for compatibility. +The preferred variable to use is the environment variable +.Ev MAKE +because it is more compatible with other make variants +and cannot be confused with the special target with the same name. +.\" '.MAKE.cmd_filtered' is intentionally undocumented, +.\" as it is an internal implementation detail. +.It Va .MAKE.DEPENDFILE +Names the makefile (default +.Sq Pa .depend ) +from which generated dependencies are read. +.It Va .MAKE.DIE_QUIETLY +If set to +.Ql true , +do not print error information at the end. +.It Va .MAKE.EXPAND_VARIABLES +A boolean that controls the default behavior of the +.Fl V +option. +If true, variable values printed with +.Fl V +are fully expanded; if false, the raw variable contents (which may +include additional unexpanded variable references) are shown. +.It Va .MAKE.EXPORTED +The list of variables exported by +.Nm . +.It Va MAKE_VERSION +This variable indicates the version of +.Nm . +It is typically the date of last import from NetBSD. +It is useful for checking whether certain features are available. +.It Va MAKEFILE +The top-level makefile that is currently read, +as given in the command line. +.It Va .MAKEFLAGS +The environment variable +.Sq Ev MAKEFLAGS +may contain anything that +may be specified on +.Nm Ns 's +command line. +Anything specified on +.Nm Ns 's +command line is appended to the +.Va .MAKEFLAGS +variable, which is then added to the environment for all programs that +.Nm +executes. +.It Va .MAKE.GID +The numeric group ID of the user running +.Nm . +It is read-only. +.It Va .MAKE.JOB.PREFIX +If +.Nm +is run with +.Fl j , +the output for each target is prefixed with a token +.Dl --- Ar target Li --- +the first part of which can be controlled via +.Va .MAKE.JOB.PREFIX . +If +.Va .MAKE.JOB.PREFIX +is empty, no token is printed. +For example, setting +.Va .MAKE.JOB.PREFIX +to +.Ql ${.newline}---${.MAKE:T}[${.MAKE.PID}] +would produce tokens like +.Dl ---make[1234] Ar target Li --- +making it easier to track the degree of parallelism being achieved. +.It Va .MAKE.JOBS +The argument to the +.Fl j +option. +.It Va .MAKE.JOBS.C +A read-only boolean that indicates whether the +.Fl j +option supports use of +.Ql C . +.It Va .MAKE.LEVEL +The recursion depth of +.Nm . +The top-level instance of +.Nm +has level 0, and each child make has its parent level plus 1. +This allows tests like: +.Li .if ${.MAKE.LEVEL} == 0 +to protect things which should only be evaluated in the top-level instance of +.Nm . +.It Va .MAKE.LEVEL.ENV +The name of the environment variable that stores the level of nested calls to +.Nm . +.It Va .MAKE.MAKEFILE_PREFERENCE +The ordered list of makefile names +(default +.Sq Pa makefile , +.Sq Pa Makefile ) +that +.Nm +looks for. +.It Va .MAKE.MAKEFILES +The list of makefiles read by +.Nm , +which is useful for tracking dependencies. +Each makefile is recorded only once, regardless of the number of times read. +.It Va .MAKE.META.BAILIWICK +In +.Dq meta +mode, provides a list of prefixes which +match the directories controlled by +.Nm . +If a file that was generated outside of +.Va .OBJDIR +but within said bailiwick is missing, +the current target is considered out-of-date. +.It Va .MAKE.META.CMP_FILTER +In +.Dq meta +mode, it can (very rarely!) be useful to filter command +lines before comparison. +This variable can be set to a set of modifiers that are applied to +each line of the old and new command that differ, if the filtered +commands still differ, the target is considered out-of-date. +.It Va .MAKE.META.CREATED +In +.Dq meta +mode, this variable contains a list of all the meta files +updated. +If not empty, it can be used to trigger processing of +.Va .MAKE.META.FILES . +.It Va .MAKE.META.FILES +In +.Dq meta +mode, this variable contains a list of all the meta files +used (updated or not). +This list can be used to process the meta files to extract dependency +information. +.It Va .MAKE.META.IGNORE_FILTER +Provides a list of variable modifiers to apply to each pathname. +Ignore if the expansion is an empty string. +.It Va .MAKE.META.IGNORE_PATHS +Provides a list of path prefixes that should be ignored; +because the contents are expected to change over time. +The default list includes: +.Sq Pa /dev /etc /proc /tmp /var/run /var/tmp +.It Va .MAKE.META.IGNORE_PATTERNS +Provides a list of patterns to match against pathnames. +Ignore any that match. +.It Va .MAKE.META.PREFIX +Defines the message printed for each meta file updated in +.Dq meta verbose +mode. +The default value is: +.Dl Building ${.TARGET:H:tA}/${.TARGET:T} +.It Va .MAKE.MODE +Processed after reading all makefiles. +Affects the mode that +.Nm +runs in. +It can contain these keywords: +.Bl -tag -width indent +.It Cm compat +Like +.Fl B , +puts +.Nm +into +.Dq compat +mode. +.It Cm meta +Puts +.Nm +into +.Dq meta +mode, where meta files are created for each target +to capture the commands run, the output generated, and if +.Xr filemon 4 +is available, the system calls which are of interest to +.Nm . +The captured output can be useful when diagnosing errors. +.Pp +.Nm +will use the information in the meta file to help determine if +a target is out-of-date when the normal dependency rules +indicate it is not. +.Pp +First, +the commands to be executed, +will be compared to those captured previously, +if any differ, +the target is out-of-date. +.Pp +This allows for a huge improvement in the reliability +and efficiency of update builds. +It is no longer necessary for targets to depend on makefiles +just in-case they set a variable that might be relevant. +Mechanisms such as +.Va .MAKE.META.CMP_FILTER +and +.Ic .NOMETA_CMP , +allow limiting or disabling that comparison on a per target basis. +A reference to the variable +.Va .OODATE +can be leveraged to block comparison of certain commands. +For example: +.Ql ${.OODATE:M} +will expand to nothing and have no impact on the target, +its side-effect though, +will be to prevent comparison of any command line it appears on. +For documentation purposes +.Ql ${.OODATE:MNOMETA_CMP} +is useful. +.Pp +If necessary, +.Nm +will then use the information captured by +.Xr filemon 4 , +to check the modification time of any file used in generating +the target, +if any is newer, +the target is out-of-date. +.Pp +Such deep inspection can easily lead to cases where a target is +.Em always +considered out-of-date, which is why +.Va .MAKE.META.IGNORE_FILTER , +.Va .MAKE.META.IGNORE_PATHS +and +.Va .MAKE.META.IGNORE_PATTERNS , +are provided to limit that inspection when necessary. +.It Cm curdirOk= Ns Ar bf +By default, +.Nm +does not create +.Pa .meta +files in +.Sq Va .CURDIR . +This can be overridden by setting +.Ar bf +to a value which represents true. +.It Cm missing-meta= Ns Ar bf +If +.Ar bf +is true, a missing +.Pa .meta +file makes the target out-of-date. +.It Cm missing-filemon= Ns Ar bf +If +.Ar bf +is true, missing filemon data makes the target out-of-date. +.It Cm nofilemon +Do not use +.Xr filemon 4 . +.It Cm env +For debugging, it can be useful to include the environment +in the +.Pa .meta +file. +.It Cm verbose +If in +.Dq meta +mode, print a clue about the target being built. +This is useful if the build is otherwise running silently. +The message printed is the expanded value of +.Va .MAKE.META.PREFIX . +.It Cm ignore-cmd +Some makefiles have commands which are simply not stable. +This keyword causes them to be ignored for +determining whether a target is out of date in +.Dq meta +mode. +See also +.Ic .NOMETA_CMP . +.It Cm silent= Ns Ar bf +If +.Ar bf +is true, when a .meta file is created, mark the target +.Ic .SILENT . +.It Cm randomize-targets +In both compat and parallel mode, do not make the targets in the usual order, +but instead randomize their order. +This mode can be used to detect undeclared dependencies between files. +.El +.It Va MAKEOBJDIR +Used to create files in a separate directory, see +.Va .OBJDIR . +.It Va MAKE_OBJDIR_CHECK_WRITABLE +When true, +.Nm +will check that +.Va .OBJDIR +is writable, and issue a warning if not. +.It Va MAKE_DEBUG_OBJDIR_CHECK_WRITABLE +When true and +.Nm +is warning about an unwritable +.Va .OBJDIR , +report the variables listed in +.Va MAKE_PRINT_VAR_ON_ERROR +to help debug. +.It Va MAKEOBJDIRPREFIX +Used to create files in a separate directory, see +.Va .OBJDIR . +It should be an absolute path. +.It Va .MAKE.OS +The name of the operating system, see +.Xr uname 1 . +It is read-only. +.It Va .MAKEOVERRIDES +This variable is used to record the names of variables assigned to +on the command line, so that they may be exported as part of +.Sq Ev MAKEFLAGS . +This behavior can be disabled by assigning an empty value to +.Sq Va .MAKEOVERRIDES +within a makefile. +Extra variables can be exported from a makefile +by appending their names to +.Sq Va .MAKEOVERRIDES . +.Sq Ev MAKEFLAGS +is re-exported whenever +.Sq Va .MAKEOVERRIDES +is modified. +.It Va .MAKE.PATH_FILEMON +If +.Nm +was built with +.Xr filemon 4 +support, this is set to the path of the device node. +This allows makefiles to test for this support. +.It Va .MAKE.PID +The process ID of +.Nm . +It is read-only. +.It Va .MAKE.PPID +The parent process ID of +.Nm . +It is read-only. +.It Va MAKE_PRINT_VAR_ON_ERROR +When +.Nm +stops due to an error, it sets +.Sq Va .ERROR_TARGET +to the name of the target that failed, +.Sq Va .ERROR_EXIT +to the exit status of the failed target, +.Sq Va .ERROR_CMD +to the commands of the failed target, +and in +.Dq meta +mode, it also sets +.Sq Va .ERROR_CWD +to the +.Xr getcwd 3 , +and +.Sq Va .ERROR_META_FILE +to the path of the meta file (if any) describing the failed target. +It then prints its name and the value of +.Sq Va .CURDIR +as well as the value of any variables named in +.Sq Va MAKE_PRINT_VAR_ON_ERROR . +.It Va .MAKE.SAVE_DOLLARS +If true, +.Ql $$ +are preserved when doing +.Ql := +assignments. +The default is false, for backwards compatibility. +Set to true for compatability with other makes. +If set to false, +.Ql $$ +becomes +.Ql $ +per normal evaluation rules. +.It Va .MAKE.TARGET_LOCAL_VARIABLES +If set to +.Ql false , +apparent variable assignments in dependency lines are +treated as normal sources. +.It Va .MAKE.UID +The numeric ID of the user running +.Nm . +It is read-only. +.\" 'MAKE_VERSION' is intentionally undocumented +.\" since it is only defined in the bmake distribution, +.\" but not in NetBSD's native make. +.\" '.meta.%d.lcwd' is intentionally undocumented +.\" since it is an internal implementation detail. +.\" '.meta.%d.ldir' is intentionally undocumented +.\" since it is an internal implementation detail. +.\" 'MFLAGS' is intentionally undocumented +.\" since it is obsolete. +.It Va .newline +This variable is simply assigned a newline character as its value. +It is read-only. +This allows expansions using the +.Cm \&:@ +modifier to put a newline between +iterations of the loop rather than a space. +For example, in case of an error, +.Nm +prints the variable names and their values using: +.Dl ${MAKE_PRINT_VAR_ON_ERROR:@v@$v='${$v}'${.newline}@} +.It Va .OBJDIR +A path to the directory where the targets are built. +Its value is determined by trying to +.Xr chdir 2 +to the following directories in order and using the first match: +.Bl -enum +.It +.Cm ${MAKEOBJDIRPREFIX} Ns Cm ${.CURDIR} +.Pp +(Only if +.Sq Ev MAKEOBJDIRPREFIX +is set in the environment or on the command line.) +.It +.Cm ${MAKEOBJDIR} +.Pp +(Only if +.Sq Ev MAKEOBJDIR +is set in the environment or on the command line.) +.It +.Cm ${.CURDIR} Ns Pa /obj. Ns Cm ${MACHINE} +.It +.Cm ${.CURDIR} Ns Pa /obj +.It +.Pa /usr/obj/ Ns Cm ${.CURDIR} +.It +.Cm ${.CURDIR} +.El +.Pp +Variable expansion is performed on the value before it is used, +so expressions such as +.Cm ${.CURDIR:S,^/usr/src,/var/obj,} +may be used. +This is especially useful with +.Sq Ev MAKEOBJDIR . +.Pp +.Sq Va .OBJDIR +may be modified in the makefile via the special target +.Sq Ic .OBJDIR . +In all cases, +.Nm +changes to the specified directory if it exists, and sets +.Sq Va .OBJDIR +and +.Sq Va PWD +to that directory before executing any targets. +.Pp +Except in the case of an explicit +.Sq Ic .OBJDIR +target, +.Nm +checks that the specified directory is writable and ignores it if not. +This check can be skipped by setting the environment variable +.Sq Ev MAKE_OBJDIR_CHECK_WRITABLE +to +.Dq no . +.It Va .PARSEDIR +The directory name of the current makefile being parsed. +.It Va .PARSEFILE +The basename of the current makefile being parsed. +This variable and +.Sq Va .PARSEDIR +are both set only while the makefiles are being parsed. +To retain their current values, +assign them to a variable using assignment with expansion +.Sq Cm \&:= . +.It Va .PATH +The space-separated list of directories that +.Nm +searches for files. +To update this search list, use the special target +.Sq Ic .PATH +rather than modifying the variable directly. +.It Va %POSIX +Is set in POSIX mode, see the special +.Ql Va .POSIX +target. +.\" XXX: There is no make variable named 'PWD', +.\" XXX: make only reads and writes the environment variable 'PWD'. +.It Va PWD +Alternate path to the current directory. +.Nm +normally sets +.Sq Va .CURDIR +to the canonical path given by +.Xr getcwd 3 . +However, if the environment variable +.Sq Ev PWD +is set and gives a path to the current directory, +.Nm +sets +.Sq Va .CURDIR +to the value of +.Sq Ev PWD +instead. +This behavior is disabled if +.Sq Ev MAKEOBJDIRPREFIX +is set or +.Sq Ev MAKEOBJDIR +contains a variable transform. +.Sq Va PWD +is set to the value of +.Sq Va .OBJDIR +for all programs which +.Nm +executes. +.It Va .SHELL +The pathname of the shell used to run target scripts. +It is read-only. +.It Va .SUFFIXES +The list of known suffixes. +It is read-only. +.It Va .SYSPATH +The space-separated list of directories that +.Nm +searches for makefiles, referred to as the system include path. +To update this search list, use the special target +.Sq Ic .SYSPATH +rather than modifying the variable which is read-only. +.It Va .TARGETS +The list of targets explicitly specified on the command line, if any. +.It Va VPATH +The colon-separated +.Pq Dq \&: +list of directories that +.Nm +searches for files. +This variable is supported for compatibility with old make programs only, use +.Sq Va .PATH +instead. +.El +.Ss Variable modifiers +The general format of a variable expansion is: +.Pp +.Sm off +.D1 Ic \&${ Ar variable\| Oo Ic \&: Ar modifier\| Oo Ic \&: No ... Oc Oc Ic \&} +.Sm on +.Pp +Each modifier begins with a colon. +To escape a colon, precede it with a backslash +.Ql \e . +.Pp +A list of indirect modifiers can be specified via a variable, as follows: +.Pp +.Bd -literal -offset indent +.Ar modifier_variable\^ Li \&= Ar modifier Ns Oo Ic \&: Ns No ... Oc + +.Sm off +.Ic \&${ Ar variable Ic \&:${ Ar modifier_variable Ic \&} Oo Ic \&: No ... Oc Ic \&} +.Sm on +.Ed +.Pp +In this case, the first modifier in the +.Ar modifier_variable +does not start with a colon, +since that colon already occurs in the referencing variable. +If any of the modifiers in the +.Ar modifier_variable +contains a dollar sign +.Pq Ql $ , +these must be doubled to avoid early expansion. +.Pp +Some modifiers interpret the expression value as a single string, +others treat the expression value as a whitespace-separated list of words. +When splitting a string into words, +whitespace can be escaped using double quotes, single quotes and backslashes, +like in the shell. +The quotes and backslashes are retained in the words. +.Pp +The supported modifiers are: +.Bl -tag -width EEE +.It Cm \&:E +Replaces each word with its suffix. +.It Cm \&:H +Replaces each word with its dirname. +.It Cm \&:M\| Ns Ar pattern +Selects only those words that match +.Ar pattern . +The standard shell wildcard characters +.Pf ( Ql * , +.Ql \&? , +and +.Ql \&[] ) +may +be used. +The wildcard characters may be escaped with a backslash +.Pq Ql \e . +As a consequence of the way values are split into words, matched, +and then joined, the construct +.Ql ${VAR:M*} +removes all leading and trailing whitespace +and normalizes the inter-word spacing to a single space. +.It Cm \&:N\| Ns Ar pattern +This is the opposite of +.Sq Cm \&:M , +selecting all words which do +.Em not +match +.Ar pattern . +.It Cm \&:O +Orders the words lexicographically. +.It Cm \&:On +Orders the words numerically. +A number followed by one of +.Ql k , +.Ql M +or +.Ql G +is multiplied by the appropriate factor, which is 1024 for +.Ql k , +1048576 for +.Ql M , +or 1073741824 for +.Ql G . +Both upper- and lower-case letters are accepted. +.It Cm \&:Or +Orders the words in reverse lexicographical order. +.It Cm \&:Orn +Orders the words in reverse numerical order. +.It Cm \&:Ox +Shuffles the words. +The results are different each time you are referring to the +modified variable; use the assignment with expansion +.Sq Cm \&:= +to prevent such behavior. +For example, +.Bd -literal -offset indent +LIST= uno due tre quattro +RANDOM_LIST= ${LIST:Ox} +STATIC_RANDOM_LIST:= ${LIST:Ox} + +all: + @echo "${RANDOM_LIST}" + @echo "${RANDOM_LIST}" + @echo "${STATIC_RANDOM_LIST}" + @echo "${STATIC_RANDOM_LIST}" +.Ed +may produce output similar to: +.Bd -literal -offset indent +quattro due tre uno +tre due quattro uno +due uno quattro tre +due uno quattro tre +.Ed +.It Cm \&:Q +Quotes every shell meta-character in the value, so that it can be passed +safely to the shell. +.It Cm \&:q +Quotes every shell meta-character in the value, and also doubles +.Sq $ +characters so that it can be passed +safely through recursive invocations of +.Nm . +This is equivalent to +.Sq Cm \&:S/\e\&$/&&/g:Q . +.It Cm \&:R +Replaces each word with everything but its suffix. +.It Cm \&:range Ns Oo Cm = Ns Ar count Oc +The value is an integer sequence representing the words of the original +value, or the supplied +.Ar count . +.It Cm \&:gmtime Ns Oo Cm = Ns Ar timestamp Oc +The value is interpreted as a format string for +.Xr strftime 3 , +using +.Xr gmtime 3 , +producing the formatted timestamp. +Note: the +.Ql %s +format should only be used with +.Sq Cm \&:localtime . +If a +.Ar timestamp +value is not provided or is 0, the current time is used. +.It Cm \&:hash +Computes a 32-bit hash of the value and encodes it as 8 hex digits. +.It Cm \&:localtime Ns Oo Cm = Ns Ar timestamp Oc +The value is interpreted as a format string for +.Xr strftime 3 , +using +.Xr localtime 3 , +producing the formatted timestamp. +If a +.Ar timestamp +value is not provided or is 0, the current time is used. +.It Cm \&:mtime Ns Oo Cm = Ns Ar timestamp Oc +Call +.Xr stat 2 +with each word as pathname; +use +.Ql st_mtime +as the new value. +If +.Xr stat 2 +fails; use +.Ar timestamp +or current time. +If +.Ar timestamp +is set to +.Ql error , +then +.Xr stat 2 +failure will cause an error. +.It Cm \&:tA +Attempts to convert the value to an absolute path using +.Xr realpath 3 . +If that fails, the value is unchanged. +.It Cm \&:tl +Converts the value to lower-case letters. +.It Cm \&:ts Ns Ar c +When joining the words after a modifier that treats the value as words, +the words are normally separated by a space. +This modifier changes the separator to the character +.Ar c . +If +.Ar c +is omitted, no separator is used. +The common escapes (including octal numeric codes) work as expected. +.It Cm \&:tt +Converts the first character of each word to upper-case, +and the rest to lower-case letters. +.It Cm \&:tu +Converts the value to upper-case letters. +.It Cm \&:tW +Causes subsequent modifiers to treat the value as a single word +(possibly containing embedded whitespace). +See also +.Sq Cm \&:[*] . +.It Cm \&:tw +Causes the value to be treated as a list of words. +See also +.Sq Cm \&:[@] . +.Sm off +.It Cm \&:S\| No \&/ Oo Cm \&^ Oc Ar old_string\| No Oo Cm \&$ Oc \&/ Ar new_string\| No \&/ Op Cm 1gW +.Sm on +Modifies the first occurrence of +.Ar old_string +in each word of the value, replacing it with +.Ar new_string . +.Pp +If +.Ar old_string +is preceded by a caret +.Pq Ql ^ , +.Ar old_string +is anchored at the beginning of each word. +If +.Ar old_string +is followed by a dollar sign +.Pq Ql \&$ , +it is anchored at the end of each word. +Inside +.Ar new_string , +an ampersand +.Pq Ql & +is replaced by +.Ar old_string . +Both +.Ar old_string +and +.Ar new_string +may contain nested expressions. +.Pp +Further options: +.Bl -tag +.It Cm 1 +Only the word of the first occurrence is affected. +.It Cm g +All occurrences in each affected word are replaced. +.It Cm W +The expression value is treated as a single word. +.El +.Pp +Any character may be used as the delimiter for the parts of the modifier +string. +The anchoring, ampersand, dollar and delimiter characters +can be escaped with a backslash +.Pq Ql \e . +.Sm off +.It Cm \&:C\| No \&/ Ar pattern\| No \&/ Ar replacement\| No \&/ Op Cm 1gW +.Sm on +Modifies the first occurrence of the extended regular expression +.Ar pattern +(see +.Xr regex 3 ) +in each word of the value, replacing it with +an +.Xr ed 1 Ns \-style +.Ar replacement . +.Pp +Both +.Ar pattern +and +.Ar replacement +may contain nested expressions. +.Pp +Further options: +.Bl -tag +.It Cm 1 +Only the word of the first occurrence is affected. +.It Cm g +All occurrences in each affected word are replaced. +.It Cm W +The expression value is treated as a single word. +.El +.Pp +Any character may be used as the delimiter for the parts of the modifier +string. +The anchoring, ampersand, dollar and delimiter characters +can be escaped with a backslash +.Pq Ql \e . +.It Cm \&:T +Replaces each word with its last path component (basename). +.It Cm \&:u +Removes adjacent duplicate words (like +.Xr uniq 1 ) . +.Sm off +.It Cm \&:\&?\| Ar true_string\| Cm \&: Ar false_string +.Sm on +If the variable name (not its value), when parsed as a +.Cm .if +conditional expression, evaluates to true, return as its value the +.Ar true_string , +otherwise return the +.Ar false_string . +Since the variable name is used as the expression, +\&:\&? must be the first modifier after the variable name +.No itself Ns \^\(em\^ Ns +which, of course, usually contains variable expansions. +A common error is trying to use expressions like +.Dl ${NUMBERS:M42:?match:no} +which actually tests defined(NUMBERS). +To determine if any words match +.Dq 42 , +you need to use something like: +.Dl ${"${NUMBERS:M42}" != \&"\&":?match:no} . +.It Cm :\| Ns Ar old_string\| Ns Cm = Ns Ar new_string +This is the +.At V +style substitution. +It can only be the last modifier specified, +as a +.Ql \&: +in either +.Ar old_string +or +.Ar new_string +is treated as a regular character, not as the end of the modifier. +.Pp +If +.Ar old_string +does not contain the pattern matching character +.Ql % , +and the word ends with +.Ar old_string +or equals it, +that suffix is replaced with +.Ar new_string . +.Pp +Otherwise, the first +.Ql % +in +.Ar old_string +matches a possibly empty substring of arbitrary characters, +and if the whole pattern is found in the word, +the matching part is replaced with +.Ar new_string , +and the first occurrence of +.Ql % +in +.Ar new_string +(if any) is replaced with the substring matched by the +.Ql % . +.Pp +Both +.Ar old_string +and +.Ar new_string +may contain nested expressions. +To prevent a dollar sign from starting a nested expression, +escape it with a backslash. +.Sm off +.It Cm \&:@ Ar varname\| Cm @ Ar string\| Cm @ +.Sm on +This is the loop expansion mechanism from the OSF Development +Environment (ODE) make. +Unlike +.Cm \&.for +loops, expansion occurs at the time of reference. +For each word in the value, assign the word to the variable named +.Ar varname +and evaluate +.Ar string . +The ODE convention is that +.Ar varname +should start and end with a period, for example: +.Dl ${LINKS:@.LINK.@${LN} ${TARGET} ${.LINK.}@} +.Pp +However, a single-letter variable is often more readable: +.Dl ${MAKE_PRINT_VAR_ON_ERROR:@v@$v='${$v}'${.newline}@} +.It Cm \&:_ Ns Oo Cm = Ns Ar var Oc +Saves the current variable value in +.Ql $_ +or the named +.Ar var +for later reference. +Example usage: +.Bd -literal -offset indent +M_cmpv.units = 1 1000 1000000 +M_cmpv = S,., ,g:_:range:@i@+ $${_:[-$$i]} \&\\ +\\* $${M_cmpv.units:[$$i]}@:S,^,expr 0 ,1:sh + +.Dv .if ${VERSION:${M_cmpv}} < ${3.1.12:L:${M_cmpv}} + +.Ed +Here +.Ql $_ +is used to save the result of the +.Ql :S +modifier which is later referenced using the index values from +.Ql :range . +.It Cm \&:U\| Ns Ar newval +If the variable is undefined, +the optional +.Ar newval +(which may be empty) is the value. +If the variable is defined, the existing value is returned. +This is another ODE make feature. +It is handy for setting per-target CFLAGS for instance: +.Dl ${_${.TARGET:T}_CFLAGS:U${DEF_CFLAGS}} +If a value is only required if the variable is undefined, use: +.Dl ${VAR:D:Unewval} +.It Cm \&:D\| Ns Ar newval +If the variable is defined, +.Ar newval +(which may be empty) is the value. +.It Cm \&:L +The name of the variable is the value. +.It Cm \&:P +The path of the node which has the same name as the variable is the value. +If no such node exists or its path is null, the name of the variable is used. +In order for this modifier to work, the name (node) must at least have +appeared on the right-hand side of a dependency. +.Sm off +.It Cm \&:\&! Ar cmd\| Cm \&! +.Sm on +The output of running +.Ar cmd +is the value. +.It Cm \&:sh +The value is run as a command, and the output becomes the new value. +.It Cm \&:sh1 +The value is run as a command, for the first reference only, and +the output is cached for subsequent references. +This modifier is useful when the result is not expected to change. +.It Cm \&::= Ns Ar str +The variable is assigned the value +.Ar str +after substitution. +This modifier and its variations are useful in obscure situations +such as wanting to set a variable +at a point where a target's shell commands are being parsed. +These assignment modifiers always expand to nothing. +.Pp +The +.Sq Cm \&:: +helps avoid false matches with the +.At V +style +.Ql \&:= +modifier and since substitution always occurs, the +.Ql \&::= +form is vaguely appropriate. +.It Cm \&::?= Ns Ar str +As for +.Cm \&::= +but only if the variable does not already have a value. +.It Cm \&::+= Ns Ar str +Append +.Ar str +to the variable. +.It Cm \&::!= Ns Ar cmd +Assign the output of +.Ar cmd +to the variable. +.It Cm \&:\&[ Ns Ar range Ns Cm \&] +Selects one or more words from the value, +or performs other operations related to the way in which the +value is split into words. +.Pp +An empty value, or a value that consists entirely of white-space, +is treated as a single word. +For the purposes of the +.Sq Cm \&:[] +modifier, the words are indexed both forwards using positive integers +(where index 1 represents the first word), +and backwards using negative integers +(where index \-1 represents the last word). +.Pp +The +.Ar range +is subjected to variable expansion, and the expanded result is +then interpreted as follows: +.Bl -tag -width index +.\" :[n] +.It Ar index +Selects a single word from the value. +.\" :[start..end] +.It Ar start Ns Cm \&.. Ns Ar end +Selects all words from +.Ar start +to +.Ar end , +inclusive. +For example, +.Sq Cm \&:[2..-1] +selects all words from the second word to the last word. +If +.Ar start +is greater than +.Ar end , +the words are output in reverse order. +For example, +.Sq Cm \&:[-1..1] +selects all the words from last to first. +If the list is already ordered, +this effectively reverses the list, +but it is more efficient to use +.Sq Cm \&:Or +instead of +.Sq Cm \&:O:[-1..1] . +.\" :[*] +.It Cm \&* +Causes subsequent modifiers to treat the value as a single word +(possibly containing embedded whitespace). +Analogous to the effect of +.Li \&$* +in Bourne shell. +.\" :[0] +.It 0 +Means the same as +.Sq Cm \&:[*] . +.\" :[*] +.It Cm \&@ +Causes subsequent modifiers to treat the value as a sequence of words +delimited by whitespace. +Analogous to the effect of +.Li \&$@ +in Bourne shell. +.\" :[#] +.It Cm \&# +Returns the number of words in the value. +.El \" :[range] +.El +.Sh DIRECTIVES +.Nm +offers directives for including makefiles, conditionals and for loops. +All these directives are identified by a line beginning with a single dot +.Pq Ql \&. +character, followed by the keyword of the directive, such as +.Cm include +or +.Cm if . +.Ss File inclusion +Files are included with either +.Cm \&.include \&< Ns Ar file Ns Cm \&> +or +.Cm \&.include \&\*q Ns Ar file Ns Cm \&\*q . +Variables between the angle brackets or double quotes are expanded +to form the file name. +If angle brackets are used, the included makefile is expected to be in +the system makefile directory. +If double quotes are used, the including makefile's directory and any +directories specified using the +.Fl I +option are searched before the system makefile directory. +.Pp +For compatibility with other make variants, +.Sq Cm include Ar file No ... +(without leading dot) +is also accepted. +.Pp +If the include statement is written as +.Cm .-include +or as +.Cm .sinclude , +errors locating and/or opening include files are ignored. +.Pp +If the include statement is written as +.Cm .dinclude , +not only are errors locating and/or opening include files ignored, +but stale dependencies within the included file are ignored just like in +.Va .MAKE.DEPENDFILE . +.Ss Exporting variables +The directives for exporting and unexporting variables are: +.Bl -tag -width Ds +.It Ic .export Ar variable No ... +Export the specified global variable. +.Pp +For compatibility with other make programs, +.Cm export Ar variable\| Ns Cm \&= Ns Ar value +(without leading dot) is also accepted. +.Pp +Appending a variable name to +.Va .MAKE.EXPORTED +is equivalent to exporting a variable. +.It Ic .export-all +Export all globals except for internal variables (those that start with +.Ql \&. ) . +This is not affected by the +.Fl X +flag, so should be used with caution. +.It Ic .export-env Ar variable No ... +The same as +.Ql .export , +except that the variable is not appended to +.Va .MAKE.EXPORTED . +This allows exporting a value to the environment which is different from that +used by +.Nm +internally. +.It Ic .export-literal Ar variable No ... +The same as +.Ql .export-env , +except that variables in the value are not expanded. +.It Ic .unexport Ar variable No ... +The opposite of +.Ql .export . +The specified global +.Ar variable +is removed from +.Va .MAKE.EXPORTED . +If no variable list is provided, all globals are unexported, +and +.Va .MAKE.EXPORTED +deleted. +.It Ic .unexport-env +Unexport all globals previously exported and +clear the environment inherited from the parent. +This operation causes a memory leak of the original environment, +so should be used sparingly. +Testing for +.Va .MAKE.LEVEL +being 0 would make sense. +Also note that any variables which originated in the parent environment +should be explicitly preserved if desired. +For example: +.Bd -literal -offset indent +.Li .if ${.MAKE.LEVEL} == 0 +PATH := ${PATH} +.Li .unexport-env +.Li .export PATH +.Li .endif +.Pp +.Ed +Would result in an environment containing only +.Sq Ev PATH , +which is the minimal useful environment. +.\" TODO: Check the below sentence, environment variables don't start with '.'. +Actually +.Sq Va .MAKE.LEVEL +is also pushed into the new environment. +.El +.Ss Messages +The directives for printing messages to the output are: +.Bl -tag -width Ds +.It Ic .info Ar message +The message is printed along with the name of the makefile and line number. +.It Ic .warning Ar message +The message prefixed by +.Sq Li warning: +is printed along with the name of the makefile and line number. +.It Ic .error Ar message +The message is printed along with the name of the makefile and line number, +.Nm +exits immediately. +.El +.Ss Conditionals +The directives for conditionals are: +.ds maybenot Oo Ic \&! Oc Ns +.Bl -tag +.It Ic .if \*[maybenot] Ar expression Op Ar operator expression No ... +Test the value of an expression. +.It Ic .ifdef \*[maybenot] Ar variable Op Ar operator variable No ... +Test whether a variable is defined. +.It Ic .ifndef \*[maybenot] Ar variable Op Ar operator variable No ... +Test whether a variable is not defined. +.It Ic .ifmake \*[maybenot] Ar target Op Ar operator target No ... +Test the target being requested. +.It Ic .ifnmake \*[maybenot] Ar target Op Ar operator target No ... +Test the target being requested. +.It Ic .else +Reverse the sense of the last conditional. +.It Ic .elif \*[maybenot] Ar expression Op Ar operator expression No ... +A combination of +.Sq Ic .else +followed by +.Sq Ic .if . +.It Ic .elifdef \*[maybenot] Ar variable Op Ar operator variable No ... +A combination of +.Sq Ic .else +followed by +.Sq Ic .ifdef . +.It Ic .elifndef \*[maybenot] Ar variable Op Ar operator variable No ... +A combination of +.Sq Ic .else +followed by +.Sq Ic .ifndef . +.It Ic .elifmake \*[maybenot] Ar target Op Ar operator target No ... +A combination of +.Sq Ic .else +followed by +.Sq Ic .ifmake . +.It Ic .elifnmake \*[maybenot] Ar target Op Ar operator target No ... +A combination of +.Sq Ic .else +followed by +.Sq Ic .ifnmake . +.It Ic .endif +End the body of the conditional. +.El +.Pp +The +.Ar operator +may be any one of the following: +.Bl -tag +.It Ic \&|\&| +Logical OR. +.It Ic \&&& +Logical AND; of higher precedence than +.Sq Ic \&|\&| . +.El +.Pp +.Nm +only evaluates a conditional as far as is necessary to determine its value. +Parentheses can be used to override the operator precedence. +The boolean operator +.Sq Ic \&! +may be used to logically negate an expression, typically a function call. +It is of higher precedence than +.Sq Ic \&&& . +.Pp +The value of +.Ar expression +may be any of the following function call expressions: +.Bl -tag +.Sm off +.It Ic defined Li \&( Ar varname Li \&) +.Sm on +Evaluates to true if the variable +.Ar varname +has been defined. +.Sm off +.It Ic make Li \&( Ar target Li \&) +.Sm on +Evaluates to true if the target was specified as part of +.Nm Ns 's +command line or was declared the default target (either implicitly or +explicitly, see +.Va .MAIN ) +before the line containing the conditional. +.Sm off +.It Ic empty Li \&( Ar varname Oo Li : Ar modifiers Oc Li \&) +.Sm on +Evaluates to true if the expansion of the variable, +after applying the modifiers, results in an empty string. +.Sm off +.It Ic exists Li \&( Ar pathname Li \&) +.Sm on +Evaluates to true if the given pathname exists. +If relative, the pathname is searched for on the system search path (see +.Va .PATH ) . +.Sm off +.It Ic target Li \&( Ar target Li \&) +.Sm on +Evaluates to true if the target has been defined. +.Sm off +.It Ic commands Li \&( Ar target Li \&) +.Sm on +Evaluates to true if the target has been defined +and has commands associated with it. +.El +.Pp +.Ar Expression +may also be an arithmetic or string comparison. +Variable expansion is performed on both sides of the comparison. +If both sides are numeric and neither is enclosed in quotes, +the comparison is done numerically, otherwise lexicographically. +A string is interpreted as a hexadecimal integer if it is preceded by +.Li 0x , +otherwise it is interpreted as a decimal floating-point number; +octal numbers are not supported. +.Pp +All comparisons may use the operators +.Sq Ic \&== +and +.Sq Ic \&!= . +Numeric comparisons may also use the operators +.Sq Ic \&< , +.Sq Ic \&<= , +.Sq Ic \&> +and +.Sq Ic \&>= . +.Pp +If the comparison has neither a comparison operator nor a right side, +the expression evaluates to true if it is nonempty +and its numeric value (if any) is not zero. +.Pp +When +.Nm +is evaluating one of these conditional expressions, and it encounters +a (whitespace-separated) word it doesn't recognize, either the +.Dq make +or +.Dq defined +function is applied to it, depending on the form of the conditional. +If the form is +.Sq Ic .ifdef , +.Sq Ic .ifndef +or +.Sq Ic .if , +the +.Dq defined +function is applied. +Similarly, if the form is +.Sq Ic .ifmake +or +.Sq Ic .ifnmake , +the +.Dq make +function is applied. +.Pp +If the conditional evaluates to true, +parsing of the makefile continues as before. +If it evaluates to false, the following lines until the corresponding +.Sq Ic .elif +variant, +.Sq Ic .else +or +.Sq Ic .endif +are skipped. +.Ss For loops +For loops are typically used to apply a set of rules to a list of files. +The syntax of a for loop is: +.Pp +.Bl -tag -compact -width Ds +.It Ic \&.for Ar variable Oo Ar variable No ... Oc Ic in Ar expression +.It Aq Ar make-lines +.It Ic \&.endfor +.El +.Pp +The +.Ar expression +is expanded and then split into words. +On each iteration of the loop, one word is taken and assigned to each +.Ar variable , +in order, and these +.Ar variables +are substituted into the +.Ar make-lines +inside the body of the for loop. +The number of words must come out even; that is, if there are three +iteration variables, the number of words provided must be a multiple +of three. +.Pp +If +.Sq Ic .break +is encountered within a +.Cm \&.for +loop, it causes early termination of the loop, otherwise a parse error. +.\" TODO: Describe limitations with defined/empty. +.Ss Other directives +.Bl -tag -width Ds +.It Ic .undef Ar variable No ... +Un-define the specified global variables. +Only global variables can be un-defined. +.El +.Sh COMMENTS +Comments begin with a hash +.Pq Ql \&# +character, anywhere but in a shell +command line, and continue to the end of an unescaped new line. +.Sh SPECIAL SOURCES (ATTRIBUTES) +.Bl -tag -width .IGNOREx +.It Ic .EXEC +Target is never out of date, but always execute commands anyway. +.It Ic .IGNORE +Ignore any errors from the commands associated with this target, exactly +as if they all were preceded by a dash +.Pq Ql \- . +.\" .It Ic .INVISIBLE +.\" XXX +.\" .It Ic .JOIN +.\" XXX +.It Ic .MADE +Mark all sources of this target as being up to date. +.It Ic .MAKE +Execute the commands associated with this target even if the +.Fl n +or +.Fl t +options were specified. +Normally used to mark recursive +.Nm Ns s . +.It Ic .META +Create a meta file for the target, even if it is flagged as +.Ic .PHONY , +.Ic .MAKE , +or +.Ic .SPECIAL . +Usage in conjunction with +.Ic .MAKE +is the most likely case. +In +.Dq meta +mode, the target is out-of-date if the meta file is missing. +.It Ic .NOMETA +Do not create a meta file for the target. +Meta files are also not created for +.Ic .PHONY , +.Ic .MAKE , +or +.Ic .SPECIAL +targets. +.It Ic .NOMETA_CMP +Ignore differences in commands when deciding if target is out of date. +This is useful if the command contains a value which always changes. +If the number of commands change, though, +the target is still considered out of date. +The same effect applies to any command line that uses the variable +.Va .OODATE , +which can be used for that purpose even when not otherwise needed or desired: +.Bd -literal -offset indent + +skip-compare-for-some: + @echo this is compared + @echo this is not ${.OODATE:M.NOMETA_CMP} + @echo this is also compared + +.Ed +The +.Cm \&:M +pattern suppresses any expansion of the unwanted variable. +.It Ic .NOPATH +Do not search for the target in the directories specified by +.Va .PATH . +.It Ic .NOTMAIN +Normally +.Nm +selects the first target it encounters as the default target to be built +if no target was specified. +This source prevents this target from being selected. +.It Ic .OPTIONAL +If a target is marked with this attribute and +.Nm +can't figure out how to create it, it ignores this fact and assumes +the file isn't needed or already exists. +.It Ic .PHONY +The target does not correspond to an actual file; +it is always considered to be out of date, +and is not created with the +.Fl t +option. +Suffix-transformation rules are not applied to +.Ic .PHONY +targets. +.It Ic .PRECIOUS +When +.Nm +is interrupted, it normally removes any partially made targets. +This source prevents the target from being removed. +.It Ic .RECURSIVE +Synonym for +.Ic .MAKE . +.It Ic .SILENT +Do not echo any of the commands associated with this target, exactly +as if they all were preceded by an at sign +.Pq Ql @ . +.It Ic .USE +Turn the target into +.Nm Ns 's +version of a macro. +When the target is used as a source for another target, the other target +acquires the commands, sources, and attributes (except for +.Ic .USE ) +of the +source. +If the target already has commands, the +.Ic .USE +target's commands are appended +to them. +.It Ic .USEBEFORE +Like +.Ic .USE , +but instead of appending, prepend the +.Ic .USEBEFORE +target commands to the target. +.It Ic .WAIT +If +.Ic .WAIT +appears in a dependency line, the sources that precede it are +made before the sources that succeed it in the line. +Since the dependents of files are not made until the file itself +could be made, this also stops the dependents being built unless they +are needed for another branch of the dependency tree. +So given: +.Bd -literal +x: a .WAIT b + echo x +a: + echo a +b: b1 + echo b +b1: + echo b1 + +.Ed +the output is always +.Ql a , +.Ql b1 , +.Ql b , +.Ql x . +.Pp +The ordering imposed by +.Ic .WAIT +is only relevant for parallel makes. +.El +.Sh SPECIAL TARGETS +Special targets may not be included with other targets, i.e. they must be +the only target specified. +.Bl -tag -width .BEGINx +.It Ic .BEGIN +Any command lines attached to this target are executed before anything +else is done. +.It Ic .DEFAULT +This is sort of a +.Ic .USE +rule for any target (that was used only as a source) that +.Nm +can't figure out any other way to create. +Only the shell script is used. +The +.Va .IMPSRC +variable of a target that inherits +.Ic .DEFAULT Ns 's +commands is set to the target's own name. +.It Ic .DELETE_ON_ERROR +If this target is present in the makefile, it globally causes make to +delete targets whose commands fail. +(By default, only targets whose commands are interrupted during +execution are deleted. +This is the historical behavior.) +This setting can be used to help prevent half-finished or malformed +targets from being left around and corrupting future rebuilds. +.It Ic .END +Any command lines attached to this target are executed after everything +else is done successfully. +.It Ic .ERROR +Any command lines attached to this target are executed when another target fails. +See +.Va MAKE_PRINT_VAR_ON_ERROR +for the variables that will be set. +.It Ic .IGNORE +Mark each of the sources with the +.Ic .IGNORE +attribute. +If no sources are specified, this is the equivalent of specifying the +.Fl i +option. +.It Ic .INTERRUPT +If +.Nm +is interrupted, the commands for this target are executed. +.It Ic .MAIN +If no target is specified when +.Nm +is invoked, this target is built. +.It Ic .MAKEFLAGS +This target provides a way to specify flags for +.Nm +at the time when the makefiles are read. +The flags are as if typed to the shell, though the +.Fl f +option has +no effect. +.\" XXX: NOT YET!!!! +.\" .It Ic .NOTPARALLEL +.\" The named targets are executed in non parallel mode. +.\" If no targets are +.\" specified, all targets are executed in non parallel mode. +.It Ic .NOPATH +Apply the +.Ic .NOPATH +attribute to any specified sources. +.It Ic .NOTPARALLEL +Disable parallel mode. +.It Ic .NO_PARALLEL +Synonym for +.Ic .NOTPARALLEL , +for compatibility with other pmake variants. +.It Ic .NOREADONLY +clear the read-only attribute from the global variables specified as sources. +.It Ic .OBJDIR +The source is a new value for +.Sq Va .OBJDIR . +If it exists, +.Nm +changes the current working directory to it and updates the value of +.Sq Va .OBJDIR . +.It Ic .ORDER +In parallel mode, the named targets are made in sequence. +This ordering does not add targets to the list of targets to be made. +.Pp +Since the dependents of a target do not get built until the target itself +could be built, unless +.Ql a +is built by another part of the dependency graph, +the following is a dependency loop: +.Bd -literal +\&.ORDER: b a +b: a +.Ed +.Pp +.\" XXX: NOT YET!!!! +.\" .It Ic .PARALLEL +.\" The named targets are executed in parallel mode. +.\" If no targets are +.\" specified, all targets are executed in parallel mode. +.It Ic .PATH +The sources are directories which are to be searched for files not +found in the current directory. +If no sources are specified, +any previously specified directories are removed from the search path. +If the source is the special +.Ic .DOTLAST +target, the current working directory is searched last. +.It Ic .PATH. Ns Ar suffix +Like +.Ic .PATH +but applies only to files with a particular suffix. +The suffix must have been previously declared with +.Ic .SUFFIXES . +.It Ic .PHONY +Apply the +.Ic .PHONY +attribute to any specified sources. +.It Ic .POSIX +If this is the first non-comment line in the main makefile, +the variable +.Va %POSIX +is set to the value +.Ql 1003.2 +and the makefile +.Ql +is included if it exists, +to provide POSIX-compatible default rules. +If +.Nm +is run with the +.Fl r +flag, only +.Ql posix.mk +contributes to the default rules. +In POSIX-compatible mode, the AT&T System V UNIX style substitution +modifier is checked first rather than as a fallback. +.It Ic .PRECIOUS +Apply the +.Ic .PRECIOUS +attribute to any specified sources. +If no sources are specified, the +.Ic .PRECIOUS +attribute is applied to every target in the file. +.It Ic .READONLY +set the read-only attribute on the global variables specified as sources. +.It Ic .SHELL +Sets the shell that +.Nm +uses to execute commands. +The sources are a set of +.Ar field\| Ns Cm \&= Ns Ar value +pairs. +.Bl -tag -width ".Li hasErrCtls" +.It Li name +This is the minimal specification, used to select one of the built-in +shell specs; +.Li sh , +.Li ksh , +and +.Li csh . +.It Li path +Specifies the absolute path to the shell. +.It Li hasErrCtl +Indicates whether the shell supports exit on error. +.It Li check +The command to turn on error checking. +.It Li ignore +The command to disable error checking. +.It Li echo +The command to turn on echoing of commands executed. +.It Li quiet +The command to turn off echoing of commands executed. +.It Li filter +The output to filter after issuing the +.Li quiet +command. +It is typically identical to +.Li quiet . +.It Li errFlag +The flag to pass the shell to enable error checking. +.It Li echoFlag +The flag to pass the shell to enable command echoing. +.It Li newline +The string literal to pass the shell that results in a single newline +character when used outside of any quoting characters. +.El +Example: +.Bd -literal +\&.SHELL: name=ksh path=/bin/ksh hasErrCtl=true \e + check="set \-e" ignore="set +e" \e + echo="set \-v" quiet="set +v" filter="set +v" \e + echoFlag=v errFlag=e newline="'\en'" +.Ed +.It Ic .SILENT +Apply the +.Ic .SILENT +attribute to any specified sources. +If no sources are specified, the +.Ic .SILENT +attribute is applied to every +command in the file. +.It Ic .STALE +This target gets run when a dependency file contains stale entries, having +.Va .ALLSRC +set to the name of that dependency file. +.It Ic .SUFFIXES +Each source specifies a suffix to +.Nm . +If no sources are specified, any previously specified suffixes are deleted. +It allows the creation of suffix-transformation rules. +.Pp +Example: +.Bd -literal +\&.SUFFIXES: .c .o +\&.c.o: + cc \-o ${.TARGET} \-c ${.IMPSRC} +.Ed +.It Ic .SYSPATH +The sources are directories which are to be added to the system +include path which +.Nm +searches for makefiles. +If no sources are specified, +any previously specified directories are removed from the system +include path. +.El +.Sh ENVIRONMENT +.Nm +uses the following environment variables, if they exist: +.Ev MACHINE , +.Ev MACHINE_ARCH , +.Ev MAKE , +.Ev MAKEFLAGS , +.Ev MAKEOBJDIR , +.Ev MAKEOBJDIRPREFIX , +.Ev MAKESYSPATH , +.Ev MAKE_STACK_TRACE , +.Ev PWD , +and +.Ev TMPDIR . +.Pp +.Ev MAKEOBJDIRPREFIX +and +.Ev MAKEOBJDIR +should be set in the environment or on the command line to +.Nm +and not as makefile variables; +see the description of +.Sq Va .OBJDIR +for more details. +It is possible to set these via makefile variables but unless done +very early and the +.Sq Ic .OBJDIR +target is used to reset +.Sq Va .OBJDIR , +there may be unexpected side effects. +.Pp +If the +.Ev MAKE_STACK_TRACE +environment variable is set to +.Dq yes , +any stack traces include the call chain of the parent processes. +.\" .Sh EXIT STATUS +.\" .Sh ENVIRONMENT +.Sh FILES +.Bl -tag -width /usr/share/mk -compact +.It .depend +list of dependencies +.It makefile +first default makefile if no makefile is specified on the command line +.It Makefile +second default makefile if no makefile is specified on the command line +.It sys.mk +system makefile +.It /usr/share/mk +system makefile directory +.El +.\" .Sh EXAMPLES +.Sh DIAGNOSTICS +.Bl -tag +.It Dv Invalid internal option \(dq-J\(dq in \(dq Ns Ar directory Ns Dv \(dq +The internal +.Fl J +option coordinates the main +.Nm +process with the sub-make processes to limit +the number of jobs that run in parallel. +The option is passed to all child processes via the +.Ev MAKEFLAGS +environment variable. +To become valid, +this option requires that the target running the sub-make is marked with the +.Dv .MAKE +special source, +or that one of the target's commands directly contains the word +.Dq make +or one of the expressions +.Dq ${MAKE} , +.Dq ${.MAKE} , +.Dq $(MAKE) , +.Dq $(.MAKE) . +If that's not the case, +make issues the above warning and falls back to compat mode. +.Pp +To see the chain of sub-makes that leads to the invalid option, set the +.Ev MAKE_STACK_TRACE +environment variable to +.Dq yes . +.Pp +To run the sub-make in parallel mode, even in dry-run mode (see the +.Fl n +option), add the +.Dv .MAKE +pseudo source to the target. +This is appropriate when the sub-make runs the same target in a subdirectory. +.Pp +To run the sub-make in parallel mode but not in dry-mode, +add a +.Dq ${:D make} +marker to one of the target's commands. +This marker expands to an empty string +and thus does not affect the executed commands. +.\" The marker can even be added before any of the "@+-" modifiers, +.\" so no need to mention this explicitly. +.Pp +To run the sub-make in compat mode, add the +.Fl B +option to its invocation. +This is appropriate when the sub-make is only used to print a variable's +value using the +.Fl v +or +.Fl V +options. +.Pp +To make the sub-make independent from the parent make, unset the +.Ev MAKEFLAGS +environment variable in the target's commands. +.El +.Sh COMPATIBILITY +The basic make syntax is compatible between different make variants; +however the special variables, variable modifiers and conditionals are not. +.Ss Older versions +An incomplete list of changes in older versions of +.Nm : +.Pp +The way that .for loop variables are substituted changed after +.Nx 5.0 +so that they still appear to be variable expansions. +In particular this stops them being treated as syntax, and removes some +obscure problems using them in .if statements. +.Pp +The way that parallel makes are scheduled changed in +.Nx 4.0 +so that .ORDER and .WAIT apply recursively to the dependent nodes. +The algorithms used may change again in the future. +.Ss Other make dialects +Other make dialects (GNU make, SVR4 make, POSIX make, etc.) do not +support most of the features of +.Nm +as described in this manual. +Most notably: +.Bl -bullet -offset indent +.It +The +.Ic .WAIT +and +.Ic .ORDER +declarations and most functionality pertaining to parallelization. +(GNU make supports parallelization but lacks the features needed to +control it effectively.) +.It +Directives, including for loops and conditionals and most of the +forms of include files. +(GNU make has its own incompatible and less powerful syntax for +conditionals.) +.\" The "less powerful" above means that GNU make does not have the +.\" make(target), target(target) and commands(target) functions. +.It +All built-in variables that begin with a dot. +.It +Most of the special sources and targets that begin with a dot, +with the notable exception of +.Ic .PHONY , +.Ic .PRECIOUS , +and +.Ic .SUFFIXES . +.It +Variable modifiers, except for the +.Ql :old=new +string substitution, which does not portably support globbing with +.Ql % +and historically only works on declared suffixes. +.It +The +.Ic $> +variable even in its short form; most makes support this functionality +but its name varies. +.El +.Pp +Some features are somewhat more portable, such as assignment with +.Ic += , +.Ic ?= , +and +.Ic != . +The +.Va .PATH +functionality is based on an older feature +.Ic VPATH +found in GNU make and many versions of SVR4 make; however, +historically its behavior is too ill-defined (and too buggy) to rely +upon. +.Pp +The +.Ic $@ +and +.Ic $< +variables are more or less universally portable, as is the +.Ic $(MAKE) +variable. +Basic use of suffix rules (for files only in the current directory, +not trying to chain transformations together, etc.) is also reasonably +portable. +.Sh SEE ALSO +.Xr mkdep 1 +.\" .Sh STANDARDS +.Sh HISTORY +.Nm +is derived from NetBSD +.Xr make 1 . +It uses autoconf to facilitate portability to other platforms. +.Pp +A +make +command appeared in +.At v7 . +This +make +implementation is based on Adam de Boor's pmake program, +which was written for Sprite at Berkeley. +It was designed to be a parallel distributed make running jobs on different +machines using a daemon called +.Dq customs . +.Pp +Historically the target/dependency +.Ic FRC +has been used to FoRCe rebuilding (since the target/dependency +does not exist ... unless someone creates an +.Pa FRC +file). +.\" .Sh AUTHORS +.\" .Sh CAVEATS +.Sh BUGS +The +.Nm +syntax is difficult to parse. +For instance, finding the end of a variable's use should involve scanning +each of the modifiers, using the correct terminator for each field. +In many places +.Nm +just counts {} and () in order to find the end of a variable expansion. +.Pp +There is no way of escaping a space character in a filename. +.Pp +In jobs mode, when a target fails; +.Nm +will put an error token into the job token pool. +This will cause all other instances of +.Nm +using that token pool to abort the build and exit with error code 6. +Sometimes the attempt to suppress a cascade of unnecessary errors, +can result in a seemingly unexplained +.Ql *** Error code 6 +.\" .Sh SECURITY CONSIDERATIONS diff --git a/static/freebsd/man1/bomtool.1 b/static/freebsd/man1/bomtool.1 new file mode 100644 index 00000000..aac6c801 --- /dev/null +++ b/static/freebsd/man1/bomtool.1 @@ -0,0 +1,100 @@ +.\" Copyright (c) 2025 pkgconf authors (see AUTHORS). +.\" +.\" Permission to use, copy, modify, and/or distribute this software for any +.\" purpose with or without fee is hereby granted, provided that the above +.\" copyright notice and this permission notice appear in all copies. +.\" +.\" This software is provided 'as is' and without any warranty, express or +.\" implied. In no event shall the authors be liable for any damages arising +.\" from the use of this software. +.Dd June 4, 2025 +.Dt BOMTOOL 1 +.Os +.Sh NAME +.Nm bomtool +.Nd a tool for generating SPDX-based software bills of material +.Sh SYNOPSIS +.Nm +.Op Ar options +.Ar module ... +.Sh DESCRIPTION +.Nm +is a program which generates a textual SPDX 2.0 software bill of +materials (SBOM) for a given set of pkg-config modules. +The output of this tool can then be translated into other SBOM +formats as necessary. +.Pp +The +.Ar options +are as follows: +.Bl -tag -width indent +.It Fl -about +Print the version number, the Copyright notice, and the license of the +.Nm +program to standard output and exit. +Most other options and all command line arguments are ignored. +.It Fl -version +Print the version number of the +.Nm +program to standard output and exit. +Most other options and all command line arguments are ignored. +.El +.Sh ENVIRONMENT +.Bl -tag -width indent +.It Ev PKG_CONFIG_DEBUG_SPEW +If set, print debugging messages to stderr. +.It Ev PKG_CONFIG_IGNORE_CONFLICTS +If set, ignore +.Ic Conflicts +rules in modules. +Has the same effect as the +.Fl -ignore-conflicts +option in +.Xr pkgconf 1 +. +.It Ev PKG_CONFIG_LIBDIR +A colon-separated list of low-priority directories where +.Xr pc 5 +files are looked up. +The module search path is constructed by appending this list to +.Ev PKG_CONFIG_PATH , +which enjoys higher priority. +If +.Ev PKG_CONFIG_LIBDIR +is not defined, the default list compiled into the +.Nm +program from the +.Dv PKG_DEFAULT_PATH +preprocessor macro is appended instead. +If +.Ev PKG_CONFIG_LIBDIR +is defined but empty, nothing is appended. +.It Ev PKG_CONFIG_MAXIMUM_TRAVERSE_DEPTH +Impose a limit on the allowed depth in the dependency graph. +.It Ev PKG_CONFIG_PATH +A colon-separated list of high-priority directories where +.Xr pc 5 +files are looked up. +.It Ev PKG_CONFIG_PRELOADED_FILES +Colon-separated list of +.Xr pc 5 +files which are loaded before any other pkg-config files. +These packages are given highest priority over any other +.Xr pc 5 +files that would otherwise provide a given package. +.El +.Sh EXIT STATUS +.Ex -std +.Sh EXAMPLES +Generating an SBOM for the package named foo: +.Dl $ bomtool foo +.Dl SPDXVersion: SPDX-2.2 +.Dl DataLicense: CC0-1.0 +.Dl SPDXID: SPDXRef-DOCUMENT +.Dl DocumentName: SBOM-SPDX-fooC641.2.3 +.Dl DocumentNamespace: https://spdx.org/spdxdocs/bomtool-2.4.3 +.Dl Creator: Tool: bomtool 2.4.3 +.Dl [...] +.Sh SEE ALSO +.Xr pc 5 , +.Xr pkgconf 1 diff --git a/static/freebsd/man1/brandelf.1 b/static/freebsd/man1/brandelf.1 new file mode 100644 index 00000000..8df5fa8c --- /dev/null +++ b/static/freebsd/man1/brandelf.1 @@ -0,0 +1,147 @@ +.\" Copyright 1997 John-Mark Gurney. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' +.\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" $FreeBSD: src/usr.bin/brandelf/brandelf.1,v 1.17 2007/03/09 14:36:18 ru Exp $ +.\" $Id: brandelf.1 3235 2015-07-31 16:44:47Z emaste $ +.\" +.Dd October 27, 2014 +.Dt BRANDELF 1 +.Os +.Sh NAME +.Nm brandelf +.Nd mark an ELF binary for a specific ABI +.Sh SYNOPSIS +.Nm +.Op Fl V | Fl -version +.Op Fl f Ar ELF_ABI_number +.Op Fl h | Fl -help +.Op Fl l +.Op Fl t Ar brand +.Op Fl v +.Ar +.Sh DESCRIPTION +The +.Nm +utility marks an ELF binary to be run under a certain ABI. +.Pp +The options are as follows: +.Bl -tag -width indent +.It Fl f Ar ELF_ABI_number +Forces branding with the supplied ELF ABI number. +Incompatible with the +.Fl t +option. +These values are assigned by SCO/USL. +.It Fl h | Fl -help +Print a usage message and exit. +.It Fl l +Writes the list of all known ELF types to standard output. +.It Fl t Ar brand +Brands the given ELF binaries to be of the ABI specified by argument +.Ar brand . +Supported ABIs include +.Dq Li 86Open , +.Dq Li AIX , +.Dq Li ARM , +.Dq Li AROS , +.Dq Li FreeBSD , +.Dq Li GNU , +.Dq Li HP/UX , +.Dq Li Hurd , +.Dq Li IRIX , +.Dq Li Linux +(an alias for +.Dq Li GNU ) , +.Dq Li Modesto , +.Dq Li NSK , +.Dq Li NetBSD , +.Dq Li None , +.Dq Li OpenBSD , +.Dq Li OpenVMS , +.Dq Li Standalone , +.Dq Li SVR4 +(an alias for +.Dq Li None ) , +.Dq Li Solaris +and +.Dq Li Tru64 . +.It Fl v +This option is accepted for compatibility with other versions of +.Nm , +but is otherwise ignored. +.It Fl V | Fl -version +Print a version identifier and exit. +.El +.Pp +If the options +.Fl f Ar ELF_ABI_number +or +.Fl t Ar brand +were specified, +.Nm +will brand the files named by command-line arguments +.Ar +to be of type +.Ar ELF_ABI_number +or +.Ar brand +respectively. +.Pp +If neither of the +.Fl f +or +.Fl t +options were specified, +.Nm +will display the current branding for the files named by the arguments +.Ar . +.Sh EXIT STATUS +Exit status is 0 on success, and 1 if the command +fails if a file does not exist, is too short, fails to brand properly, +or the brand requested is not one of the known types and the +.Fl f +option is not set. +.Sh EXAMPLES +The following is an example of a typical usage +of the +.Nm +command: +.Bd -literal -offset indent +brandelf file +brandelf -t GNU file +.Ed +.Sh SEE ALSO +.Rs +.%A The Santa Cruz Operation, Inc. +.%T System V Application Binary Interface +.%D April 29, 1998 (DRAFT) +.%O http://www.sco.com/developer/devspecs/ +.Re +.Sh HISTORY +The +.Nm +manual page first appeared in +.Fx 2.2 . +.Sh AUTHORS +This manual page was written by +.An John-Mark Gurney Aq Mt jmg@FreeBSD.org . diff --git a/static/freebsd/man1/bsdcat.1 b/static/freebsd/man1/bsdcat.1 new file mode 100644 index 00000000..b34a0c1c --- /dev/null +++ b/static/freebsd/man1/bsdcat.1 @@ -0,0 +1,41 @@ +.\" +.\" SPDX-License-Identifier: BSD-2-Clause +.\" +.\" Copyright (c) 2011-2014, Mike Kazantsev +.\" All rights reserved. +.\" +.Dd March 1, 2014 +.Dt BSDCAT 1 +.Os +.Sh NAME +.Nm bsdcat +.Nd expand files to standard output +.Sh SYNOPSIS +.Nm +.Op options +.Op files +.Sh DESCRIPTION +.Nm +expands files to standard output. +.Sh OPTIONS +.Nm +typically takes a filename as an argument or reads standard input when used in a +pipe. +In both cases decompressed data is written to standard output. +.Sh EXAMPLES +To decompress a file: +.Pp +.Dl bsdcat example.txt.gz > example.txt +.Pp +To decompress standard input in a pipe: +.Pp +.Dl cat example.txt.gz | bsdcat > example.txt +.Pp +Both examples achieve the same results - a decompressed file by redirecting +output. +.Sh SEE ALSO +.Xr bzcat 1 , +.Xr uncompress 1 , +.Xr xzcat 1 , +.Xr zcat 1 , +.Xr libarchive-formats 5 diff --git a/static/freebsd/man1/bsdcpio.1 b/static/freebsd/man1/bsdcpio.1 new file mode 100644 index 00000000..9dc7d660 --- /dev/null +++ b/static/freebsd/man1/bsdcpio.1 @@ -0,0 +1,422 @@ +.\" +.\" SPDX-License-Identifier: BSD-2-Clause +.\" +.\" Copyright (c) 2003-2007 Tim Kientzle +.\" All rights reserved. +.\" +.Dd September 16, 2014 +.Dt CPIO 1 +.Os +.Sh NAME +.Nm cpio +.Nd copy files to and from archives +.Sh SYNOPSIS +.Nm +.Fl i +.Op Ar options +.Op Ar pattern ... +.Op Ar < archive +.Nm +.Fl o +.Op Ar options +.Ar < name-list +.Op Ar > archive +.Nm +.Fl p +.Op Ar options +.Ar dest-dir +.Ar < name-list +.Sh DESCRIPTION +.Nm +copies files between archives and directories. +This implementation can extract from tar, pax, cpio, zip, jar, ar, +and ISO 9660 cdrom images and can create tar, pax, cpio, ar, +and shar archives. +.Pp +The first option to +.Nm +is a mode indicator from the following list: +.Bl -tag -compact -width indent +.It Fl i +Input. +Read an archive from standard input (unless overridden) and extract the +contents to disk or (if the +.Fl t +option is specified) +list the contents to standard output. +If one or more file patterns are specified, only files matching +one of the patterns will be extracted. +.It Fl o +Output. +Read a list of filenames from standard input and produce a new archive +on standard output (unless overridden) containing the specified items. +.It Fl p +Pass-through. +Read a list of filenames from standard input and copy the files to the +specified directory. +.El +.Sh OPTIONS +Unless specifically stated otherwise, options are applicable in +all operating modes. +.Bl -tag -width indent +.It Fl 0 , Fl Fl null +Read filenames separated by NUL characters instead of newlines. +This is necessary if any of the filenames being read might contain newlines. +.It Fl 6 , Fl Fl pwb +When reading a binary format archive, assume it's the earlier one, +from the PWB variant of 6th Edition UNIX. +When writing a cpio archive, use the PWB format. +.It Fl 7 , Fl Fl binary +(o mode only) +When writing a cpio archive, use the (newer, non-PWB) binary format. +.It Fl A +(o mode only) +Append to the specified archive. +(Not yet implemented.) +.It Fl a +(o and p modes) +Reset access times on files after they are read. +.It Fl B +(o mode only) +Block output to records of 5120 bytes. +.It Fl C Ar size +(o mode only) +Block output to records of +.Ar size +bytes. +.It Fl c +(o mode only) +Use the old POSIX portable character format. +Equivalent to +.Fl Fl format Ar odc . +.It Fl d , Fl Fl make-directories +(i and p modes) +Create directories as necessary. +.It Fl E Ar file +(i mode only) +Read list of file name patterns from +.Ar file +to list and extract. +.It Fl F Ar file , Fl Fl file Ar file +Read archive from or write archive to +.Ar file . +.It Fl f Ar pattern +(i mode only) +Ignore files that match +.Ar pattern . +.It Fl H Ar format , Fl Fl format Ar format +(o mode only) +Produce the output archive in the specified format. +Supported formats include: +.Pp +.Bl -tag -width "iso9660" -compact +.It Ar cpio +Synonym for +.Ar odc . +.It Ar newc +The SVR4 portable cpio format. +.It Ar odc +The old POSIX.1 portable octet-oriented cpio format. +.It Ar pax +The POSIX.1 pax format, an extension of the ustar format. +.It Ar ustar +The POSIX.1 tar format. +.El +.Pp +The default format is +.Ar odc . +See +.Xr libarchive-formats 5 +for more complete information about the +formats currently supported by the underlying +.Xr libarchive 3 +library. +.It Fl h , Fl Fl help +Print usage information. +.It Fl I Ar file +Read archive from +.Ar file . +.It Fl i , Fl Fl extract +Input mode. +See above for description. +.It Fl Fl insecure +(i and p mode only) +Disable security checks during extraction or copying. +This allows extraction via symbolic links, absolute paths, +and path names containing +.Sq .. +in the name. +.It Fl J , Fl Fl xz +(o mode only) +Compress the file with xz-compatible compression before writing it. +In input mode, this option is ignored; xz compression is recognized +automatically on input. +.It Fl j +Synonym for +.Fl y . +.It Fl L +(o and p modes) +All symbolic links will be followed. +Normally, symbolic links are archived and copied as symbolic links. +With this option, the target of the link will be archived or copied instead. +.It Fl l , Fl Fl link +(p mode only) +Create links from the target directory to the original files, +instead of copying. +.It Fl Fl lrzip +(o mode only) +Compress the resulting archive with +.Xr lrzip 1 . +In input mode, this option is ignored. +.It Fl Fl lz4 +(o mode only) +Compress the archive with lz4-compatible compression before writing it. +In input mode, this option is ignored; lz4 compression is recognized +automatically on input. +.It Fl Fl zstd +(o mode only) +Compress the archive with zstd-compatible compression before writing it. +In input mode, this option is ignored; zstd compression is recognized +automatically on input. +.It Fl Fl lzma +(o mode only) +Compress the file with lzma-compatible compression before writing it. +In input mode, this option is ignored; lzma compression is recognized +automatically on input. +.It Fl Fl lzop +(o mode only) +Compress the resulting archive with +.Xr lzop 1 . +In input mode, this option is ignored. +.It Fl Fl passphrase Ar passphrase +The +.Pa passphrase +is used to extract or create an encrypted archive. +Currently, zip is only a format that +.Nm +can handle encrypted archives. +You shouldn't use this option unless you realize how insecure +use of this option is. +.It Fl m , Fl Fl preserve-modification-time +(i and p modes) +Set file modification time on created files to match +those in the source. +.It Fl n , Fl Fl numeric-uid-gid +(i mode, only with +.Fl t ) +Display numeric uid and gid. +By default, +.Nm +displays the user and group names when they are provided in the +archive, or looks up the user and group names in the system +password database. +.It Fl Fl no-preserve-owner +(i mode only) +Do not attempt to restore file ownership. +This is the default when run by non-root users. +.It Fl O Ar file +Write archive to +.Ar file . +.It Fl o , Fl Fl create +Output mode. +See above for description. +.It Fl p , Fl Fl pass-through +Pass-through mode. +See above for description. +.It Fl Fl preserve-owner +(i mode only) +Restore file ownership. +This is the default when run by the root user. +.It Fl Fl quiet +Suppress unnecessary messages. +.It Fl R Oo user Oc Ns Oo : Oc Ns Oo group Oc , Fl Fl owner Oo user Oc Ns Oo : Oc Ns Oo group Oc +Set the owner and/or group on files in the output. +If group is specified with no user +(for example, +.Fl R Ar :wheel ) +then the group will be set but not the user. +If the user is specified with a trailing colon and no group +(for example, +.Fl R Ar root: ) +then the group will be set to the user's default group. +If the user is specified with no trailing colon, then +the user will be set but not the group. +In +.Fl i +and +.Fl p +modes, this option can only be used by the super-user. +(For compatibility, a period can be used in place of the colon.) +.It Fl r +(All modes.) +Rename files interactively. +For each file, a prompt is written to +.Pa /dev/tty +containing the name of the file and a line is read from +.Pa /dev/tty . +If the line read is blank, the file is skipped. +If the line contains a single period, the file is processed normally. +Otherwise, the line is taken to be the new name of the file. +.It Fl t , Fl Fl list +(i mode only) +List the contents of the archive to stdout; +do not restore the contents to disk. +.It Fl u , Fl Fl unconditional +(i and p modes) +Unconditionally overwrite existing files. +Ordinarily, an older file will not overwrite a newer file on disk. +.It Fl V , Fl Fl dot +Print a dot to stderr for each file as it is processed. +Superseded by +.Fl v . +.It Fl v , Fl Fl verbose +Print the name of each file to stderr as it is processed. +With +.Fl t , +provide a detailed listing of each file. +.It Fl Fl version +Print the program version information and exit. +.It Fl y +(o mode only) +Compress the archive with bzip2-compatible compression before writing it. +In input mode, this option is ignored; +bzip2 compression is recognized automatically on input. +.It Fl Z +(o mode only) +Compress the archive with compress-compatible compression before writing it. +In input mode, this option is ignored; +compression is recognized automatically on input. +.It Fl z +(o mode only) +Compress the archive with gzip-compatible compression before writing it. +In input mode, this option is ignored; +gzip compression is recognized automatically on input. +.El +.Sh EXIT STATUS +.Ex -std +.Sh ENVIRONMENT +The following environment variables affect the execution of +.Nm : +.Bl -tag -width ".Ev BLOCKSIZE" +.It Ev LANG +The locale to use. +See +.Xr environ 7 +for more information. +.It Ev TZ +The timezone to use when displaying dates. +See +.Xr environ 7 +for more information. +.El +.Sh EXAMPLES +The +.Nm +command is traditionally used to copy file hierarchies in conjunction +with the +.Xr find 1 +command. +The first example here simply copies all files from +.Pa src +to +.Pa dest : +.Dl Nm find Pa src | Nm Fl pmud Pa dest +.Pp +By carefully selecting options to the +.Xr find 1 +command and combining it with other standard utilities, +it is possible to exercise very fine control over which files are copied. +This next example copies files from +.Pa src +to +.Pa dest +that are more than 2 days old and whose names match a particular pattern: +.Dl Nm find Pa src Fl mtime Ar +2 | Nm grep foo[bar] | Nm Fl pdmu Pa dest +.Pp +This example copies files from +.Pa src +to +.Pa dest +that are more than 2 days old and which contain the word +.Do foobar Dc : +.Dl Nm find Pa src Fl mtime Ar +2 | Nm xargs Nm grep -l foobar | Nm Fl pdmu Pa dest +.Sh COMPATIBILITY +The mode options i, o, and p and the options +a, B, c, d, f, l, m, r, t, u, and v comply with SUSv2. +.Pp +The old POSIX.1 standard specified that only +.Fl i , +.Fl o , +and +.Fl p +were interpreted as command-line options. +Each took a single argument of a list of modifier +characters. +For example, the standard syntax allows +.Fl imu +but does not support +.Fl miu +or +.Fl i Fl m Fl u , +since +.Ar m +and +.Ar u +are only modifiers to +.Fl i , +they are not command-line options in their own right. +The syntax supported by this implementation is backwards-compatible +with the standard. +For best compatibility, scripts should limit themselves to the +standard syntax. +.Sh SEE ALSO +.Xr bzip2 1 , +.Xr gzip 1 , +.Xr mt 1 , +.Xr pax 1 , +.Xr tar 1 , +.Xr libarchive 3 , +.Xr cpio 5 , +.Xr libarchive-formats 5 , +.Xr tar 5 +.Sh STANDARDS +There is no current POSIX standard for the cpio command; it appeared +in +.St -p1003.1-96 +but was dropped from +.St -p1003.1-2001 . +.Pp +The cpio, ustar, and pax interchange file formats are defined by +.St -p1003.1-2001 +for the pax command. +.Sh HISTORY +The original +.Nm cpio +and +.Nm find +utilities were written by Dick Haight +while working in AT&T's Unix Support Group. +They first appeared in 1977 in PWB/UNIX 1.0, the +.Dq Programmer's Work Bench +system developed for use within AT&T. +They were first released outside of AT&T as part of System III Unix in 1981. +As a result, +.Nm cpio +actually predates +.Nm tar , +even though it was not well-known outside of AT&T until some time later. +.Pp +This is a complete re-implementation based on the +.Xr libarchive 3 +library. +.Sh BUGS +The cpio archive format has several basic limitations: +It does not store user and group names, only numbers. +As a result, it cannot be reliably used to transfer +files between systems with dissimilar user and group numbering. +Older cpio formats limit the user and group numbers to +16 or 18 bits, which is insufficient for modern systems. +The cpio archive formats cannot support files over 4 gigabytes, +except for the +.Dq odc +variant, which can support files up to 8 gigabytes. diff --git a/static/freebsd/man1/bsddialog.1 b/static/freebsd/man1/bsddialog.1 new file mode 100644 index 00000000..d03a4ce8 --- /dev/null +++ b/static/freebsd/man1/bsddialog.1 @@ -0,0 +1,956 @@ +.\" +.\" Copyright (c) 2021-2025 Alfonso Sabato Siciliano +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.Dd June 24, 2025 +.Dt BSDDIALOG 1 +.Os +.Sh NAME +.Nm bsddialog +.Nd TUI dialogs +.Sh SYNOPSIS +.Nm +.Fl Fl help | Fl Fl version +.Nm +.Op Fl Fl option +.Fl Fl dialog +.Ar text +.Ar rows +.Ar cols +.Op Ar dialog-argument +.Op Fl Fl option +.Nm +\&... +.Fl Fl dialog1 +.Ar ... +.Oo Fl Fl and-dialog +.Fl Fl dialog2 +.Ar ... +.Oc ... +.Sh DESCRIPTION +The +.Nm bsddialog +utility builds Text User Interface dialogs and widgets. +.Pp +The option +.Fl Fl help +prints a brief list of features and exits. +The option +.Fl Fl version +prints the version and exits. +The option +.Fl Fl and-dialog +builds another dialog unless the previous one returns Error, ESC or Cancel. +.Pp +Each dialog accepts +.Ar text +to print a message inside, +.Ar rows +and +.Ar cols +to set height and width, +.Dv 0 +for autosize and +.Dv -1 +for fullscreen. +.Pp +The possible input from the user interface is printed to standard error at exit. +.Ss Options +The following options can change the default behavior of the utility and are +common to some dialog. +.Bl -tag -width Ds +.It Fl Fl alternate-screen +Set alternate screen mode if the terminal and +.Xr curses 3 +provide it. +If enabled bsddialog draws to the alternate screen and restores the main screen +after exit. +See +.Dq smcup +in +.Xr terminfo 5 . +.It Fl Fl ascii-lines +Ascii characters to draw lines. +.It Fl Fl backtitle Ar backtitle +Screen title. +.It Fl Fl begin-x Ar x +Set dialog horizontal position, +.Dv -1 +center, +.Dv 0 +left screen. +.It Fl Fl begin-y Ar y +Set dialog vertical position, +.Dv -1 +center, +.Dv 0 +top screen. +.It Fl Fl bikeshed +Random settings. +Colors, title delimiter, button delimiter; see theme features. +Title margin. +Buttons always active or TAB to switch focus with other components, see +.Fl Fl switch-buttons . +Zero padding with time output; see +.Fl Fl time-format . +Zero padding with date output; see +.Fl Fl date-format . +User Interface date format for +.Fl Fl datebox ; +see +.Fl Fl datebox-format . +.It Fl Fl cancel-exit-code Ar retval +Set an exit code value for the +.Dq Cancel +button. +.It Fl Fl cancel-label Ar label +Label for the +.Dq Cancel +button. +.It Fl Fl clear-dialog +Hide the dialog at exit. +.It Fl Fl clear-screen +Clear the screen, wait a dialog if built. +.It Fl Fl columns-per-row Ar columns +Try to set the number of columns for a row of text with autosizing; default +.Dv 10 . +.It Fl Fl cr-wrap +Keep new line in +.Ar text +also if it constains a +.Dq \en , +see +.Fl Fl text-unchanged . +.It Fl Fl datebox-format Ar format +String to customize +.Fl Fl datebox +interface, possible values: +.Dq d/m/y , +.Dq m/y/d , +.Dq y/m/d . +.It Fl Fl date-format Ar format +String accepted by +.Xr strftime 3 +to customize the output of +.Fl Fl datebox +and +.Fl Fl calendar . +.It Fl Fl default-button Ar label +Focus on the button with +.Ar label +on startup. +.It Fl Fl default-item Ar name +Focus on the item with +.Ar name , +for Checklist, Menu, Radiolist and Treeview. +.It Fl Fl default-no +Focus on +.Dq Cancel +or +.Dq \&No +button on startup. +.It Fl Fl disable-esc +Disable ESC key to quit. +.It Fl Fl error-exit-code Ar retval +Set an exit code value for the +.Nm +errors. +.It Fl Fl esc-exit-code Ar retval +Set an exit code value for the +.Dv ESC +key. +.It Fl Fl extra-button +Add a button with +.Dq Extra +label. +.It Fl Fl extra-exit-code Ar retval +Set an exit code value for the +.Dq Extra +button. +.It Fl Fl extra-label Ar label +Set +.Ar label +for the +.Dq Extra +button. +.It Fl Fl left1-button Ar label +Add a button with +.Ar label . +.It Fl Fl left1-exit-code Ar retval +Set an exit code for +.Fl Fl left1-button . +.It Fl Fl left2-button Ar label +Add a button with +.Ar label . +.It Fl Fl left2-exit-code Ar retval +Set an exit code for +.Fl Fl left2-button . +.It Fl Fl left3-button Ar label +Add a button with +.Ar label . +.It Fl Fl left3-exit-code Ar retval +Set an exit code for +.Fl Fl left3-button . +.It Fl Fl help-button +Add a button with +.Dq Help +label. +.It Fl Fl help-exit-code Ar retval +Set an exit code value for the +.Dq Help +button. +.It Fl Fl help-label Ar label +Set +.Ar label +for +.Dq Help +button. +.It Fl Fl help-print-items +Print also the selected items or form values if the +.Dq Help +button is pressed. +.It Fl Fl help-print-name +Print the name of the focused item if the +.Dq Help +button is pressed also +with +.Fl Fl item-bottom-desc . +.It Fl Fl hfile Ar filename +Open +.Ar filename +in a Textbox if F1 key is pressed. +.It Fl Fl hline Ar string +Dialog subtitle. +.It Fl Fl hmsg Ar string +Open a Msgbox with +.Ar string +if the F1 key is pressed. +.It Fl Fl ignore +Do not exit with unknown options. +.It Fl Fl insecure +Print +.Sq * +to hide passwords while typing, white space otherwise. +.It Fl Fl item-bottom-desc +Set a help string for each item of a Checklist, Form, Menu, Mixedform, +Passwordform, Radiolist and Treeview to display at the bottom screen side. +.It Fl Fl item-depth +Specify a margin for items, available for Checklist, Menu and Radiolist. +.It Fl Fl item-prefix +Set a string to prefix each item of a Checklist, Menu, Radiolist or Treeview. +.It Fl Fl load-theme Ar file +Load theme from +.Ar file . +.It Fl Fl max-input Ar size +Maximum length of the input for +.Fl Fl inputbox +and +.Fl Fl passwordbox , +default 2048. +.It Fl Fl no-cancel +Do not show +.Dq Cancel +button. +.It Fl Fl no-descriptions +Do not display items desciption, for Checklist, Menu, Radiolist or Treeview; +mutually exclusive with +.Fl Fl no-names . +.It Fl Fl no-lines +Do not draw borders and lines. +.It Fl Fl no-names +Do not display items name, for Checklist, Menu and Radiolist; mutually exclusive +with +.Fl Fl no-descriptions . +.It Fl Fl no-ok +Do not draw +.Dq OK +button. +.It Fl Fl no-shadow +No not draw the shadow of the dialog. +.It Fl Fl ok-label Ar label +Set +.Ar label +for +.Dq OK +button. +.It Fl Fl ok-exit-code Ar retval +Set an exit code value for the +.Dq Ok +button. +.It Fl Fl normal-screen +Set normal screen mode. +bsddialog does not restore the previous screen after exit. +See +.Dq rmcup +in +.Xr terminfo 5 . +.It Fl Fl output-fd Ar fd +Print input from user interface to the specified file descriptor. +.It Fl Fl output-separator Ar sep +Set a sepator for the items in output, default white space. +.It Fl Fl print-maxsize +Screen size. +This option can be used without a dialog. +.It Fl Fl print-size +Print dialog height and width at exit. +.It Fl Fl print-version +Print version. +This option can be used without a dialog. +.It Fl Fl quoted +Quote items in output, default only when necessary. +.It Fl Fl right1-button Ar label +Add a button with +.Ar label . +.It Fl Fl right1-exit-code Ar retval +Set an exit code for +.Fl Fl right1-button . +.It Fl Fl right2-button Ar label +Add a button with +.Ar label . +.It Fl Fl right2-exit-code Ar retval +Set an exit code for +.Fl Fl right2-button . +.It Fl Fl right3-button Ar label +Add a button with +.Ar label . +.It Fl Fl right3-exit-code Ar retval +Set an exit code for +.Fl Fl right3-button . +.It Fl Fl save-theme Ar file +Save the current theme. +This option can be used without a dialog. +.It Fl Fl separate-output +Print selected items separated by a new line and avoid to quote. +.It Fl Fl shadow +Show a shadow for the dialog, enabled by default. +.It Fl Fl single-quoted +Use single quote for items in output. +.It Fl Fl sleep Ar secs +Wait +.Ar secs +seconds to close the dialog. +.It Fl Fl stderr +Print input from user interface to standand error, default. +.It Fl Fl stdout +Print input from user interface to standard output. +.It Fl Fl switch-buttons +Enable focus switching between buttons and input components pressing TAB, +otherwise buttons are always active and ENTER key closes the dialog. +Suitable for: +.Fl Fl form , +.Fl Fl inputbox , +.Fl Fl mixedform , +.Fl Fl passwordbox , +.Fl Fl passwordform , +.Fl Fl timebox , +.Fl Fl calendar +and +.Fl Fl datebox . +.It Fl Fl tab-escape +Replace +.Dq \et +with a tab in +.Ar text . +.It Fl Fl tab-len Ar spaces +Number of spaces to print a TAB in +.Ar text . +.It Fl Fl text-escape +Enable escapes in +.Ar text : +.Bl -column -compact +.It Dq \eZ0 +black. +.It Dq \eZ1 +red. +.It Dq \eZ2 +green. +.It Dq \eZ3 +yellow. +.It Dq \eZ4 +blue. +.It Dq \eZ5 +magenta. +.It Dq \eZ6 +cyan. +.It Dq \eZ7 +white. +.It Dq \eZb +bold. +.It Dq \eZB +disable bold. +.It Dq \eZd +Half bright. +.It Dq \eZD +disable half bright. +.It Dq \eZk +Blink. +.It Dq \eZK +disable blinking. +.It Dq \eZr +reverse foreground and background. +.It Dq \eZR +disable reverse. +.It Dq \eZs +Highlight. +.It Dq \eZS +disable highlighting. +.It Dq \eZu +underline. +.It Dq \eZU +disable underline. +.It Dq \eZn +disable each customization. +.El +.It Fl Fl text-unchanged +Disable +.Ar text +modification. +By default +.Ar text +is changed before to be printed in the dialog. +If it contains at least a +.Dq \en +each new line and TAB is converted to a space, subsequent spaces are merged. +Otherwise new line characters are preserved and a TAB becomes a space. +.It Fl Fl theme Ar theme +Set theme, possible values: +.Dq 3d , +.Dq blackwhite , +.Dq flat . +.It Fl Fl time-format Ar format +String accepted by +.Xr strftime 3 +to customize the output of +.Fl Fl timebox . +.It Fl Fl timeout-exit-code Ar retval +Set an exit code value for the +.Fl Fl pause +timeout. +.It Fl Fl title Ar title +Dialog title. +.El +.Ss Keys +The following keys are available at runtime: +.Bl -tag -width Ds +.It Ctrl-l +Redraw the dialog. +.It F1 +See +.Fl Fl hfile +and +.Fl Fl hmsg . +.It SPACE +Select menu item. +.It UP DOWN LEFT RIGHT - + HOME END PAGEUP PAGEDOWN Ctrl-p Ctrl-n TAB +Navigate elements and set value, depending on the dialog. +.El +.Ss Dialogs +The following dialogs are available: +.Bl -tag -width Ds +.It Fl Fl calendar Ar text Ar rows Ar cols Op Ar day Ar month Ar year +Dialog to select a date. +.It Fl Fl checklist Ar text Ar rows Ar cols Ar menurows Oo Ar name Ar desc \ +Ar status Oc ... +Checklist to select some item from a list via the SPACE key. +An item has a +.Ar name , +.Ar desc +and a default +.Ar status +specified by +.Dq on +or +.Dq off . +The names of the selected items are printed to standard error. +.Ar menurows +is the graphical height of the list, 0 for autosize. +.It Fl Fl datebox Ar text Ar rows Ar cols Op Ar day Ar month Ar year +Dialog to select a date. +.It Fl Fl form Ar text Ar rows Ar cols Ar formrows Oo Ar label Ar ylabel \ +Ar xlabel Ar init Ar yfield Ar xfield Ar fieldlen Ar maxletters Oc ... +Dialog to get a list of strings via forms. +A form has a +.Ar label +at the position +.Ar ylabel +and +.Ar xlabel , +a field to get the input at the position +.Ar yfield +and +.Ar xfield . +.Ar fieldlen +is the field width, if negative is readonly and the width is the absolute value, +if +.Dv 0 +the field becomes readonly and its value is the +.Ar init +width. +The field input is not printed to output if it is readonly. +.Ar maxletters +is the maximum input length, if is +.Dv 0 +its value is +.Ar fieldlen . +.Ar init +is the default value in the field. +.Ar formrows +is the graphical height of the list, +.Dv 0 +for autosize. +.It Fl Fl gauge Ar text Ar rows Ar cols Op Ar percentage +Dialog with a bar to shows +.Ar percentage , +then it waits to read +.Dq XXX +from the standard input, then the first string replaces percentage and the +following strings replace +.Ar text +until the next +.Dq XXX , +the loop ends reading +.Dq EOF . +.It Fl Fl infobox Ar text Ar rows Ar cols +Dialog without buttons to display a message and to exit immediately. +.It Fl Fl inputbox Ar text Ar rows Ar cols Op Ar init +Dialog to get a string in input, +.Ar init +is the default value. +.It Fl Fl menu Ar text Ar rows Ar cols Ar menurows Oo Ar name desc Oc ... +Builds a menu to select an item from a list, SPACE key is equivalent to ENTER. +An item has a +.Ar name +and a +.Ar desc . +The name of the selected item is printed to standard error. +.Ar menurows +is the graphical height of the list, 0 for autosize. +.It Fl Fl mixedform Ar text Ar rows Ar cols Ar formrows Oo Ar label Ar ylabel \ +Ar xlabel Ar init Ar yfield Ar xfield Ar fieldlen Ar maxletters Ar flag Oc ... +Dialog to get a list of strings via forms. +A form has a +.Ar label +at the position +.Ar ylabel +and +.Ar xlabel , +a field to get the input at the position +.Ar yfield +and +.Ar xfield . +.Ar fieldlen +is the field width, if negative is readonly and the width is the absolute value, +if +.Dv 0 +the field becomes readonly and its value is the +.Ar init +width. +The field input is not printed to output if +.Ar fieldlen +is less than or equal to +.Dv 0 . +.Ar maxletters +is the maximum input length, if is +.Dv 0 +its value is +.Ar fieldlen . +.Ar init +is the default value in the field. +.Ar flag +can customize +.Ar field : +.Dv 0 +normal, +.Dv 1 +hide typed characters, +.Dv 2 +readonly. +.Ar formrows +is the graphical height of the list, +.Dv 0 +for autosize. +.It Fl Fl mixedgauge Ar text Ar rows Ar cols Ar mainperc Oo Ar minilabel \ +Ar miniperc Oc ... +Dialog to show a main bar to represent +.Ar mainperc +from 0 to 100. +Some mini bar with a +.Ar minilabel +string and a +.Ar miniperc +with a value from 0 and 100 or negative to print a descriptive string: -1 +.Dq Succeeded , +-2 +.Dq Failed , +-3 +.Dq Passed , +-4 +.Dq Completed , +-5 +.Dq Checked , +-6 +.Dq Done , +-7 +.Dq Skipped , +-8 +.Dq \&In Progress , +-9 +to hide +.Fa miniperc , +-10 +.Dq N/A , +-11 +.Dq Pending , +otherwise +.Dq UNKNOWN . +.It Fl Fl msgbox Ar text Ar rows Ar cols +Dialog to diplay a message without the +.Dq Cancel +button. +.It Fl Fl passwordbox Ar text Ar rows Ar cols Op Ar init +Dialog to get a password, +.Ar init +is the default value. +.It Fl Fl passwordform Ar text Ar rows Ar cols Ar formrows Oo Ar label \ +Ar ylabel Ar xlabel Ar init Ar yfield Ar xfield Ar fieldlen Ar maxletters \ +Oc ... +Dialog to get a list of passwords, equivalent to +.Fl Fl form +except typed characters are hidden. +.It Fl Fl pause Ar text Ar rows Ar cols Ar seconds +Dialog runs until +.Ar seconds +timeout expires or a button is pressed. +.It Fl Fl radiolist Ar text Ar rows Ar cols Ar menurows Oo Ar name Ar desc \ +Ar status Oc ... +Radiolist to select at most an item from a list via the SPACE key. +An item has a +.Ar name , +.Ar desc +and a default +.Ar status +specified by +.Dq on +or +.Dq off . +The name of the selected item is printed to standard error. +.Ar menurows +is the graphical height of the list, 0 for autosize. +.It Fl Fl rangebox Ar text Ar rows Ar cols Ar min Ar max Op Ar init +Dialog to select a value between +.Ar min +and +.Ar max , +.Ar init +is the default value. +.It Fl Fl textbox Ar file Ar rows Ar cols +Opens and prints +.Ar file . +TAB changes button. +Extra keys 0, h, l, k, j are available to navigate the text. +.Dq OK +button is renamed +.Dq EXIT . +.It Fl Fl timebox Ar text Ar rows Ar cols Op Ar hour Ar min Ar sec +Dialog to select a time. +.It Fl Fl treeview Ar text Ar rows Ar cols Ar menurows Oo Ar depth Ar name \ +Ar desc Ar status Oc ... +Equivalent to Radiolist with +.Fl Fl item-depth +and +.Fl Fl no-name . +.It Fl Fl yesno Ar text Ar rows Ar cols +.Dq Yes-No Question , +.Dq OK +and +.Dq Cancel +buttons are renamed +.Dq Yes +and +.Dq \&No . +.El +.Sh ENVIRONMENT +The following environment variables take effect only on startup, other options +can override their setting. +.Bl -tag -width indent +.It Ev NO_COLOR +If present and not an empty string (regardless of its value) equivalent to +.Fl Fl theme Ar blackwhite . +.It Ev BSDDIALOG_ERROR , Ev BSDDIALOG_OK , Ev BSDDIALOG_CANCEL , \ +Ev BSDDIALOG_HELP , Ev BSDDIALOG_EXTRA , Ev BSDDIALOG_TIMEOUT , \ +Ev BSDDIALOG_ESC , Ev BSDDIALOG_LEFT1 , Ev BSDDIALOG_LEFT2 , \ +Ev BSDDIALOG_LEFT3 , Ev BSDDIALOG_RIGHT1 , Ev BSDDIALOG_RIGHT2 , \ +Ev BSDDIALOG_RIGHT3 +Set exit codes. +.It Ev BSDDIALOG_THEMEFILE Ar file +Equivalent to +.Fl Fl load-theme Ar file . +.El +.Sh FILES +The theme file +.Pa $HOME/.bsddialog.conf +is read on startup if exists. +.Sh EXIT STATUS +The +.Nm +utility exits 255 on unsuccessful, otherwise depending on the button or key +pressed the following values can be returned: +.Bl -column -compact +.It 0 +.Dq OK , +.Dq Yes +or +.Dq Exit +button. +.It 1 +.Dq Cancel +or +.Dq \&No +button. +.It 2 +.Dq Help +button. +.It 3 +.Dq Extra +button. +.It 4 +Timeout. +.It 5 +ESC key. +.It 6 +Left1 generic button. +.It 7 +Left2 generic button. +.It 8 +Left3 generic button. +.It 9 +Right1 generic button. +.It 10 +Right2 generic button. +.It 11 +Right3 generic button. +.El +.Sh EXAMPLES +Backtitle, title and message: +.Dl bsddialog --backtitle MESSAGE --title Msgbox --msgbox Message 0 0 +.Pp +Yes-No Question and theme: +.Dl bsddialog --theme blackwhite --yesno Question 10 30 +.Pp +Save a custom theme: +.Dl bsddialog --save-theme mytheme.txt --infobox \*qSaving theme...\*q 0 0 +.Pp +Load a custom theme: +.Dl bsddialog --load-theme mytheme.txt --infobox \*qCustom theme\*q 0 0 +.Pp +Checklist: +.Dl bsddialog --checklist Checklist 0 0 3 N1 \&D1 off N2 D2 on N3 D3 off +.Pp +Form: +.Dl bsddialog --form Form 0 0 0 L1: 0 0 X 0 4 20 25 L2: 1 0 Y 1 4 20 25 +.Pp +Multi-dialog: +.Dl bsddialog --normal-screen --begin-y 1 --yesno Continue? 0 0 \e \ +--and-dialog --begin-y 10 --infobox Yes 0 0 +.Pp +Bikeshed: +.Dl bsddialog --bikeshed --inputbox Example 0 0 +.Dl bsddialog --bikeshed --datebox Example 0 0 +.Pp +Mixedgauge: +.Dl bsddialog --sleep 3 --mixedgauge Example 10 30 60 L1 \*q -1\*q L2 30 +.Pp +Mixedgauge script: +.Bd -literal -offset indent -compact +perc=0 +while [ $perc -le 100 ] +do + bsddialog --sleep 1 --title Mixedgauge \e + --mixedgauge "\enExample...\en" 0 0 $perc \e + "Hidden" " -9" \e + "Label 1" " -4" \e + "Label 2" " -4" \e + "Label 3" $perc + + perc=`expr $perc + 20` +done +.Ed +.Pp +Gauge script: +.Bd -literal -offset indent -compact +i=1 +for c in A B C D E F G H +do + sleep 1 + echo XXX + echo "$(expr $(expr $i "*" 100) "/" 8)" + echo "[$i/8] Char: $c" + echo XXX + if [ $i -eq 8 ] + then + sleep 1 + echo EOF + fi + i=`expr $i + 1` +done | bsddialog --title Gauge --gauge "Starting..." 10 70 +.Ed +.Sh COMPATIBILITY +Outdated options are retained for compatibility, properly equivalent options are +used: +.Bd -literal -offset indent -compact +Obsolete Equivalent +--and-widget --and-dialog +--calendar 2 --calendar 0 +--clear --clear-screen +--colors --text-escape +--defaultno --default-no +--exit-label --ok-label +--help-status --help-print-items +--help-tags --help-print-name +--item-help --item-bottom-desc +--keep-tite --alternate-screen +--no-items --no-descriptions +--no-label --cancel-label +--no-tags --no-names +--nocancel --no-cancel +--nook --no-ok +--separator --output-separator +--yes-label --ok-label +.Ed +.Sh SEE ALSO +.Xr bsddialog 3 , +.Xr strftime 3 , +.Xr terminfo 5 +.Sh HISTORY +The +.Nm bsddialog +utility first appeared in +.Fx 14.0 . +.Sh AUTHORS +.Nm bsddialog +was written by +.An Alfonso Sabato Siciliano +.Aq Mt asiciliano@FreeBSD.org . +.An Braulio Rivas +.Aq Mt brauliorivas@FreeBSD.org +implemented the slider dialog for the +.Dq GSoC 2025 Full Disk Administration Tool for FreeBSD . +.Pp +.Nm bsddialog +provides also a subset of the functionality described in the +.Nm dialog +manual. +The following features were reimplemented: +.Pp +Options: +.Fl Fl and-widget , +.Fl Fl ascii-lines , +.Fl Fl backtitle , +.Fl Fl cancel-label , +.Fl Fl clear , +.Fl Fl colors , +.Fl Fl cr-wrap , +.Fl Fl date-format , +.Fl Fl defaultno , +.Fl Fl default-button , +.Fl Fl default-no , +.Fl Fl default-item , +.Fl Fl exit-label , +.Fl Fl extra-button , +.Fl Fl extra-label , +.Fl Fl help , +.Fl Fl help-button , +.Fl Fl help-label , +.Fl Fl help-status , +.Fl Fl help-tags , +.Fl Fl hfile , +.Fl Fl hline , +.Fl Fl ignore , +.Fl Fl insecure , +.Fl Fl item-help , +.Fl Fl keep-tite , +.Fl Fl max-input , +.Fl Fl no-cancel , +.Fl Fl nocancel , +.Fl Fl no-items , +.Fl Fl no-label , +.Fl Fl no-lines , +.Fl Fl no-ok , +.Fl Fl nook , +.Fl Fl no-shadow , +.Fl Fl no-tags , +.Fl Fl ok-label , +.Fl Fl output-fd , +.Fl Fl output-separator , +.Fl Fl print-maxsize , +.Fl Fl print-size , +.Fl Fl print-version , +.Fl Fl quoted , +.Fl Fl separate-output , +.Fl Fl separator , +.Fl Fl shadow , +.Fl Fl single-quoted , +.Fl Fl sleep , +.Fl Fl stderr , +.Fl Fl stdout , +.Fl Fl tab-len , +.Fl Fl time-format , +.Fl Fl title , +.Fl Fl version , +.Fl Fl yes-label . +.Pp +Keys: Ctrl-l, F1. +.Pp +Dialogs: +.Fl Fl calendar , +.Fl Fl checklist , +.Fl Fl form , +.Fl Fl gauge , +.Fl Fl infobox , +.Fl Fl inputbox , +.Fl Fl menu , +.Fl Fl mixedform , +.Fl Fl mixedgauge , +.Fl Fl msgbox , +.Fl Fl passwordbox , +.Fl Fl passwordform , +.Fl Fl pause , +.Fl Fl radiolist , +.Fl Fl rangebox , +.Fl Fl textbox , +.Fl Fl timebox , +.Fl Fl treeview , +.Fl Fl yesno . +.Pp +Some feature differs in input, output, or behavior. +Compatibility is not a priority for future development. +.Sh THANKS TO +.An Baptiste Daroussin +.Aq Mt bapt@FreeBSD.org , +.An \&Ed Maste +.Aq Mt emaste@FreeBSD.org , +.An Juraj Lutter +.Aq Mt otis@FreeBSD.org +and +.An Trenton Schulz +for suggestions, help, and testing. diff --git a/static/freebsd/man1/bsdiff.1 b/static/freebsd/man1/bsdiff.1 new file mode 100644 index 00000000..3e79d9cb --- /dev/null +++ b/static/freebsd/man1/bsdiff.1 @@ -0,0 +1,86 @@ +.\"- +.\" Copyright 2003-2005 Colin Percival +.\" All rights reserved +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted providing that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY +.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING +.\" IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +.\" POSSIBILITY OF SUCH DAMAGE. +.\" +.Dd May 18, 2003 +.Dt BSDIFF 1 +.Os +.Sh NAME +.Nm bsdiff +.Nd "generate a patch between two binary files" +.Sh SYNOPSIS +.Nm +.Ar oldfile newfile patchfile +.Sh DESCRIPTION +The +.Nm +utility +compares +.Ar oldfile +to +.Ar newfile +and writes to +.Ar patchfile +a binary patch suitable for use by +.Xr bspatch 1 . +When +.Ar oldfile +and +.Ar newfile +are two versions of an executable program, the +patches produced are on average a factor of five smaller +than those produced by any other binary patch tool known +to the author. +.Pp +The +.Nm +utility +uses memory equal to 17 times the size of +.Ar oldfile , +and requires +an absolute minimum working set size of 8 times the size of +.Ar oldfile . +.Sh SEE ALSO +.Xr bspatch 1 +.Sh AUTHORS +.An Colin Percival Aq Mt cperciva@FreeBSD.org +.Sh BUGS +The +.Nm +utility does not store the hashes of +.Ar oldfile +or +.Ar newfile +in +.Ar patchfile . +As a result, it is possible to apply a patch to the wrong file; this +will usually produce garbage. +It is recommended that users of +.Nm +store the hashes of +.Ar oldfile +and +.Ar newfile +and compare against them before and after applying +.Ar patchfile . diff --git a/static/freebsd/man1/bsdtar.1 b/static/freebsd/man1/bsdtar.1 new file mode 100644 index 00000000..0062789e --- /dev/null +++ b/static/freebsd/man1/bsdtar.1 @@ -0,0 +1,1453 @@ +.\" +.\" SPDX-License-Identifier: BSD-2-Clause +.\" +.\" Copyright (c) 2003-2007 Tim Kientzle +.\" Copyright (c) 2017 Martin Matuska +.\" All rights reserved. +.\" +.Dd April 23, 2024 +.Dt TAR 1 +.Os +.Sh NAME +.Nm tar +.Nd manipulate tape archives +.Sh SYNOPSIS +.Nm +.Op Ar bundled-flags Ao args Ac +.Op Ao Ar file Ac | Ao Ar pattern Ac ... +.Nm +.Brq Fl c +.Op Ar options +.Op Ar files | Ar directories +.Nm +.Brq Fl r | Fl u +.Fl f Ar archive-file +.Op Ar options +.Op Ar files | Ar directories +.Nm +.Brq Fl t | Fl x +.Op Ar options +.Op Ar patterns +.Sh DESCRIPTION +.Nm +creates and manipulates streaming archive files. +This implementation can extract from tar, pax, cpio, zip, jar, ar, xar, +rar, rpm, 7-zip, and ISO 9660 cdrom images and can create tar, pax, +cpio, ar, zip, 7-zip, and shar archives. +.Pp +The first synopsis form shows a +.Dq bundled +option word. +This usage is provided for compatibility with historical implementations. +See +.Sx COMPATIBILITY +below for details. +.Pp +The other synopsis forms show the preferred usage. +The first option to +.Nm +is a mode indicator from the following list: +.Pp +.Bl -tag -compact -width indent +.It Fl c +Create a new archive containing the specified items. +The long option form is +.Fl Fl create . +.It Fl r +Like +.Fl c , +but new entries are appended to the archive. +Note that this only works on uncompressed archives stored in regular files. +The +.Fl f +option is required. +The long option form is +.Fl Fl append . +.It Fl t +List archive contents to stdout. +The long option form is +.Fl Fl list . +.It Fl u +Like +.Fl r , +but new entries are added only if they have a modification date +newer than the corresponding entry in the archive. +Note that this only works on uncompressed archives stored in regular files. +The +.Fl f +option is required. +The long form is +.Fl Fl update . +.It Fl x +Extract to disk from the archive. +If a file with the same name appears more than once in the archive, +each copy will be extracted, with later copies overwriting (replacing) +earlier copies. +The long option form is +.Fl Fl extract . +.El +.Pp +In +.Fl c , +.Fl r , +or +.Fl u +mode, each specified file or directory is added to the +archive in the order specified on the command line. +By default, the contents of each directory are also archived. +.Pp +In extract or list mode, the entire command line +is read and parsed before the archive is opened. +The pathnames or patterns on the command line indicate +which items in the archive should be processed. +Patterns are shell-style globbing patterns as +documented in +.Xr tcsh 1 . +.Sh OPTIONS +Unless specifically stated otherwise, options are applicable in +all operating modes. +.Bl -tag -width indent +.It Cm @ Ns Pa archive +(c and r modes only) +The specified archive is opened and the entries +in it will be appended to the current archive. +As a simple example, +.Pp +.Dl Nm Fl c Fl f Pa - Pa newfile Cm @ Ns Pa original.tar +.Pp +writes a new archive to standard output containing a file +.Pa newfile +and all of the entries from +.Pa original.tar . +In contrast, +.Pp +.Dl Nm Fl c Fl f Pa - Pa newfile Pa original.tar +.Pp +creates a new archive with only two entries. +Similarly, +.Pp +.Dl Nm Fl czf Pa - Fl Fl format Cm pax Cm @ Ns Pa - +.Pp +reads an archive from standard input (whose format will be determined +automatically) and converts it into a gzip-compressed +pax-format archive on stdout. +In this way, +.Nm +can be used to convert archives from one format to another. +.It Fl a , Fl Fl auto-compress +(c mode only) +Use the archive suffix to decide a set of the format and +the compressions. +As a simple example, +.Pp +.Dl Nm Fl a Fl cf Pa archive.tgz source.c source.h +.Pp +creates a new archive with restricted pax format and gzip compression, +.Pp +.Dl Nm Fl a Fl cf Pa archive.tar.bz2.uu source.c source.h +.Pp +creates a new archive with restricted pax format and bzip2 compression +and uuencode compression, +.Pp +.Dl Nm Fl a Fl cf Pa archive.zip source.c source.h +.Pp +creates a new archive with zip format, +.Pp +.Dl Nm Fl a Fl jcf Pa archive.tgz source.c source.h +.Pp +ignores the +.Dq -j +option, and creates a new archive with restricted pax format +and gzip compression, +.Pp +.Dl Nm Fl a Fl jcf Pa archive.xxx source.c source.h +.Pp +if it is unknown suffix or no suffix, creates a new archive with +restricted pax format and bzip2 compression. +.It Fl Fl acls +(c, r, u, x modes only) +Archive or extract POSIX.1e or NFSv4 ACLs. +This is the reverse of +.Fl Fl no-acls +and the default behavior in c, r, and u modes (except on Mac OS X) or if +.Nm +is run in x mode as root. +On Mac OS X this option translates extended ACLs to NFSv4 ACLs. +To store extended ACLs the +.Fl Fl mac-metadata +option is preferred. +.It Fl B , Fl Fl read-full-blocks +Ignored for compatibility with other +.Xr tar 1 +implementations. +.It Fl b Ar blocksize , Fl Fl block-size Ar blocksize +Specify the block size, in 512-byte records, for tape drive I/O. +As a rule, this argument is only needed when reading from or writing +to tape drives, and usually not even then as the default block size of +20 records (10240 bytes) is very common. +.It Fl C Ar directory , Fl Fl cd Ar directory , Fl Fl directory Ar directory +In c and r mode, this changes the directory before adding +the following files. +In x mode, change directories after opening the archive +but before extracting entries from the archive. +.It Fl Fl chroot +(x mode only) +.Fn chroot +to the current directory after processing any +.Fl C +options and before extracting any files. +.It Fl Fl clamp-mtime +(use with +.Fl Fl mtime ) +Only set the modification time if the file is newer than the date specified in +.Fl Fl mtime . +.It Fl Fl clear-nochange-fflags +(x mode only) +Before removing file system objects to replace them, clear platform-specific +file attributes or file flags that might prevent removal. +.It Fl Fl exclude Ar pattern +Do not process files or directories that match the +specified pattern. +Note that exclusions take precedence over patterns or filenames +specified on the command line. +.It Fl Fl exclude-vcs +Do not process files or directories internally used by the +version control systems +.Sq Arch , +.Sq Bazaar , +.Sq CVS , +.Sq Darcs , +.Sq Mercurial , +.Sq RCS , +.Sq SCCS , +.Sq SVN +and +.Sq git . +.It Fl Fl fflags +(c, r, u, x modes only) +Archive or extract platform-specific file attributes or file flags. +This is the reverse of +.Fl Fl no-fflags +and the default behavior in c, r, and u modes or if +.Nm +is run in x mode as root. +.It Fl Fl format Ar format +(c, r, u mode only) +Use the specified format for the created archive. +Supported formats include +.Dq cpio , +.Dq pax , +.Dq shar , +and +.Dq ustar . +Other formats may also be supported; see +.Xr libarchive-formats 5 +for more information about currently-supported formats. +In r and u modes, when extending an existing archive, the format specified +here must be compatible with the format of the existing archive on disk. +.It Fl f Ar file , Fl Fl file Ar file +Read the archive from or write the archive to the specified file. +The filename can be +.Pa - +for standard input or standard output. +The default varies by system; +on +.Fx , +the default is +.Pa /dev/sa0 ; +on Linux, the default is +.Pa /dev/st0 . +.It Fl Fl gid Ar id +Use the provided group id number. +On extract, this overrides the group id in the archive; +the group name in the archive will be ignored. +On create, this overrides the group id read from disk; +if +.Fl Fl gname +is not also specified, the group name will be set to +match the group id. +.It Fl Fl gname Ar name +Use the provided group name. +On extract, this overrides the group name in the archive; +if the provided group name does not exist on the system, +the group id +(from the archive or from the +.Fl Fl gid +option) +will be used instead. +On create, this sets the group name that will be stored +in the archive; +the name will not be verified against the system group database. +.It Fl Fl group Ar name Ns Op : Ns Ar gid +Use the provided group, if +.Ar gid +is not provided, +.Ar name +can be either a group name or numeric id. +See the +.Fl Fl gname +option for details. +.It Fl H +(c and r modes only) +Symbolic links named on the command line will be followed; the +target of the link will be archived, not the link itself. +.It Fl h +(c and r modes only) +Synonym for +.Fl L . +.It Fl I +Synonym for +.Fl T . +.It Fl Fl help +Show usage. +.It Fl Fl hfsCompression +(x mode only) +Mac OS X specific (v10.6 or later). Compress extracted regular files with HFS+ +compression. +.It Fl Fl ignore-zeros +An alias of +.Fl Fl options Cm read_concatenated_archives +for compatibility with GNU tar. +.It Fl Fl include Ar pattern +Process only files or directories that match the specified pattern. +Note that exclusions specified with +.Fl Fl exclude +take precedence over inclusions. +If no inclusions are explicitly specified, all entries are processed by +default. +The +.Fl Fl include +option is especially useful when filtering archives. +For example, the command +.Pp +.Dl Nm Fl c Fl f Pa new.tar Fl Fl include='*foo*' Cm @ Ns Pa old.tgz +.Pp +creates a new archive +.Pa new.tar +containing only the entries from +.Pa old.tgz +containing the string +.Sq foo . +.It Fl J , Fl Fl xz +(c mode only) +Compress the resulting archive with +.Xr xz 1 . +In extract or list modes, this option is ignored. +Note that this +.Nm tar +implementation recognizes XZ compression automatically when reading archives. +.It Fl j , Fl Fl bzip , Fl Fl bzip2 , Fl Fl bunzip2 +(c mode only) +Compress the resulting archive with +.Xr bzip2 1 . +In extract or list modes, this option is ignored. +Note that this +.Nm tar +implementation recognizes bzip2 compression automatically when reading +archives. +.It Fl k , Fl Fl keep-old-files +(x mode only) +Do not overwrite existing files. +In particular, if a file appears more than once in an archive, +later copies will not overwrite earlier copies. +.It Fl Fl keep-newer-files +(x mode only) +Do not overwrite existing files that are newer than the +versions appearing in the archive being extracted. +.It Fl L , Fl Fl dereference +(c and r modes only) +All symbolic links will be followed. +Normally, symbolic links are archived as such. +With this option, the target of the link will be archived instead. +.It Fl l , Fl Fl check-links +(c and r modes only) +Issue a warning message unless all links to each file are archived. +.It Fl Fl lrzip +(c mode only) +Compress the resulting archive with +.Xr lrzip 1 . +In extract or list modes, this option is ignored. +Note that this +.Nm tar +implementation recognizes lrzip compression automatically when reading +archives. +.It Fl Fl lz4 +(c mode only) +Compress the archive with lz4-compatible compression before writing it. +In extract or list modes, this option is ignored. +Note that this +.Nm tar +implementation recognizes lz4 compression automatically when reading archives. +.It Fl Fl zstd +(c mode only) +Compress the archive with zstd-compatible compression before writing it. +In extract or list modes, this option is ignored. +Note that this +.Nm tar +implementation recognizes zstd compression automatically when reading archives. +.It Fl Fl lzma +(c mode only) Compress the resulting archive with the original LZMA algorithm. +In extract or list modes, this option is ignored. +Use of this option is discouraged and new archives should be created with +.Fl Fl xz +instead. +Note that this +.Nm tar +implementation recognizes LZMA compression automatically when reading archives. +.It Fl Fl lzop +(c mode only) +Compress the resulting archive with +.Xr lzop 1 . +In extract or list modes, this option is ignored. +Note that this +.Nm tar +implementation recognizes LZO compression automatically when reading archives. +.It Fl m , Fl Fl modification-time +(x mode only) +Do not extract modification time. +By default, the modification time is set to the time stored in the archive. +.It Fl Fl mac-metadata +(c, r, u and x mode only) +Mac OS X specific. +Archive or extract extended ACLs and extended file +attributes using +.Xr copyfile 3 +in AppleDouble format. +This is the reverse of +.Fl Fl no-mac-metadata . +and the default behavior in c, r, and u modes or if +.Nm +is run in x mode as root. +Currently supported only for pax formats +.Po including "pax restricted", the default tar format for +.Nm bsdtar Pc +.It Fl Fl mtime Ar date +(c, r, u modes only) +Set the modification times of added files to the specified date. +.It Fl n , Fl Fl norecurse , Fl Fl no-recursion +Do not operate recursively on the content of directories. +.It Fl Fl newer Ar date +(c, r, u modes only) +Only include files and directories newer than the specified date. +This compares ctime entries. +.It Fl Fl newer-mtime Ar date +(c, r, u modes only) +Like +.Fl Fl newer , +except it compares mtime entries instead of ctime entries. +.It Fl Fl newer-than Pa file +(c, r, u modes only) +Only include files and directories newer than the specified file. +This compares ctime entries. +.It Fl Fl newer-mtime-than Pa file +(c, r, u modes only) +Like +.Fl Fl newer-than , +except it compares mtime entries instead of ctime entries. +.It Fl Fl nodump +(c and r modes only) +Honor the nodump file flag by skipping this file. +.It Fl Fl nopreserveHFSCompression +(x mode only) +Mac OS X specific (v10.6 or later). Do not compress extracted regular files +which were compressed with HFS+ compression before archived. +By default, compress the regular files again with HFS+ compression. +.It Fl Fl null +(use with +.Fl I +or +.Fl T ) +Filenames or patterns are separated by null characters, +not by newlines. +This is often used to read filenames output by the +.Fl print0 +option to +.Xr find 1 . +.It Fl Fl no-acls +(c, r, u, x modes only) +Do not archive or extract POSIX.1e or NFSv4 ACLs. +This is the reverse of +.Fl Fl acls +and the default behavior if +.Nm +is run as non-root in x mode (on Mac OS X as any user in c, r, u and x modes). +.It Fl Fl no-fflags +(c, r, u, x modes only) +Do not archive or extract file attributes or file flags. +This is the reverse of +.Fl Fl fflags +and the default behavior if +.Nm +is run as non-root in x mode. +.It Fl Fl no-mac-metadata +(c, r, u and x mode only) +Mac OS X specific. +Do not archive or extract ACLs and extended file attributes +using +.Xr copyfile 3 +in AppleDouble format. +This is the reverse of +.Fl Fl mac-metadata . +and the default behavior if +.Nm +is run as non-root in x mode. +.It Fl Fl no-read-sparse +(c, r, u modes only) +Do not read sparse file information from disk. +This is the reverse of +.Fl Fl read-sparse . +.It Fl Fl no-safe-writes +(x mode only) +Do not create temporary files and use +.Xr rename 2 +to replace the original ones. +This is the reverse of +.Fl Fl safe-writes . +.It Fl Fl no-same-owner +(x mode only) +Do not extract owner and group IDs. +This is the reverse of +.Fl Fl same-owner +and the default behavior if +.Nm +is run as non-root. +.It Fl Fl no-same-permissions +(x mode only) +Do not extract full permissions (SGID, SUID, sticky bit, +file attributes or file flags, extended file attributes and ACLs). +This is the reverse of +.Fl p +and the default behavior if +.Nm +is run as non-root. +.It Fl Fl no-xattrs +(c, r, u, x modes only) +Do not archive or extract extended file attributes. +This is the reverse of +.Fl Fl xattrs +and the default behavior if +.Nm +is run as non-root in x mode. +.It Fl Fl numeric-owner +This is equivalent to +.Fl Fl uname +.Qq +.Fl Fl gname +.Qq . +On extract, it causes user and group names in the archive +to be ignored in favor of the numeric user and group ids. +On create, it causes user and group names to not be stored +in the archive. +.It Fl O , Fl Fl to-stdout +(x, t modes only) +In extract (-x) mode, files will be written to standard out rather than +being extracted to disk. +In list (-t) mode, the file listing will be written to stderr rather than +the usual stdout. +.It Fl o +(x mode) +Use the user and group of the user running the program rather +than those specified in the archive. +Note that this has no significance unless +.Fl p +is specified, and the program is being run by the root user. +In this case, the file modes and flags from +the archive will be restored, but ACLs or owner information in +the archive will be discarded. +.It Fl o +(c, r, u mode) +A synonym for +.Fl Fl format Ar ustar +.It Fl Fl older Ar date +(c, r, u modes only) +Only include files and directories older than the specified date. +This compares ctime entries. +.It Fl Fl older-mtime Ar date +(c, r, u modes only) +Like +.Fl Fl older , +except it compares mtime entries instead of ctime entries. +.It Fl Fl older-than Pa file +(c, r, u modes only) +Only include files and directories older than the specified file. +This compares ctime entries. +.It Fl Fl older-mtime-than Pa file +(c, r, u modes only) +Like +.Fl Fl older-than , +except it compares mtime entries instead of ctime entries. +.It Fl Fl one-file-system +(c, r, and u modes) +Do not cross mount points. +.It Fl Fl options Ar options +Select optional behaviors for particular modules. +The argument is a text string containing comma-separated +keywords and values. +These are passed to the modules that handle particular +formats to control how those formats will behave. +Each option has one of the following forms: +.Pp +.Bl -tag -compact -width indent +.It Ar key=value +The key will be set to the specified value in every module that supports it. +Modules that do not support this key will ignore it. +.It Ar key +The key will be enabled in every module that supports it. +This is equivalent to +.Ar key Ns Cm =1 . +.It Ar !key +The key will be disabled in every module that supports it. +.It Ar module:key=value , Ar module:key , Ar module:!key +As above, but the corresponding key and value will be provided +only to modules whose name matches +.Ar module . +.El +.Pp +The complete list of supported modules and keys +for create and append modes is in +.Xr archive_write_set_options 3 +and for extract and list modes in +.Xr archive_read_set_options 3 . +.Pp +Examples of supported options: +.Pp +.Bl -tag -compact -width indent +.It Cm iso9660:joliet +Support Joliet extensions. +This is enabled by default, use +.Cm !joliet +or +.Cm iso9660:!joliet +to disable. +.It Cm iso9660:rockridge +Support Rock Ridge extensions. +This is enabled by default, use +.Cm !rockridge +or +.Cm iso9660:!rockridge +to disable. +.It Cm gzip:compression-level +A decimal integer from 1 to 9 specifying the gzip compression level. +.It Cm gzip:timestamp +Store timestamp. +This is enabled by default, use +.Cm !timestamp +or +.Cm gzip:!timestamp +to disable. +.It Cm lrzip:compression Ns = Ns Ar type +Use +.Ar type +as compression method. +Supported values are bzip2, gzip, lzo (ultra fast), +and zpaq (best, extremely slow). +.It Cm lrzip:compression-level +A decimal integer from 1 to 9 specifying the lrzip compression level. +.It Cm lz4:compression-level +A decimal integer from 1 to 9 specifying the lzop compression level. +.It Cm lz4:stream-checksum +Enable stream checksum. +This is by default, use +.Cm lz4:!stream-checksum +to disable. +.It Cm lz4:block-checksum +Enable block checksum (Disabled by default). +.It Cm lz4:block-size +A decimal integer from 4 to 7 specifying the lz4 compression block size +(7 is set by default). +.It Cm lz4:block-dependence +Use the previous block of the block being compressed for +a compression dictionary to improve compression ratio. +.It Cm zstd:compression-level Ns = Ns Ar N +A decimal integer specifying the zstd compression level. +Supported values depend +on the library version, common values are from 1 to 22. +.It Cm zstd:threads Ns = Ns Ar N +Specify the number of worker threads to use, or 0 to use as many +threads as there are CPU cores in the system. +.It Cm zstd:frame-per-file +Start a new compression frame at the beginning of each file in the +archive. +.It Cm zstd:min-frame-in Ns = Ns Ar N +In combination with +.Cm zstd:frame-per-file , +do not start a new compression frame unless the uncompressed size of +the current frame is at least +.Ar N +bytes. +The number may be followed by +.Li k / Li kB , +.Li M / Li MB , +or +.Li G / Li GB +to indicate kilobytes, megabytes or gigabytes respectively. +.It Cm zstd:min-frame-out Ns = Ns Ar N , Cm zstd:min-frame-size Ns = Ns Ar N +In combination with +.Cm zstd:frame-per-file , +do not start a new compression frame unless the compressed size of the +current frame is at least +.Ar N +bytes. +The number may be followed by +.Li k / Li kB , +.Li M / Li MB , +or +.Li G / Li GB +to indicate kilobytes, megabytes or gigabytes respectively. +.It Cm zstd:max-frame-in Ns = Ns Ar N , Cm zstd:max-frame-size Ns = Ns Ar N +Start a new compression frame as soon as possible after the +uncompressed size of the current frame exceeds +.Ar N +bytes. +The number may be followed by +.Li k / Li kB , +.Li M / Li MB , +or +.Li G / Li GB +to indicate kilobytes, megabytes or gigabytes respectively. +Values less than 1,024 will be rejected. +.It Cm zstd:max-frame-out Ns = Ns Ar N +Start a new compression frame as soon as possible after the compressed +size of the current frame exceeds +.Ar N +bytes. +The number may be followed by +.Li k / Li kB , +.Li M / Li MB , +or +.Li G / Li GB +to indicate kilobytes, megabytes or gigabytes respectively. +Values less than 1,024 will be rejected. +.It Cm lzop:compression-level +A decimal integer from 1 to 9 specifying the lzop compression level. +.It Cm xz:compression-level +A decimal integer from 0 to 9 specifying the xz compression level. +.It Cm xz:threads +Specify the number of worker threads to use. +Setting threads to a special value 0 makes +.Xr xz 1 +use as many threads as there are CPU cores on the system. +.It Cm mtree: Ns Ar keyword +The mtree writer module allows you to specify which mtree keywords +will be included in the output. +Supported keywords include: +.Cm cksum , Cm device , Cm flags , Cm gid , Cm gname , Cm indent , +.Cm link , Cm md5 , Cm mode , Cm nlink , Cm rmd160 , Cm sha1 , Cm sha256 , +.Cm sha384 , Cm sha512 , Cm size , Cm time , Cm uid , Cm uname . +The default is equivalent to: +.Dq device, flags, gid, gname, link, mode, nlink, size, time, type, uid, uname . +.It Cm mtree:all +Enables all of the above keywords. +You can also use +.Cm mtree:!all +to disable all keywords. +.It Cm mtree:use-set +Enable generation of +.Cm /set +lines in the output. +.It Cm mtree:indent +Produce human-readable output by indenting options and splitting lines +to fit into 80 columns. +.It Cm zip:compression Ns = Ns Ar type +Use +.Ar type +as compression method. +Supported values are store (uncompressed) and deflate (gzip algorithm). +.It Cm zip:encryption +Enable encryption using traditional zip encryption. +.It Cm zip:encryption Ns = Ns Ar type +Use +.Ar type +as encryption type. +Supported values are zipcrypt (traditional zip encryption), +aes128 (WinZip AES-128 encryption) and aes256 (WinZip AES-256 encryption). +.It Cm read_concatenated_archives +Ignore zeroed blocks in the archive, which occurs when multiple tar archives +have been concatenated together. +Without this option, only the contents of +the first concatenated archive would be read. +This option is comparable to the +.Fl i , Fl Fl ignore-zeros +option of GNU tar. +.El +.Pp +If a provided option is not supported by any module, that +is a fatal error. +.It Fl P , Fl Fl absolute-paths +Preserve pathnames. +By default, absolute pathnames (those that begin with a / +character) have the leading slash removed both when creating archives +and extracting from them. +Also, +.Nm +will refuse to extract archive entries whose pathnames contain +.Pa .. +or whose target directory would be altered by a symlink. +This option suppresses these behaviors. +.It Fl p , Fl Fl insecure , Fl Fl preserve-permissions +(x mode only) +Preserve file permissions. +Attempt to restore the full permissions, including file modes, file attributes +or file flags, extended file attributes and ACLs, if available, for each item +extracted from the archive. +This is the reverse of +.Fl Fl no-same-permissions +and the default if +.Nm +is being run as root. +It can be partially overridden by also specifying +.Fl Fl no-acls , +.Fl Fl no-fflags , +.Fl Fl no-mac-metadata +or +.Fl Fl no-xattrs . +.It Fl Fl passphrase Ar passphrase +The +.Pa passphrase +is used to extract or create an encrypted archive. +Currently, zip is the only supported format that supports encryption. +You shouldn't use this option unless you realize how insecure +use of this option is. +.It Fl Fl posix +(c, r, u mode only) +Synonym for +.Fl Fl format Ar pax +.It Fl q , Fl Fl fast-read +(x and t mode only) +Extract or list only the first archive entry that matches each pattern +or filename operand. +Exit as soon as each specified pattern or filename has been matched. +By default, the archive is always read to the very end, since +there can be multiple entries with the same name and, by convention, +later entries overwrite earlier entries. +This option is provided as a performance optimization. +.It Fl Fl read-sparse +(c, r, u modes only) +Read sparse file information from disk. +This is the reverse of +.Fl Fl no-read-sparse +and the default behavior. +.It Fl S +(x mode only) +Extract files as sparse files. +For every block on disk, check first if it contains only NULL bytes and seek +over it otherwise. +This works similar to the conv=sparse option of dd. +.It Fl s Ar pattern +Modify file or archive member names according to +.Pa pattern . +The pattern has the format +.Ar /old/new/ Ns Op bghHprRsS +where +.Ar old +is a basic regular expression, +.Ar new +is the replacement string of the matched part, +and the optional trailing letters modify +how the replacement is handled. +If +.Ar old +is not matched, the pattern is skipped. +Within +.Ar new , +~ is substituted with the match, \e1 to \e9 with the content of +the corresponding captured group. +The optional trailing g specifies that matching should continue +after the matched part and stop on the first unmatched pattern. +The optional trailing s specifies that the pattern applies to the value +of symbolic links. +The optional trailing p specifies that after a successful substitution +the original path name and the new path name should be printed to +standard error. +The optional trailing b specifies that the substitution should be +matched from the beginning of the string rather than from right after the +position at which the previous matching substitution ended. +Optional trailing H, R, or S characters suppress substitutions +for hardlink targets, regular filenames, or symlink targets, +respectively. +Optional trailing h, r, or s characters enable substitutions +for hardlink targets, regular filenames, or symlink targets, +respectively. +The default is +.Ar hrs +which applies substitutions to all names. +In particular, it is never necessary to specify h, r, or s. +.It Fl Fl safe-writes +(x mode only) +Extract files atomically. +By default +.Nm +unlinks the original file with the same name as the extracted file (if it +exists), and then creates it immediately under the same name and writes to +it. +For a short period of time, applications trying to access the file might +not find it, or see incomplete results. +If +.Fl Fl safe-writes +is enabled, +.Nm +first creates a unique temporary file, then writes the new contents to +the temporary file, and finally renames the temporary file to its final +name atomically using +.Xr rename 2 . +This guarantees that an application accessing the file, will either see +the old contents or the new contents at all times. +.It Fl Fl same-owner +(x mode only) +Extract owner and group IDs. +This is the reverse of +.Fl Fl no-same-owner +and the default behavior if +.Nm +is run as root. +.It Fl Fl strip-components Ar count +Remove the specified number of leading path elements. +Pathnames with fewer elements will be silently skipped. +Note that the pathname is edited after checking inclusion/exclusion patterns +but before security checks. +.It Fl T Ar filename , Fl Fl files-from Ar filename +In x or t mode, +.Nm +will read the list of names to be extracted from +.Pa filename . +In c mode, +.Nm +will read names to be archived from +.Pa filename . +The special name +.Dq -C +on a line by itself will cause the current directory to be changed to +the directory specified on the following line. +Names are terminated by newlines unless +.Fl Fl null +is specified. +Note that +.Fl Fl null +also disables the special handling of lines containing +.Dq -C . +Note: If you are generating lists of files using +.Xr find 1 , +you probably want to use +.Fl n +as well. +.It Fl Fl totals +(c, r, u modes only) +After archiving all files, print a summary to stderr. +.It Fl U , Fl Fl unlink , Fl Fl unlink-first +(x mode only) +Unlink files before creating them. +This can be a minor performance optimization if most files +already exist, but can make things slower if most files +do not already exist. +This flag also causes +.Nm +to remove intervening directory symlinks instead of +reporting an error. +See the +.Sx SECURITY +section below for more details. +.It Fl Fl uid Ar id +Use the provided user id number and ignore the user +name from the archive. +On create, if +.Fl Fl uname +is not also specified, the user name will be set to +match the user id. +.It Fl Fl uname Ar name +Use the provided user name. +On extract, this overrides the user name in the archive; +if the provided user name does not exist on the system, +it will be ignored and the user id +(from the archive or from the +.Fl Fl uid +option) +will be used instead. +On create, this sets the user name that will be stored +in the archive; +the name is not verified against the system user database. +.It Fl Fl use-compress-program Ar program +Pipe the input (in x or t mode) or the output (in c mode) through +.Pa program +instead of using the builtin compression support. +.It Fl Fl owner Ar name Ns Op : Ns Ar uid +Use the provided user, if +.Ar uid +is not provided, +.Ar name +can be either an username or numeric id. +See the +.Fl Fl uname +option for details. +.It Fl v , Fl Fl verbose +Produce verbose output. +In create and extract modes, +.Nm +will list each file name as it is read from or written to +the archive. +In list mode, +.Nm +will produce output similar to that of +.Xr ls 1 . +An additional +.Fl v +option will also provide ls-like details in create and extract mode. +.It Fl Fl version +Print version of +.Nm +and +.Nm libarchive , +and exit. +.It Fl w , Fl Fl confirmation , Fl Fl interactive +Ask for confirmation for every action. +.It Fl X Ar filename , Fl Fl exclude-from Ar filename +Read a list of exclusion patterns from the specified file. +See +.Fl Fl exclude +for more information about the handling of exclusions. +.It Fl Fl xattrs +(c, r, u, x modes only) +Archive or extract extended file attributes. +This is the reverse of +.Fl Fl no-xattrs +and the default behavior in c, r, and u modes or if +.Nm +is run in x mode as root. +.It Fl y +(c mode only) +Compress the resulting archive with +.Xr bzip2 1 . +In extract or list modes, this option is ignored. +Note that this +.Nm tar +implementation recognizes bzip2 compression automatically when reading +archives. +.It Fl Z , Fl Fl compress , Fl Fl uncompress +(c mode only) +Compress the resulting archive with +.Xr compress 1 . +In extract or list modes, this option is ignored. +Note that this +.Nm tar +implementation recognizes compress compression automatically when reading +archives. +.It Fl z , Fl Fl gunzip , Fl Fl gzip +(c mode only) +Compress the resulting archive with +.Xr gzip 1 . +In extract or list modes, this option is ignored. +Note that this +.Nm tar +implementation recognizes gzip compression automatically when reading +archives. +.El +.Sh ENVIRONMENT +The following environment variables affect the execution of +.Nm : +.Bl -tag -width indent +.It Ev TAR_READER_OPTIONS +The default options for format readers and compression readers. +The +.Fl Fl options +option overrides this. +.It Ev TAR_WRITER_OPTIONS +The default options for format writers and compression writers. +The +.Fl Fl options +option overrides this. +.It Ev LANG +The locale to use. +See +.Xr environ 7 +for more information. +.It Ev TAPE +The default device. +The +.Fl f +option overrides this. +Please see the description of the +.Fl f +option above for more details. +.It Ev TZ +The timezone to use when displaying dates. +See +.Xr environ 7 +for more information. +.El +.Sh EXIT STATUS +.Ex -std +.Sh EXAMPLES +The following creates a new archive +called +.Ar file.tar.gz +that contains two files +.Ar source.c +and +.Ar source.h : +.Pp +.Dl Nm Fl czf Pa file.tar.gz Pa source.c Pa source.h +.Pp +To view a detailed table of contents for this +archive: +.Pp +.Dl Nm Fl tvf Pa file.tar.gz +.Pp +To extract all entries from the archive on +the default tape drive: +.Pp +.Dl Nm Fl x +.Pp +To examine the contents of an ISO 9660 cdrom image: +.Pp +.Dl Nm Fl tf Pa image.iso +.Pp +To move file hierarchies, invoke +.Nm +as +.Pp +.Dl Nm Fl cf Pa - Fl C Pa srcdir \&. | Nm Fl xpf Pa - Fl C Pa destdir +.Pp +or more traditionally +.Pp +.Dl cd srcdir \&; Nm Fl cf Pa - \&. | ( cd destdir \&; Nm Fl xpf Pa - ) +.Pp +In create mode, the list of files and directories to be archived +can also include directory change instructions of the form +.Cm -C Ns Pa foo/baz +and archive inclusions of the form +.Cm @ Ns Pa archive-file . +For example, the command line +.Pp +.Dl Nm Fl c Fl f Pa new.tar Pa foo1 Cm @ Ns Pa old.tgz Cm -C Ns Pa /tmp Pa foo2 +.Pp +will create a new archive +.Pa new.tar . +.Nm +will read the file +.Pa foo1 +from the current directory and add it to the output archive. +It will then read each entry from +.Pa old.tgz +and add those entries to the output archive. +Finally, it will switch to the +.Pa /tmp +directory and add +.Pa foo2 +to the output archive. +.Pp +An input file in +.Xr mtree 5 +format can be used to create an output archive with arbitrary ownership, +permissions, or names that differ from existing data on disk: +.Bd -literal -offset indent +$ cat input.mtree +#mtree +usr/bin uid=0 gid=0 mode=0755 type=dir +usr/bin/ls uid=0 gid=0 mode=0755 type=file content=myls +$ tar -cvf output.tar @input.mtree +.Ed +.Pp +The +.Fl Fl newer +and +.Fl Fl newer-mtime +switches accept a variety of common date and time specifications, including +.Dq 12 Mar 2005 7:14:29pm , +.Dq 2005-03-12 19:14 , +.Dq 5 minutes ago , +and +.Dq 19:14 PST May 1 . +.Pp +The +.Fl Fl options +argument can be used to control various details of archive generation +or reading. +For example, you can generate mtree output which only contains +.Cm type , Cm time , +and +.Cm uid +keywords: +.Pp +.Dl Nm Fl cf Pa file.tar Fl Fl format=mtree Fl Fl options='!all,type,time,uid' Pa dir +.Pp +or you can set the compression level used by gzip or xz compression: +.Pp +.Dl Nm Fl czf Pa file.tar Fl Fl options='compression-level=9' . +.Pp +For more details, see the explanation of the +.Fn archive_read_set_options +and +.Fn archive_write_set_options +API calls that are described in +.Xr archive_read 3 +and +.Xr archive_write 3 . +.Sh COMPATIBILITY +The bundled-arguments format is supported for compatibility +with historic implementations. +It consists of an initial word (with no leading - character) in which +each character indicates an option. +Arguments follow as separate words. +The order of the arguments must match the order +of the corresponding characters in the bundled command word. +For example, +.Pp +.Dl Nm Cm tbf 32 Pa file.tar +.Pp +specifies three flags +.Cm t , +.Cm b , +and +.Cm f . +The +.Cm b +and +.Cm f +flags both require arguments, +so there must be two additional items +on the command line. +The +.Ar 32 +is the argument to the +.Cm b +flag, and +.Ar file.tar +is the argument to the +.Cm f +flag. +.Pp +The mode options c, r, t, u, and x and the options +b, f, l, m, o, v, and w comply with SUSv2. +.Pp +For maximum portability, scripts that invoke +.Nm tar +should use the bundled-argument format above, should limit +themselves to the +.Cm c , +.Cm t , +and +.Cm x +modes, and the +.Cm b , +.Cm f , +.Cm m , +.Cm v , +and +.Cm w +options. +.Pp +Additional long options are provided to improve compatibility with other +tar implementations. +.Sh SECURITY +Certain security issues are common to many archiving programs, including +.Nm . +In particular, carefully-crafted archives can request that +.Nm +extract files to locations outside of the target directory. +This can potentially be used to cause unwitting users to overwrite +files they did not intend to overwrite. +If the archive is being extracted by the superuser, any file +on the system can potentially be overwritten. +There are three ways this can happen. +Although +.Nm +has mechanisms to protect against each one, +savvy users should be aware of the implications: +.Bl -bullet -width indent +.It +Archive entries can have absolute pathnames. +By default, +.Nm +removes the leading +.Pa / +character from filenames before restoring them to guard against this problem. +.It +Archive entries can have pathnames that include +.Pa .. +components. +By default, +.Nm +will not extract files containing +.Pa .. +components in their pathname. +.It +Archive entries can exploit symbolic links to restore +files to other directories. +An archive can restore a symbolic link to another directory, +then use that link to restore a file into that directory. +To guard against this, +.Nm +checks each extracted path for symlinks. +If the final path element is a symlink, it will be removed +and replaced with the archive entry. +If +.Fl U +is specified, any intermediate symlink will also be unconditionally removed. +If neither +.Fl U +nor +.Fl P +is specified, +.Nm +will refuse to extract the entry. +.El +.Pp +To protect yourself, you should be wary of any archives that +come from untrusted sources. +You should examine the contents of an archive with +.Pp +.Dl Nm Fl tf Pa filename +.Pp +before extraction. +You should use the +.Fl k +option to ensure that +.Nm +will not overwrite any existing files or the +.Fl U +option to remove any pre-existing files. +You should generally not extract archives while running with super-user +privileges. +Note that the +.Fl P +option to +.Nm +disables the security checks above and allows you to extract +an archive while preserving any absolute pathnames, +.Pa .. +components, or symlinks to other directories. +.Sh SEE ALSO +.Xr bzip2 1 , +.Xr compress 1 , +.Xr cpio 1 , +.Xr gzip 1 , +.Xr mt 1 , +.Xr pax 1 , +.Xr shar 1 , +.Xr xz 1 , +.Xr libarchive 3 , +.Xr libarchive-formats 5 , +.Xr tar 5 +.Sh STANDARDS +There is no current POSIX standard for the tar command; it appeared +in +.St -p1003.1-96 +but was dropped from +.St -p1003.1-2001 . +The options supported by this implementation were developed by surveying a +number of existing tar implementations as well as the old POSIX specification +for tar and the current POSIX specification for pax. +.Pp +The ustar and pax interchange file formats are defined by +.St -p1003.1-2001 +for the pax command. +.Sh HISTORY +A +.Nm tar +command appeared in Seventh Edition Unix, which was released in January, 1979. +There have been numerous other implementations, +many of which extended the file format. +John Gilmore's +.Sy pdtar +public-domain implementation (circa November, 1987) +was quite influential, and formed the basis of GNU tar. +GNU tar was included as the standard system tar +in +.Fx +beginning with +.Fx 1.0 . +.Pp +This is a complete re-implementation based on the +.Xr libarchive 3 +library. +It was first released with +.Fx 5.4 +in May, 2005. +.Sh BUGS +This program follows +.St -p1003.1-96 +for the definition of the +.Fl l +option. +Note that GNU tar prior to version 1.15 treated +.Fl l +as a synonym for the +.Fl Fl one-file-system +option. +.Pp +The +.Fl C Pa dir +option may differ from historic implementations. +.Pp +All archive output is written in correctly-sized blocks, even +if the output is being compressed. +Whether or not the last output block is padded to a full +block size varies depending on the format and the +output device. +For tar and cpio formats, the last block of output is padded +to a full block size if the output is being +written to standard output or to a character or block device such as +a tape drive. +If the output is being written to a regular file, the last block +will not be padded. +Many compressors, including +.Xr gzip 1 +and +.Xr bzip2 1 , +complain about the null padding when decompressing an archive created by +.Nm , +although they still extract it correctly. +.Pp +The compression and decompression is implemented internally, so +there may be insignificant differences between the compressed output +generated by +.Pp +.Dl Nm Fl czf Pa - file +.Pp +and that generated by +.Pp +.Dl Nm Fl cf Pa - file | Nm gzip +.Pp +The default should be to read and write archives to the standard I/O paths, +but tradition (and POSIX) dictates otherwise. +.Pp +The +.Cm r +and +.Cm u +modes require that the archive be uncompressed +and located in a regular file on disk. +Other archives can be modified using +.Cm c +mode with the +.Pa @archive-file +extension. +.Pp +To archive a file called +.Pa @foo +or +.Pa -foo +you must specify it as +.Pa ./@foo +or +.Pa ./-foo , +respectively. +.Pp +In create mode, a leading +.Pa ./ +is always removed. +A leading +.Pa / +is stripped unless the +.Fl P +option is specified. +.Pp +There needs to be better support for file selection on both create +and extract. +.Pp +There is not yet any support for multi-volume archives. +.Pp +Converting between dissimilar archive formats (such as tar and cpio) using the +.Cm @ Ns Pa - +convention can cause hard link information to be lost. +This is a consequence of the incompatible ways that different archive +formats store hardlink information. diff --git a/static/freebsd/man1/bsdunzip.1 b/static/freebsd/man1/bsdunzip.1 new file mode 100644 index 00000000..932f9470 --- /dev/null +++ b/static/freebsd/man1/bsdunzip.1 @@ -0,0 +1,199 @@ +.\"- +.\" SPDX-License-Identifier: BSD-2-Clause +.\" +.\" Copyright (c) 2007-2008 Dag-Erling Smørgrav +.\" All rights reserved. +.\" +.Dd June 27, 2023 +.Dt BSDUNZIP 1 +.Os +.Sh NAME +.Nm bsdunzip +.Nd extract files from a ZIP archive +.Sh SYNOPSIS +.Nm +.Op Fl aCcfjLlnopqtuvy +.Op { Fl O | Fl I No } Ar encoding +.Op Fl d Ar dir +.Op Fl x Ar pattern +.Op Fl P Ar password +.Ar zipfile +.Op Ar member ... +.Sh DESCRIPTION +.\" ... +The following options are available: +.Bl -tag -width Fl +.It Fl a +When extracting a text file, convert DOS-style line endings to +Unix-style line endings. +.It Fl C +Match file names case-insensitively. +.It Fl c +Extract to stdout/screen. +When extracting files from the zipfile, they are written to stdout. +This is similar to +.Fl p , +but does not suppress normal output. +.It Fl d Ar dir +Extract files into the specified directory rather than the current +directory. +.It Fl f +Update existing. +Extract only files from the zipfile if a file with the same name +already exists on disk and is older than the former. +Otherwise, the file is silently skipped. +.It Fl I Ar encoding +.It Fl O Ar encoding +Convert filenames from the specified encoding. +.It Fl j +Ignore directories stored in the zipfile; instead, extract all files +directly into the extraction directory. +.It Fl L +Convert the names of the extracted files and directories to lowercase. +.It Fl l +List, rather than extract, the contents of the zipfile. +.It Fl n +No overwrite. +When extracting a file from the zipfile, if a file with the same name +already exists on disk, the file is silently skipped. +.It Fl o +Overwrite. +When extracting a file from the zipfile, if a file with the same name +already exists on disk, the existing file is replaced with the file +from the zipfile. +.It Fl p +Extract to stdout. +When extracting files from the zipfile, they are written to stdout. +The normal output is suppressed as if +.Fl q +was specified. +.It Fl P Ar password +Extract encrypted files using a password. +Putting a password on the command line using this option can be +insecure. +.It Fl q +Quiet: print less information while extracting. +.It Fl t +Test: do not extract anything, but verify the checksum of every file +in the archive. +.It Fl u +Update. +When extracting a file from the zipfile, if a file with the same name +already exists on disk, the existing file is replaced with the file +from the zipfile if and only if the latter is newer than the former. +Otherwise, the file is silently skipped. +.It Fl v +List verbosely, rather than extract, the contents of the zipfile. +This differs from +.Fl l +by using the long listing. +Note that most of the data is currently fake and does not reflect the +content of the archive. +.It Fl x Ar pattern +Exclude files matching the pattern +.Ar pattern . +.It Fl y +Print four digit years in listings instead of two. +.It Fl Z Ar mode +Emulate +.Xr zipinfo 1L +mode. +Enabling +.Xr zipinfo 1L +mode changes the way in which additional arguments are parsed. +Currently only +.Xr zipinfo 1L +mode 1 is supported, which lists the file names one per line. +.It Ar [member ...] +Optional list of members to extract from the zipfile. +Can include patterns, e.g., +.Ar 'memberdir/*' +will extract all files and dirs below memberdir. +.El +.Pp +Note that only one of +.Fl n , +.Fl o , +and +.Fl u +may be specified. +If specified filename is +.Qq - , +then data is read from +.Va stdin . +.Sh ENVIRONMENT +If the +.Ev UNZIP_DEBUG +environment variable is defined, the +.Fl q +command-line option has no effect, and additional debugging +information will be printed to +.Va stderr . +.Sh COMPATIBILITY +The +.Nm +utility aims to be sufficiently compatible with other implementations +to serve as a drop-in replacement in the context of the +.Xr ports 7 +system. +No attempt has been made to replicate functionality which is not +required for that purpose. +.Pp +For compatibility reasons, command-line options will be recognized if +they are listed not only before but also after the name of the +zipfile. +.Pp +Normally, the +.Fl a +option should only affect files which are marked as text files in the +zipfile's central directory. +Since the +.Xr archive 3 +library does not provide access to that information, it is not available +to the +.Nm +utility. +Instead, the +.Nm +utility will assume that a file is a text file if no non-ASCII +characters are present within the first block of data decompressed for +that file. +If non-ASCII characters appear in subsequent blocks of data, a warning +will be issued. +.Pp +The +.Nm +utility is only able to process ZIP archives handled by +.Xr libarchive 3 . +Depending on the installed version of +.Xr libarchive 3 , +this may or may not include self-extracting or ZIPX archives. +.Sh SEE ALSO +.Xr libarchive 3 +.Sh HISTORY +The +.Nm +utility appeared in +.Fx 8.0 . +.Sh AUTHORS +The +.Nm +utility and this manual page were written by +.An Dag-Erling Sm\(/orgrav Aq Mt des@FreeBSD.org . +It uses the +.Xr archive 3 +library developed by +.An Tim Kientzle Aq Mt kientzle@FreeBSD.org . +.Sh CAVEATS +The +.Nm +utility performs two scans of the command-line for arguments before +and after the archive name, so as to maintain compatibility with +Info-ZIP unzip. +As a result, the POSIX +.Ql -- +double-dash string used to separate options from arguments will need to +be repeated. +For example, to extract a "-a.jpg" from "-b.zip" with overwrite, one +would need to invoke +.Dl bsdunzip -o -- -a.jpg -- -b.zip diff --git a/static/freebsd/man1/bsnmpd.1 b/static/freebsd/man1/bsnmpd.1 new file mode 100644 index 00000000..6afbd0a3 --- /dev/null +++ b/static/freebsd/man1/bsnmpd.1 @@ -0,0 +1,280 @@ +.\" +.\" Copyright (c) 2004-2005 +.\" Hartmut Brandt. +.\" All rights reserved. +.\" Copyright (c) 2001-2003 +.\" Fraunhofer Institute for Open Communication Systems (FhG Fokus). +.\" All rights reserved. +.\" +.\" Author: Harti Brandt +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" $Begemot: bsnmp/snmpd/bsnmpd.1,v 1.12 2006/02/27 09:50:03 brandt_h Exp $ +.\" +.Dd May 14, 2016 +.Dt BSNMPD 1 +.Os +.Sh NAME +.Nm bsnmpd +.Nd "simple and extensible SNMP daemon" +.Sh SYNOPSIS +.Nm +.Op Fl dh +.Op Fl c Ar file +.Op Fl D Ar options +.Op Fl e Ar file +.Op Fl I Ar paths +.Op Fl l Ar prefix +.Op Fl m Ar variable Ns Op = Ns Ar value +.Op Fl p Ar file +.Sh DESCRIPTION +The +.Nm +daemon serves the internet SNMP (Simple Network Management Protocol). +It is intended to serve only the absolute basic MIBs and implement all other +MIBs through loadable modules. +In this way the +.Nm +can be used in unexpected ways. +.Pp +The options are as follows: +.Bl -tag -width ".It Fl D Ar options" +.It Fl d +Do not daemonize. +Used for debugging. +.It Fl h +Print a short usage message. +.It Fl c Ar file +Use +.Ar file +as configuration file instead of the standard one. +.It Fl D Ar options +Debugging options are specified with a +.Fl o +flag followed by a comma separated string of options. +The following options are available. +.Bl -tag -width ".It Cm trace Ns Cm = Ns Cm level" +.It Cm dump +Dump all sent and received PDUs to the terminal. +.It Cm events +Set the debugging level of the event library (see +.Xr eventlib 3 ) +to 10. +.It Cm trace Ns Cm = Ns Cm level +Set the snmp library trace flag to the specified +value. +.El +The value can be specified in the usual C-syntax for numbers. +.It Fl e Ar file +Specify an alternate file where the agent's engine id and number of boots +are saved. +.It Fl I Ar paths +Specify a colon separated list of directories to search for configuration +include files. +The default is +.Pa /etc:/usr/etc/:/usr/local/etc . +These paths are only searched for include specified within <> parentheses. +.It Fl l Ar prefix +Use +.Ar prefix +as the default basename for the pid and the configuration files. +.It Fl m Ar variable Ns Op = Ns Ar value +Define a configuration variable. +.It Fl p Ar file +Specify an alternate pid file instead of the default one. +.El +.Sh CONFIGURATION +.Nm +reads its configuration from either the default or the user specified +configuration file. +The configuration file consists of the following types of lines: +.Bl -bullet -offset indent +.It +variable assignments +.It +section separators +.It +include directives +.It +MIB variable assignments +.El +.Pp +If a line is too long it can be continued on the next line by ending it with +a backslash. +Empty lines and lines in which the first non-blank character is a +.Dq # +sign are ignored. +.Pp +All MIB variable assignments of the entire configuration (including nested +configuration files) are handled as one transaction, i.e., as if they arrived +in a single SET PDU. +Any failure during the initial configuration read causes +.Nm +to exit. +A failure during the configuration read caused by a module load +causes the loading of the module to fail. +.Pp +The configuration is read during initialization of +.Nm , +when a module is loaded and when +.Nm +receives a SIGHUP. +.Ss VARIABLE ASSIGNMENTS +Variable assignments can take one of two forms: +.Bd -unfilled -offset indent +variable := string +variable ?= string +.Ed +.Pp +The string reaches from the first non-blank character after the +equal sign until the first new line or +.Dq # +character. +In the first case +the string is assigned to the variable unconditionally, in the second case the +variable is only assigned if it does not exist yet. +.Pp +Variable names must begin with a letter or underscore and contain only letters, +digits or underscores. +.Ss SECTION SEPARATORS +The configuration consists of named sections. +The MIB variable assignments in the section named +.Dq snmpd +are executed only during initial setup or when +.Nm +receives a SIGHUP. +All other sections are executed when either a module +with the same name as the section is loaded or +.Nm +receives a SIGHUP and that module is already loaded. +The default section at the start of the configuration is +.Dq snmpd . +One can switch to another section with the syntax +.Bd -unfilled -offset indent +%secname +.Ed +.Pp +Where +.Ar secname +is the name of the section. +The same +.Ar secname +can be used in more than one place in the configuration. +All of these parts are collected into one section. +.Ss INCLUDE DIRECTIVES +Another configuration file can be included into the current one with the +include directive that takes one of two forms: +.Bd -unfilled -offset indent +\&.include "file" +\&.include <"file"> +.Ed +.Pp +The first form causes the file to be searched in the current directory, the +second form causes the file to be searched in the directories specified in +the system include path. +Nesting depth is only restricted by available memory. +.Ss MIB VARIABLE ASSIGNMENTS +A MIB variable is assigned with the syntax +.Bd -unfilled -offset indent +oid [ suboids ] = value +.Ed +.Pp +.Va oid +is the name of the variable to be set. +Only the last component of the entire name is used here. +If the variable is a scalar, the index (.0) is automatically +appended and need not to be specified. +If the variable is a table column, the index +.Pq Va suboids +must be specified. +The index consist of elements each separated from the +previous one by a dot. +Elements may be either numbers, strings or hostnames +enclosed in [] brackets. +If the element is a number it is appended +to the current oid. +If the element is a string, its length and the +.Tn ASCII +code of each of its characters are appended to the current oid. +If the +element is a hostname, the IP address of the host is looked up and the four +elements of the IP address are appended to the oid. +.Pp +For example, an oid of +.Bd -unfilled -offset indent +myvariable.27.foooll.[localhost]."&^!" +.Ed +.Pp +results in the oid +.Bd -unfilled -offset indent +myvariable.27.102.111.111.111.108.108.127.0.0.1.38.94.33 +.Ed +.Pp +The value of the assignment may be either empty, a string or a number. +If a string starts with a letter or an underscore and consists only of +letters, digits, underscores and minus signs, it can be written without +quotes. +In all other cases the string must be enclosed in double quotes. +.Sh SUBSTITUTIONS +A variable substitution is written as +.Bd -unfilled -offset indent +$(variable) +.Ed +.Pp +where +.Ar variable +is the name of the variable to substitute. +Using an undefined variable is considered an error. +.Sh FILES +.Bl -tag -width ".It Pa /var/run/ Ns Ao Ar prefix Ac Ns \&.pid" -compact +.It Pa /etc/ Ns Ao Ar prefix Ac Ns \&.config +Default configuration file, where the default +.Aq prefix +is +.Dq snmpd . +.It Pa /var/ Ns Ao Ar prefix Ac Ns \&.engine +Default engine id file. +.It Pa /var/run/ Ns Ao Ar prefix Ac Ns \&.pid +Default pid file. +.It Pa /etc:/usr/etc/:/usr/local/etc +Default search path for system include files. +.It Pa @MIBSPATH@FOKUS-MIB.txt +.It Pa @MIBSPATH@BEGEMOT-MIB.txt +.It Pa @MIBSPATH@BEGEMOT-SNMPD.txt +Definitions for the MIBs implemented in the daemon. +.It Pa /etc/hosts.allow, /etc/hosts.deny +Access controls that should be enforced by TCP wrappers are defined here. +Further details are described in +.Xr hosts_access 5 . +.El +.Sh SEE ALSO +.Xr gensnmptree 1 , +.Xr hosts_access 5 +.Sh STANDARDS +The +.Nm +conforms to the applicable IETF RFCs. +.Sh AUTHORS +.An Hartmut Brandt Aq harti@FreeBSD.org +.Sh BUGS +Sure. diff --git a/static/freebsd/man1/bsnmpget.1 b/static/freebsd/man1/bsnmpget.1 new file mode 100644 index 00000000..b67e9bf4 --- /dev/null +++ b/static/freebsd/man1/bsnmpget.1 @@ -0,0 +1,432 @@ +.\" +.\" Copyright (c) 2010 The FreeBSD Foundation +.\" All rights reserved. +.\" +.\" Portions of this documentation were written by Shteryana Sotirova Shopova +.\" under sponsorship from the FreeBSD Foundation. +.\" +.\" Copyright (c) 2005-2007 The FreeBSD Project. +.\" All rights reserved. +.\" +.\" Author: Shteryana Shopova +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.Dd January 10, 2012 +.Dt BSNMPGET 1 +.Os +.Sh NAME +.Nm bsnmpget , +.Nm bsnmpwalk , +.Nm bsnmpset +.Nd "simple tools for querying SNMP agents" +.Sh SYNOPSIS +.Nm +.Op Fl aDdehnK +.Op Fl A Ar options +.Op Fl b Ar buffersize +.Op Fl C Ar options +.Op Fl I Ar options +.Op Fl i Ar filelist +.Op Fl l Ar filename +.Op Fl M Ar max-repetitions +.Op Fl N Ar non-repeaters +.Op Fl o Ar output +.Op Fl P Ar options +.Op Fl p Ar pdu +.Op Fl r Ar retries +.Op Fl s Ar [trans::][community@][server][:port] +.Op Fl t Ar timeout +.Op Fl U Ar options +.Op Fl v Ar version +.Op Ar OID ... +.Pp +.Nm bsnmpwalk +.Op Fl dhnK +.Op Fl A Ar options +.Op Fl b Ar buffersize +.Op Fl C Ar options +.Op Fl I Ar options +.Op Fl i Ar filelist +.Op Fl l Ar filename +.Op Fl o Ar output +.Op Fl P Ar options +.Op Fl r Ar retries +.Op Fl s Ar [trans::][community@][server][:port] +.Op Fl t Ar timeout +.Op Fl U Ar options +.Op Fl v Ar version +.Op Ar OID ... +.Pp +.Nm bsnmpset +.Op Fl adehnK +.Op Fl A Ar options +.Op Fl b Ar buffersize +.Op Fl C Ar options +.Op Fl I Ar options +.Op Fl i Ar filelist +.Op Fl l Ar filename +.Op Fl o Ar output +.Op Fl P Ar options +.Op Fl r Ar retries +.Op Fl s Ar [trans::][community@][server][:port] +.Op Fl t Ar timeout +.Op Fl U Ar options +.Op Fl v Ar version +.Ar OID Ns = Ar syntax Ns : Ns Ar value +.Op Ar OID Ns = Ar syntax Ns : Ns Ar value ... +.Sh DESCRIPTION +.Nm , +.Nm bsnmpwalk +and +.Nm bsnmpset +are simple tools for retrieving management information from and setting +management information to a Simple Network Management Protocol (SNMP) agent. +.Pp +Depending on the options +.Nm bsnmpget +constructs either a SNMP GetRequest, GetNextRequest +or a GetBulkRequest packet, fills in the object identifiers (OIDs) of the +objects whose values will be retrieved, waits for a response and prints it if +received successfully. +.Pp +.Nm Bsnmpwalk +queries an agent with ether SNMP GetNextRequest or GetBulkRequest packets, +asking for values of OID instances that are a part of the object subtree +rooted at the provided OIDs. +.Pp +.Nm Bsnmpset +constructs a SNMP SetRequest packet, fills in the OIDs (object identifiers), +syntaxes and values of the objects whose values are to be set and waits for a +response from server. +.Sh OPTIONS +The options are as follows (not all apply to all three programs): +.Bl -tag -width ".It Fl D Ar options" +.It Fl A Ar options +Authentication options to use with SNMPv3 PDUs +.Bl -tag -width \& +.It Cm proto=[md5|sha] +The protocol to use when calculating the PDU message digest. +.It Cm key=authkey +A binary localized authentication key to use when calculating the PDU message +digest. +.El +.Pp +By default SNMPv3 PDUs are sent unauthenticated. +.It Fl a +Skip any sanity checks when adding OIDs to a Protocol Data Unit (PDU): +ignore syntax/access type, allow adding of non-leaf objects for GetPdu and +read-only objects to a SetPDU. +.It Fl b Ar buffersize +Tune the size of buffers used to send and receive packets. +The default size is 10000 bytes which should be enough unless an agent sends +a really large octetstring. +The maximum allowed length is 65535 according to the Structure of Management +Information (SMIv2). +.It Fl C Ar options +The context to query with SNMPv3 PDUs. +.Bl -tag -width \& +.It Cm context=name +The context name. +Default is "" (empty). +.It Cm context-engine=engine-id +The SNMP Engine ID of the context to query with SNMPv3 PDUs, represented as +binary octet string. +By default, this is set to the Engine ID of the SNMP agent. +.El +.It Fl D +Perform SNMP USM Engine Discovery, rather than sending a request for the value +of a specific object. +.It Fl d +Turn on debugging. +This option will cause the packets sent and received to be dumped to the +terminal. +.It Fl e +Retry on error. +If an error is returned in the response PDU, resend the request removing the +variable that caused the error until a valid response is received. +This is only useful for a GetRequest- and a GetNextRequest-PDU. +.It Fl h +Print a short help text with default values for various options. +.It Fl I Ar options +Load each MIB description file from the given list to translate symbolic +object names to their numerical representation and vice versa. +Use the other options to obtain a non-default behaviour: +.Bl -tag -width \& +.It Cm cut=OID +Specifies the initial OID that was cut by +.Xr gensnmpdef 1 +when producing the MIB description file. +The default value is .iso(1).org(3).dod(6) which is what should have been +used for all the files installed under +.Pa /usr/share/snmp/defs . +Use this only if you generated your own files, providing a +.Fl c +option to +.Xr gensnmpdef 1 . +.It Cm path=filedir +The directory where files in the list will be searched. +The default is +.Pa /usr/share/snmp/defs Ns . +.It Cm file=filelist +A comma separated list of files to which the two options above will apply. +.El +.Pp +The file suboption has to come after the other suboptions so that their +non-default values will be applied to the list of files. +The order of the other suboptions before each file suboption can be random. +Suboptions may be separated either by commas or by spaces. +If using spaces make sure the entire option string is one argument, for +example using quotes. +.It Fl i Ar filelist +List of MIB description files produced by +.Xr gensnmpdef 1 +which +.Nm bsnmpget , +.Nm bsnmpwalk +or +.Nm bsnmpset +will search to translate numerical OIDs to their symbolic object names. +Multiple files can be provided either giving this option multiple times +or a comma separated list of file names. +If a filename begins with a letter the default directory, +.Pa /usr/share/snmp/defs , +will be searched. +.It Fl K +Calculate and display the localized authentication and privacy keys +corresponding to a plain text password. +The password is obtained via the environment. +Additionally, if one or more OIDs are specified, the calculated +keys are used when processing the SNMPv3 requests. +.It Fl l Ar filename +The path of the posix local (unix domain) socket if local +transport is used. +.It Fl M Ar max-repetitions +The value for the max-repetitions field in a GetBulk PDU. +Default is 10. +.It Fl N Ar non-repeaters +The value for the non-repeaters field in a GetBulk PDU. +Default is 0. +.It Fl n +Only use numerical representations for input and output OIDs and do not +try to resolve symbolic object names. +Note that +.Nm bsnmpget , +.Nm bsnmpwalk +and +.Nm bsnmpset +will print numerical OIDs anyway if the corresponding string representation +is not found in the MIB description files. +.It Fl o Ar [quiet|short|verbose] +The format used to print the received response. +Quiet only prints values, short (default) prints an abbreviated OID +representation and the value. +In addition to the short output verbose prints the type before the value. +.It Fl P Ar options +Privacy options to use with SNMPv3 PDUs +.Bl -tag -width \& +.It Cm proto=[aes|des] +The protocol to use when encrypting/decrypting SNMPv3 PDU data. +.It Cm key=privkey +A binary localized privacy key to use when encrypting/decrypting SNMPv3 PDU data. +.El +.Pp +By default plain text SNMPv3 PDUs are sent. +.It Fl p Ar [get|getnext|getbulk] +The PDU type to send by +.Nm bsmpget +and +.Nm bsnmpwalk . +Default is get +for +.Nm bsmpget +and getnext for +.Nm bsnmpwalk . +Getbulk allows executing the so called SNMP "bulkwalks" allowing the values of +multiple columns to be retrieved in a single PDU by +.Nm bsnmpwalk . +.It Fl r Ar retries +Number of resends of request packets before giving up if the agent does +not respond after the first try. +Default is 3. +.It Fl s Ar [trans::] Ns Ar [community@] Ns Ar [server] Ns Ar [:port] +Each of the server specification components is optional but at least one +has to be provided if the +.Ar s +option is used. +The server specification is constructed in the following manner: +.Bl -tag -width \& +.It Cm trans:: +Transport type may be one of udp, stream or dgram. +If this option is not provided an UDP inet/inet6 socket will be used, which +is the most common. +Stream stands for a posix local stream socket and a posix local datagram +socket will be used if dgram is specified. +.It Cm community@ +Specify an SNMP community string to be used when sending packets. +If the option is skipped the default "public" will be used for +.Nm +and +.Nm bsnmpwalk +and the default "private" community string will be used for +.Nm bsnmpset . +.It Cm server +This might be either the IP address or the hostname where the agent is +listening. +The default is +.Qq localhost . +.It Cm port +The destination port to send the requests to. +This is useful if the SNMP agent listens on a non-default port. +Default is given by the +.Qq snmp +entry in +.Pa /etc/services , +port 161. +.El +.It Fl t Ar timeout +Number of seconds before resending a request packet if the agent does +not respond. +The default value is 3 seconds. +.It Fl U Ar options +User credentials when sending SNMPv3 PDUs. +.Bl -tag -width \& +.It Cm engine=id +The Engine ID of the SNMP agent represented as a binary octet string. +.It Cm engine-boots=value +The value of the snmpEngineBoots of the SNMP agent. +.It Cm engine-time=value +The value of the snmpEngineTime of the SNMP agent. +.Pp +If any of the above is not specified, SNMP USM Engine Discovery is attempted. +This is also the default behavior. +.It Cm name=username +The USM user name to include in the SNMPv3 PDUs. +By default, the user name is +obtained via the environment. +.El +.It Fl v Ar version +The SNMP protocol version to use when sending requests. +SNMP versions 1, 2 and +3 are supported. +If no version option is provided +.Nm bsnmpget , +.Nm bsnmpwalk +and +.Nm bsnmpset +will use version 2. +Note that GetBulkRequest-PDUs were introduced in SNMPv2 thus setting the +version to 1 is incompatible with sending a GetBulk PDU. +.It OID +The object identifier whose value to retrieve. +At least one OID should be provided for +.Nm bsnmpget +to be able to send a request. +.Pp +For +.Nm bsnmpwalk +this is the root object identifier of the subtree whose values are to be +retrieved. +If no OID is provided +.Nm bsnmpwalk +will walk the mib2 subtree rooted +at .iso(1).org(3).dod(6).internet(1).mgmt(2).mib2(1) . +.Pp +Any of the formats used to print a single variable +is valid as input OID: +.Bl -tag -width \& +.It 1.3.6.1.2.1.25.1.1.0 +.It sysDescr +.It ifPhysAddress.1 +.It ifRcvAddressStatus.2.6.255.255.255.255.255.255 +.It ifRcvAddressType[2,ff:ff:ff:ff:ff:ff] +.It ifRcvAddressStatus[Integer:1,OctetString:ff:ff:ff:ff:ff:ff] +(requires the +.Fl o Ar verbose +option) +.El +.Pp +Square brackets are used to denote an entry's indexes. +When used in an input OID, the square brackets may have to be +escaped or the OID has to be quoted to protect it from the shell. +Note there is no difference between ifName.1 and "ifName[1]". +.It OID Ns = Ns Ar [syntax Ns :] Ns Ar value +The object identifier with its syntax type and value that is to be set. +At least one such string OID=[syntax:]value should be provided to +.Nm bsnmpset +to be able to send a request. +.Bl -tag -width \& +.It Cm OID +OID may be input as a string, a string followed by a random number of integers +(suboids) separated by dots, a sequence of integers separated by dots - that is +if the +.Ar n +option is used - and in such case a syntax is required for every value, +or a string followed by square brackets (used to denote an entry's indexes) and +corresponding indexes. +Any of the formats used to print a single variable by +.Nm bsnmpset +is valid as input OID as well: +.Bl -tag -width \& +.It 1.3.6.1.2.1.25.1.1.0=TimeTicks:537615486 +.It sysLocation=OctetString:"@ Home" (with Fl o Ar verbose No option) +.It sysLocation.0="@ Home" +.It 1.3.6.1.2.1.2.2.1.6.1=OctetString:ffffffffffff +.It ifPhysAddress.1="00:02:b3:1d:1c:a3" +.It ifRcvAddressStatus.1.6.255.255.255.255.255.255=1 +.It "ifRcvAddressStatus[Integer:1,OctetString:ff:ff:ff:ff:ff:ff]=Integer:1" +(with the +.Fl o Ar verbose +option) +.El +.It Cm syntax +where the syntax string is one of: +Integer, OctetString, OID, IpAddress, Counter32, Gauge, TimeTicks, Counter64. +.It Cm value +The value to be set - IP address in form of u.u.u.u - for example +1.3.1.6.1.2.0=IpAddress:192.168.0.1, strings require inverted-commas if they +contain any special characters or spaces, all other numeric types do not. +.El +.El +.Sh ENVIRONMENT +.Nm , +.Nm bsnmpwalk +and +.Nm bsnmpset +use the following environment variables: +.Bl -tag -width SNMPAUTH +.It Ev SNMPAUTH +Specifies a default SNMP USM authentication protocol. +.It Ev SNMPPRIV +Specifies a default SNMP USM privacy protocol. +.It Ev SNMPUSER +Specifies a default SNMP USM user name. +.It Ev SNMPPASSWD +Specifies the SNMP USM plain text password to use when calculating localized +authentication and privacy keys. +If this variable exists in the environment, +SNMPv3 is the default version to use for outgoing requests. +.El +.Sh SEE ALSO +.Xr gensnmpdef 1 +.Sh AUTHORS +.An Shteryana Shopova Aq Mt syrinx@FreeBSD.org diff --git a/static/freebsd/man1/bspatch.1 b/static/freebsd/man1/bspatch.1 new file mode 100644 index 00000000..291f9f2b --- /dev/null +++ b/static/freebsd/man1/bspatch.1 @@ -0,0 +1,85 @@ +.\"- +.\" Copyright 2003-2005 Colin Percival +.\" All rights reserved +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted providing that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY +.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING +.\" IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +.\" POSSIBILITY OF SUCH DAMAGE. +.\" +.Dd December 22, 2022 +.Dt BSPATCH 1 +.Os +.Sh NAME +.Nm bspatch +.Nd apply a patch built with +.Xr bsdiff 1 +.Sh SYNOPSIS +.Nm +.Ar oldfile newfile patchfile +.Sh DESCRIPTION +The +.Nm +utility +generates +.Ar newfile +from +.Ar oldfile +and +.Ar patchfile +where +.Ar patchfile +is a binary patch built by +.Xr bsdiff 1 . +.Pp +The +.Nm +utility +uses memory equal to the size of +.Ar oldfile +plus the size of +.Ar newfile , +but can tolerate a very small working set without a dramatic loss +of performance. +.Sh SEE ALSO +.Xr bsdiff 1 +.Sh AUTHORS +.An Colin Percival Aq Mt cperciva@FreeBSD.org +.Sh BUGS +The +.Nm +utility does not verify that +.Ar oldfile +is the correct source file for +.Ar patchfile . +Attempting to apply a patch to the wrong file will usually produce +garbage; consequently it is strongly recommended that users of +.Nm +verify that +.Ar oldfile +matches the source file from which +.Ar patchfile +was built, by comparing cryptographic hashes, for example. +Users may also wish to verify after running +.Nm +that +.Ar newfile +matches the target file from which +.Ar patchfile +was built. diff --git a/static/freebsd/man1/bthost.1 b/static/freebsd/man1/bthost.1 new file mode 100644 index 00000000..337a602e --- /dev/null +++ b/static/freebsd/man1/bthost.1 @@ -0,0 +1,114 @@ +.\" Copyright (c) 2003 Maksim Yevmenkin +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" $Id: bthost.1,v 1.7 2003/05/21 22:19:00 max Exp $ +.\" +.Dd May 8, 2003 +.Dt BTHOST 1 +.Os +.Sh NAME +.Nm bthost +.Nd look up Bluetooth host names and Protocol Service Multiplexor values +.Sh SYNOPSIS +.Nm +.Op Fl bhp +.Ar host_or_protocol +.Sh DESCRIPTION +The +.Nm +utility looks for information about Bluetooth hosts and +Protocol Service Multiplexor (PSM) values. +It gets this information from the +.Pa /etc/bluetooth/hosts +and +.Pa /etc/bluetooth/protocols +files. +.Pp +In host mode, it simply converts between the host names and Bluetooth addresses. +The argument can be either a host name or a Bluetooth address. +The program first attempts to interpret it as a Bluetooth address. +If this fails, it will treat it as a host name. +A Bluetooth address consists of six hex bytes separated by a colon, +e.g., +.Dq Li 01:02:03:04:05:06 . +A host name consists of names separated by dots, e.g., +.Dq Li my.cell.phone . +.Pp +In protocol mode, it simply converts between the Protocol Service Multiplexor +names and assigned numbers. +The argument can be either a Protocol Service Multiplexor name or +an assigned number. +The program first attempts to interpret it as an assigned number. +.Pp +The options are as follows: +.Bl -tag -width indent +.It Fl b +Produce brief output. +.It Fl h +Display usage message and exit. +.It Fl p +Activate protocol mode. +.El +.Pp +The +.Nm +utility will print results to the standard output, and error messages to the +standard error. +An output can be quite different, +here is an example that demonstrates all of the possibilities: +.Bd -literal -offset indent +% bthost localhost +Host localhost has address FF:FF:FF:00:00:00 +% bthost ff:ff:ff:00:00:00 +Host FF:FF:FF:00:00:00 has name localhost +% bthost -b localhost +FF:FF:FF:00:00:00 +% bthost -b ff:ff:ff:00:00:00 +localhost +% bthost do.not.exists +do.not.exists: Unknown host +% bthost 0:0:0:0:0:0 +00:00:00:00:00:00: Unknown host +% bthost -p sdp +Protocol/Service Multiplexor sdp has number 1 +% bthost -p 3 +Protocol/Service Multiplexor rfcomm has number 3 +% bthost -bp HID-Control +17 +% bthost -p foo +foo: Unknown Protocol/Service Multiplexor +.Ed +.Sh FILES +.Bl -tag -width ".Pa /etc/bluetooth/hosts" -compact +.It Pa /etc/bluetooth/hosts +.It Pa /etc/bluetooth/protocols +.El +.Sh EXIT STATUS +.Ex -std +.Sh SEE ALSO +.Xr bluetooth 3 , +.Xr bluetooth.hosts 5 , +.Xr bluetooth.protocols 5 +.Sh AUTHORS +.An Maksim Yevmenkin Aq Mt m_evmenkin@yahoo.com diff --git a/static/freebsd/man1/btsockstat.1 b/static/freebsd/man1/btsockstat.1 new file mode 100644 index 00000000..b1b8fdf6 --- /dev/null +++ b/static/freebsd/man1/btsockstat.1 @@ -0,0 +1,82 @@ +.\" Copyright (c) 2001-2002 Maksim Yevmenkin +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" $Id: btsockstat.1,v 1.6 2003/05/21 00:09:45 max Exp $ +.\" +.Dd October 12, 2003 +.Dt BTSOCKSTAT 1 +.Os +.Sh NAME +.Nm btsockstat +.Nd show Bluetooth sockets information +.Sh SYNOPSIS +.Nm +.Op Fl nrh +.Op Fl M Ar core +.Op Fl p Ar protocol +.Sh DESCRIPTION +The +.Nm +utility symbolically displays the contents of various Bluetooth sockets +related data structures. +There are few output formats, depending on the +options for the information presented. +The +.Nm +utility +will print results to the standard output and error messages to the +standard error. +.Pp +The options are as follows: +.Bl -tag -width indent +.It Fl h +Display usage message and exit. +.It Fl M Ar core +Extract values associated with the name list from the specified core +instead of the default +.Pa /dev/kmem . +.It Fl n +Show Bluetooth addresses as numbers. +Normally, +.Nm +attempts to resolve Bluetooth addresses, and display them symbolically. +.It Fl p Ar protocol +Display a list of active sockets (protocol control blocks) for each +specified protocol. +Supported protocols are: +.Cm hci_raw , l2cap_raw , l2cap, rfcomm +and +.Cm rfcomm_s . +.It Fl r +Display a list of active routing entries (if any) for specified protocol. +.El +.Sh EXIT STATUS +.Ex -std +.Sh SEE ALSO +.Xr ng_btsocket 4 +.Sh AUTHORS +.An Maksim Yevmenkin Aq Mt m_evmenkin@yahoo.com +.Sh BUGS +Most likely. +Please report if found. diff --git a/static/freebsd/man1/bugpoint.1 b/static/freebsd/man1/bugpoint.1 new file mode 100644 index 00000000..efbecd28 --- /dev/null +++ b/static/freebsd/man1/bugpoint.1 @@ -0,0 +1,308 @@ +.\" Man page generated from reStructuredText. +. +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.TH "BUGPOINT" "1" "2023-05-24" "16" "LLVM" +.SH NAME +bugpoint \- automatic test case reduction tool +.SH SYNOPSIS +.sp +\fBbugpoint\fP [\fIoptions\fP] [\fIinput LLVM ll/bc files\fP] [\fILLVM passes\fP] \fB\-\-args\fP +\fIprogram arguments\fP +.SH DESCRIPTION +.sp +\fBbugpoint\fP narrows down the source of problems in LLVM tools and passes. It +can be used to debug three types of failures: optimizer crashes, miscompilations +by optimizers, or bad native code generation (including problems in the static +and JIT compilers). It aims to reduce large test cases to small, useful ones. +For more information on the design and inner workings of \fBbugpoint\fP, as well as +advice for using bugpoint, see \fI\%LLVM bugpoint tool: design and usage\fP in the LLVM +distribution. +.SH OPTIONS +.sp +\fB\-\-additional\-so\fP \fIlibrary\fP +.INDENT 0.0 +.INDENT 3.5 +Load the dynamic shared object \fIlibrary\fP into the test program whenever it is +run. This is useful if you are debugging programs which depend on non\-LLVM +libraries (such as the X or curses libraries) to run. +.UNINDENT +.UNINDENT +.sp +\fB\-\-append\-exit\-code\fP=\fI{true,false}\fP +.INDENT 0.0 +.INDENT 3.5 +Append the test programs exit code to the output file so that a change in exit +code is considered a test failure. Defaults to false. +.UNINDENT +.UNINDENT +.sp +\fB\-\-args\fP \fIprogram args\fP +.INDENT 0.0 +.INDENT 3.5 +Pass all arguments specified after \fB\-\-args\fP to the test program whenever it runs. +Note that if any of the \fIprogram args\fP start with a \(dq\fB\-\fP\(dq, you should use: +.INDENT 0.0 +.INDENT 3.5 +.sp +.nf +.ft C +bugpoint [bugpoint args] \-\-args \-\- [program args] +.ft P +.fi +.UNINDENT +.UNINDENT +.sp +The \(dq\fB\-\-\fP\(dq right after the \fB\-\-args\fP option tells \fBbugpoint\fP to consider +any options starting with \(dq\fB\-\fP\(dq to be part of the \fB\-\-args\fP option, not as +options to \fBbugpoint\fP itself. +.UNINDENT +.UNINDENT +.sp +\fB\-\-tool\-args\fP \fItool args\fP +.INDENT 0.0 +.INDENT 3.5 +Pass all arguments specified after \fB\-\-tool\-args\fP to the LLVM tool under test +(\fBllc\fP, \fBlli\fP, etc.) whenever it runs. You should use this option in the +following way: +.INDENT 0.0 +.INDENT 3.5 +.sp +.nf +.ft C +bugpoint [bugpoint args] \-\-tool\-args \-\- [tool args] +.ft P +.fi +.UNINDENT +.UNINDENT +.sp +The \(dq\fB\-\-\fP\(dq right after the \fB\-\-tool\-args\fP option tells \fBbugpoint\fP to +consider any options starting with \(dq\fB\-\fP\(dq to be part of the \fB\-\-tool\-args\fP +option, not as options to \fBbugpoint\fP itself. (See \fB\-\-args\fP, above.) +.UNINDENT +.UNINDENT +.sp +\fB\-\-safe\-tool\-args\fP \fItool args\fP +.INDENT 0.0 +.INDENT 3.5 +Pass all arguments specified after \fB\-\-safe\-tool\-args\fP to the \(dqsafe\(dq execution +tool. +.UNINDENT +.UNINDENT +.sp +\fB\-\-gcc\-tool\-args\fP \fIgcc tool args\fP +.INDENT 0.0 +.INDENT 3.5 +Pass all arguments specified after \fB\-\-gcc\-tool\-args\fP to the invocation of +\fBgcc\fP\&. +.UNINDENT +.UNINDENT +.sp +\fB\-\-opt\-args\fP \fIopt args\fP +.INDENT 0.0 +.INDENT 3.5 +Pass all arguments specified after \fB\-\-opt\-args\fP to the invocation of \fBopt\fP\&. +.UNINDENT +.UNINDENT +.sp +\fB\-\-disable\-{dce,simplifycfg}\fP +.INDENT 0.0 +.INDENT 3.5 +Do not run the specified passes to clean up and reduce the size of the test +program. By default, \fBbugpoint\fP uses these passes internally when attempting to +reduce test programs. If you\(aqre trying to find a bug in one of these passes, +\fBbugpoint\fP may crash. +.UNINDENT +.UNINDENT +.sp +\fB\-\-enable\-valgrind\fP +.INDENT 0.0 +.INDENT 3.5 +Use valgrind to find faults in the optimization phase. This will allow +bugpoint to find otherwise asymptomatic problems caused by memory +mis\-management. +.UNINDENT +.UNINDENT +.sp +\fB\-find\-bugs\fP +.INDENT 0.0 +.INDENT 3.5 +Continually randomize the specified passes and run them on the test program +until a bug is found or the user kills \fBbugpoint\fP\&. +.UNINDENT +.UNINDENT +.sp +\fB\-help\fP +.INDENT 0.0 +.INDENT 3.5 +Print a summary of command line options. +.UNINDENT +.UNINDENT +.sp +\fB\-\-input\fP \fIfilename\fP +.INDENT 0.0 +.INDENT 3.5 +Open \fIfilename\fP and redirect the standard input of the test program, whenever +it runs, to come from that file. +.UNINDENT +.UNINDENT +.sp +\fB\-\-load\fP \fIplugin\fP +.INDENT 0.0 +.INDENT 3.5 +Load the dynamic object \fIplugin\fP into \fBbugpoint\fP itself. This object should +register new optimization passes. Once loaded, the object will add new command +line options to enable various optimizations. To see the new complete list of +optimizations, use the \fB\-help\fP and \fB\-\-load\fP options together; for example: +.INDENT 0.0 +.INDENT 3.5 +.sp +.nf +.ft C +bugpoint \-\-load myNewPass.so \-help +.ft P +.fi +.UNINDENT +.UNINDENT +.UNINDENT +.UNINDENT +.sp +\fB\-\-mlimit\fP \fImegabytes\fP +.INDENT 0.0 +.INDENT 3.5 +Specifies an upper limit on memory usage of the optimization and codegen. Set +to zero to disable the limit. +.UNINDENT +.UNINDENT +.sp +\fB\-\-output\fP \fIfilename\fP +.INDENT 0.0 +.INDENT 3.5 +Whenever the test program produces output on its standard output stream, it +should match the contents of \fIfilename\fP (the \(dqreference output\(dq). If you +do not use this option, \fBbugpoint\fP will attempt to generate a reference output +by compiling the program with the \(dqsafe\(dq backend and running it. +.UNINDENT +.UNINDENT +.sp +\fB\-\-run\-{int,jit,llc,custom}\fP +.INDENT 0.0 +.INDENT 3.5 +Whenever the test program is compiled, \fBbugpoint\fP should generate code for it +using the specified code generator. These options allow you to choose the +interpreter, the JIT compiler, the static native code compiler, or a +custom command (see \fB\-\-exec\-command\fP) respectively. +.UNINDENT +.UNINDENT +.sp +\fB\-\-safe\-{llc,custom}\fP +.INDENT 0.0 +.INDENT 3.5 +When debugging a code generator, \fBbugpoint\fP should use the specified code +generator as the \(dqsafe\(dq code generator. This is a known\-good code generator +used to generate the \(dqreference output\(dq if it has not been provided, and to +compile portions of the program that as they are excluded from the testcase. +These options allow you to choose the +static native code compiler, or a custom command, (see \fB\-\-exec\-command\fP) +respectively. The interpreter and the JIT backends cannot currently +be used as the \(dqsafe\(dq backends. +.UNINDENT +.UNINDENT +.sp +\fB\-\-exec\-command\fP \fIcommand\fP +.INDENT 0.0 +.INDENT 3.5 +This option defines the command to use with the \fB\-\-run\-custom\fP and +\fB\-\-safe\-custom\fP options to execute the bitcode testcase. This can +be useful for cross\-compilation. +.UNINDENT +.UNINDENT +.sp +\fB\-\-compile\-command\fP \fIcommand\fP +.INDENT 0.0 +.INDENT 3.5 +This option defines the command to use with the \fB\-\-compile\-custom\fP +option to compile the bitcode testcase. The command should exit with a +failure exit code if the file is \(dqinteresting\(dq and should exit with a +success exit code (i.e. 0) otherwise (this is the same as if it crashed on +\(dqinteresting\(dq inputs). +.sp +This can be useful for +testing compiler output without running any link or execute stages. To +generate a reduced unit test, you may add CHECK directives to the +testcase and pass the name of an executable compile\-command script in this form: +.INDENT 0.0 +.INDENT 3.5 +.sp +.nf +.ft C +#!/bin/sh +llc \(dq$@\(dq +not FileCheck [bugpoint input file].ll < bugpoint\-test\-program.s +.ft P +.fi +.UNINDENT +.UNINDENT +.sp +This script will \(dqfail\(dq as long as FileCheck passes. So the result +will be the minimum bitcode that passes FileCheck. +.UNINDENT +.UNINDENT +.sp +\fB\-\-safe\-path\fP \fIpath\fP +.INDENT 0.0 +.INDENT 3.5 +This option defines the path to the command to execute with the +\fB\-\-safe\-{int,jit,llc,custom}\fP +option. +.UNINDENT +.UNINDENT +.sp +\fB\-\-verbose\-errors\fP=\fI{true,false}\fP +.INDENT 0.0 +.INDENT 3.5 +The default behavior of bugpoint is to print \(dq\(dq when it finds a reduced +test that crashes compilation. This flag prints the output of the crashing +program to stderr. This is useful to make sure it is the same error being +tracked down and not a different error that happens to crash the compiler as +well. Defaults to false. +.UNINDENT +.UNINDENT +.SH EXIT STATUS +.sp +If \fBbugpoint\fP succeeds in finding a problem, it will exit with 0. Otherwise, +if an error occurs, it will exit with a non\-zero value. +.SH SEE ALSO +.sp +\fBopt(1)\fP +.SH AUTHOR +Maintained by the LLVM Team (https://llvm.org/). +.SH COPYRIGHT +2003-2023, LLVM Project +.\" Generated by docutils manpage writer. +. diff --git a/static/freebsd/man1/builtin.1 3.html b/static/freebsd/man1/builtin.1 3.html new file mode 100644 index 00000000..9e877661 --- /dev/null +++ b/static/freebsd/man1/builtin.1 3.html @@ -0,0 +1,891 @@ + + + + + + +
BUILTIN(1)General Commands ManualBUILTIN(1)
+
+
+

+

builtin, keybinds + — index of FreeBSD shell built-in + commands

+
+
+

+

See the manual for your shell for operation details.

+
+
+

+

This page provides an index of builtin + commands, keywords, and keyboard bindings provided by + csh(1) and sh(1), the command line + interpreters which comprise the BSD user + environment.

+
+

+

Below is a table which lists builtin + commands and keywords, whether they exist as standalone utilities, and the + standard shells that provide them.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
csh(1)sh(1)
NoNoYes
NoYesNo
NoNoYes
NoYesYes
NoYesNo
YesNoYes
NoNoYes
NoNoYes
NoYesYes
NoYesNo
NoYesYes
NoNoYes
NoYesNo
NoYesYes
NoYesNo
NoNoYes
NoYesNo
NoYesYes
NoYesYes
NoYesYes
NoNoYes
NoYesNo
NoYesYes
NoYesNo
NoYesNo
NoNoYes
NoNoYes
YesYesYes
NoYesNo
NoNoYes
NoYesYes
NoYesNo
NoYesNo
NoYesNo
NoNoYes
NoYesYes
NoYesYes
NoYesYes
NoNoYes
YesNoYes
NoNoYes
NoYesYes
NoNoYes
NoYesNo
NoNoYes
NoYesNo
NoNoYes
NoYesNo
NoYesNo
NoNoYes
NoYesNo
NoYesNo
NoYesNo
NoYesYes
NoNoYes
NoYesYes
YesYesYes
NoYesNo
NoNoYes
NoYesNo
YesYesNo
NoYesNo
NoYesNo
YesYesNo
YesYesNo
NoYesNo
NoYesNo
NoYesNo
YesYesNo
YesNoYes
NoYesNo
YesNoYes
NoNoYes
NoNoYes
NoYesNo
NoYesNo
NoNoYes
NoYesNo
NoYesYes
NoYesNo
NoYesNo
NoYesNo
NoNoYes
NoYesYes
NoYesNo
NoYesNo
NoYesNo
NoYesNo
NoYesNo
YesNoYes
NoNoYes
YesYesNo
NoNoYes
NoNoYes
YesNoYes
NoNoYes
NoNoYes
NoYesYes
NoYesYes
NoYesNo
NoYesNo
NoYesNo
NoYesYes
NoYesNo
NoNoYes
NoYesYes
NoYesNo
YesYesNo
NoYesYes
+
+
+

+

The command line environment also provides the following default + keyboard bindings:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
csh(1)sh(1)
^H^H
^M | ^J^M | ^J
^I^I
^A^A
^E^E
^F^F
^B^B
^L^L
^U^U
^W^W
^K^K
^Y^Y
^T^T
End of File (EOF)^D^D
Interupt (SIGINT)^C^C
Process info (SIGINFO)^T^T
No^G
^P^P
^N^N
^V^V
^S^S
^Q^Q
Suspend Job (SIGTSTP)^Z^Z
ScrLk*ScrLk*
+

*: Bindings marked ‘*’ are + provided by vt(4), the console driver.

+
+
+
+

+

csh(1), echo(1), + false(1), kill(1), + login(1), nice(1), + nohup(1), printenv(1), + printf(1), pwd(1), + sh(1), test(1), + time(1), true(1), + which(1)

+
+
+

+

The builtin manual page first appeared in + FreeBSD 3.4.

+
+
+

+

This manual page was written by Alexander + Ziaee + <ziaee@FreeBSD.org> + from an earlier version by Sheldon Hearn + <sheldonh@FreeBSD.org>.

+
+
+

+

While builtin commands may exist in more + than one shell or standalone, each may be implemented differently.

+

Standalone utilities and their manuals must be called by their + path from a shell with a builtin command of the same + name.

+
+
+ + + + + +
December 16, 2025FreeBSD 15.0
diff --git a/static/freebsd/man1/bzip2.1 b/static/freebsd/man1/bzip2.1 new file mode 100644 index 00000000..a358e08c --- /dev/null +++ b/static/freebsd/man1/bzip2.1 @@ -0,0 +1,453 @@ +.TH bzip2 1 +.SH NAME +bzip2, bunzip2 \- a block-sorting file compressor, v1.0.8 +.br +bzcat \- decompresses files to stdout +.br +bzip2recover \- recovers data from damaged bzip2 files + +.SH SYNOPSIS +.ll +8 +.B bzip2 +.RB [ " \-cdfkqstvzVL123456789 " ] +[ +.I "filenames \&..." +] +.ll -8 +.br +.B bunzip2 +.RB [ " \-fkvsVL " ] +[ +.I "filenames \&..." +] +.br +.B bzcat +.RB [ " \-s " ] +[ +.I "filenames \&..." +] +.br +.B bzip2recover +.I "filename" + +.SH DESCRIPTION +.I bzip2 +compresses files using the Burrows-Wheeler block sorting +text compression algorithm, and Huffman coding. Compression is +generally considerably better than that achieved by more conventional +LZ77/LZ78-based compressors, and approaches the performance of the PPM +family of statistical compressors. + +The command-line options are deliberately very similar to +those of +.I GNU gzip, +but they are not identical. + +.I bzip2 +expects a list of file names to accompany the +command-line flags. Each file is replaced by a compressed version of +itself, with the name "original_name.bz2". +Each compressed file +has the same modification date, permissions, and, when possible, +ownership as the corresponding original, so that these properties can +be correctly restored at decompression time. File name handling is +naive in the sense that there is no mechanism for preserving original +file names, permissions, ownerships or dates in filesystems which lack +these concepts, or have serious file name length restrictions, such as +MS-DOS. + +.I bzip2 +and +.I bunzip2 +will by default not overwrite existing +files. If you want this to happen, specify the \-f flag. + +If no file names are specified, +.I bzip2 +compresses from standard +input to standard output. In this case, +.I bzip2 +will decline to +write compressed output to a terminal, as this would be entirely +incomprehensible and therefore pointless. + +.I bunzip2 +(or +.I bzip2 \-d) +decompresses all +specified files. Files which were not created by +.I bzip2 +will be detected and ignored, and a warning issued. +.I bzip2 +attempts to guess the filename for the decompressed file +from that of the compressed file as follows: + + filename.bz2 becomes filename + filename.bz becomes filename + filename.tbz2 becomes filename.tar + filename.tbz becomes filename.tar + anyothername becomes anyothername.out + +If the file does not end in one of the recognised endings, +.I .bz2, +.I .bz, +.I .tbz2 +or +.I .tbz, +.I bzip2 +complains that it cannot +guess the name of the original file, and uses the original name +with +.I .out +appended. + +As with compression, supplying no +filenames causes decompression from +standard input to standard output. + +.I bunzip2 +will correctly decompress a file which is the +concatenation of two or more compressed files. The result is the +concatenation of the corresponding uncompressed files. Integrity +testing (\-t) +of concatenated +compressed files is also supported. + +You can also compress or decompress files to the standard output by +giving the \-c flag. Multiple files may be compressed and +decompressed like this. The resulting outputs are fed sequentially to +stdout. Compression of multiple files +in this manner generates a stream +containing multiple compressed file representations. Such a stream +can be decompressed correctly only by +.I bzip2 +version 0.9.0 or +later. Earlier versions of +.I bzip2 +will stop after decompressing +the first file in the stream. + +.I bzcat +(or +.I bzip2 -dc) +decompresses all specified files to +the standard output. + +.I bzip2 +will read arguments from the environment variables +.I BZIP2 +and +.I BZIP, +in that order, and will process them +before any arguments read from the command line. This gives a +convenient way to supply default arguments. + +Compression is always performed, even if the compressed +file is slightly +larger than the original. Files of less than about one hundred bytes +tend to get larger, since the compression mechanism has a constant +overhead in the region of 50 bytes. Random data (including the output +of most file compressors) is coded at about 8.05 bits per byte, giving +an expansion of around 0.5%. + +As a self-check for your protection, +.I +bzip2 +uses 32-bit CRCs to +make sure that the decompressed version of a file is identical to the +original. This guards against corruption of the compressed data, and +against undetected bugs in +.I bzip2 +(hopefully very unlikely). The +chances of data corruption going undetected is microscopic, about one +chance in four billion for each file processed. Be aware, though, that +the check occurs upon decompression, so it can only tell you that +something is wrong. It can't help you +recover the original uncompressed +data. You can use +.I bzip2recover +to try to recover data from +damaged files. + +Return values: 0 for a normal exit, 1 for environmental problems (file +not found, invalid flags, I/O errors, &c), 2 to indicate a corrupt +compressed file, 3 for an internal consistency error (eg, bug) which +caused +.I bzip2 +to panic. + +.SH OPTIONS +.TP +.B \-c --stdout +Compress or decompress to standard output. +.TP +.B \-d --decompress +Force decompression. +.I bzip2, +.I bunzip2 +and +.I bzcat +are +really the same program, and the decision about what actions to take is +done on the basis of which name is used. This flag overrides that +mechanism, and forces +.I bzip2 +to decompress. +.TP +.B \-z --compress +The complement to \-d: forces compression, regardless of the +invocation name. +.TP +.B \-t --test +Check integrity of the specified file(s), but don't decompress them. +This really performs a trial decompression and throws away the result. +.TP +.B \-f --force +Force overwrite of output files. Normally, +.I bzip2 +will not overwrite +existing output files. Also forces +.I bzip2 +to break hard links +to files, which it otherwise wouldn't do. + +bzip2 normally declines to decompress files which don't have the +correct magic header bytes. If forced (-f), however, it will pass +such files through unmodified. This is how GNU gzip behaves. +.TP +.B \-k --keep +Keep (don't delete) input files during compression +or decompression. +.TP +.B \-s --small +Reduce memory usage, for compression, decompression and testing. Files +are decompressed and tested using a modified algorithm which only +requires 2.5 bytes per block byte. This means any file can be +decompressed in 2300k of memory, albeit at about half the normal speed. + +During compression, \-s selects a block size of 200k, which limits +memory use to around the same figure, at the expense of your compression +ratio. In short, if your machine is low on memory (8 megabytes or +less), use \-s for everything. See MEMORY MANAGEMENT below. +.TP +.B \-q --quiet +Suppress non-essential warning messages. Messages pertaining to +I/O errors and other critical events will not be suppressed. +.TP +.B \-v --verbose +Verbose mode -- show the compression ratio for each file processed. +Further \-v's increase the verbosity level, spewing out lots of +information which is primarily of interest for diagnostic purposes. +.TP +.B \-L --license -V --version +Display the software version, license terms and conditions. +.TP +.B \-1 (or \-\-fast) to \-9 (or \-\-best) +Set the block size to 100 k, 200 k .. 900 k when compressing. Has no +effect when decompressing. See MEMORY MANAGEMENT below. +The \-\-fast and \-\-best aliases are primarily for GNU gzip +compatibility. In particular, \-\-fast doesn't make things +significantly faster. +And \-\-best merely selects the default behaviour. +.TP +.B \-- +Treats all subsequent arguments as file names, even if they start +with a dash. This is so you can handle files with names beginning +with a dash, for example: bzip2 \-- \-myfilename. +.TP +.B \--repetitive-fast --repetitive-best +These flags are redundant in versions 0.9.5 and above. They provided +some coarse control over the behaviour of the sorting algorithm in +earlier versions, which was sometimes useful. 0.9.5 and above have an +improved algorithm which renders these flags irrelevant. + +.SH MEMORY MANAGEMENT +.I bzip2 +compresses large files in blocks. The block size affects +both the compression ratio achieved, and the amount of memory needed for +compression and decompression. The flags \-1 through \-9 +specify the block size to be 100,000 bytes through 900,000 bytes (the +default) respectively. At decompression time, the block size used for +compression is read from the header of the compressed file, and +.I bunzip2 +then allocates itself just enough memory to decompress +the file. Since block sizes are stored in compressed files, it follows +that the flags \-1 to \-9 are irrelevant to and so ignored +during decompression. + +Compression and decompression requirements, +in bytes, can be estimated as: + + Compression: 400k + ( 8 x block size ) + + Decompression: 100k + ( 4 x block size ), or + 100k + ( 2.5 x block size ) + +Larger block sizes give rapidly diminishing marginal returns. Most of +the compression comes from the first two or three hundred k of block +size, a fact worth bearing in mind when using +.I bzip2 +on small machines. +It is also important to appreciate that the decompression memory +requirement is set at compression time by the choice of block size. + +For files compressed with the default 900k block size, +.I bunzip2 +will require about 3700 kbytes to decompress. To support decompression +of any file on a 4 megabyte machine, +.I bunzip2 +has an option to +decompress using approximately half this amount of memory, about 2300 +kbytes. Decompression speed is also halved, so you should use this +option only where necessary. The relevant flag is -s. + +In general, try and use the largest block size memory constraints allow, +since that maximises the compression achieved. Compression and +decompression speed are virtually unaffected by block size. + +Another significant point applies to files which fit in a single block +-- that means most files you'd encounter using a large block size. The +amount of real memory touched is proportional to the size of the file, +since the file is smaller than a block. For example, compressing a file +20,000 bytes long with the flag -9 will cause the compressor to +allocate around 7600k of memory, but only touch 400k + 20000 * 8 = 560 +kbytes of it. Similarly, the decompressor will allocate 3700k but only +touch 100k + 20000 * 4 = 180 kbytes. + +Here is a table which summarises the maximum memory usage for different +block sizes. Also recorded is the total compressed size for 14 files of +the Calgary Text Compression Corpus totalling 3,141,622 bytes. This +column gives some feel for how compression varies with block size. +These figures tend to understate the advantage of larger block sizes for +larger files, since the Corpus is dominated by smaller files. + + Compress Decompress Decompress Corpus + Flag usage usage -s usage Size + + -1 1200k 500k 350k 914704 + -2 2000k 900k 600k 877703 + -3 2800k 1300k 850k 860338 + -4 3600k 1700k 1100k 846899 + -5 4400k 2100k 1350k 845160 + -6 5200k 2500k 1600k 838626 + -7 6100k 2900k 1850k 834096 + -8 6800k 3300k 2100k 828642 + -9 7600k 3700k 2350k 828642 + +.SH RECOVERING DATA FROM DAMAGED FILES +.I bzip2 +compresses files in blocks, usually 900kbytes long. Each +block is handled independently. If a media or transmission error causes +a multi-block .bz2 +file to become damaged, it may be possible to +recover data from the undamaged blocks in the file. + +The compressed representation of each block is delimited by a 48-bit +pattern, which makes it possible to find the block boundaries with +reasonable certainty. Each block also carries its own 32-bit CRC, so +damaged blocks can be distinguished from undamaged ones. + +.I bzip2recover +is a simple program whose purpose is to search for +blocks in .bz2 files, and write each block out into its own .bz2 +file. You can then use +.I bzip2 +\-t +to test the +integrity of the resulting files, and decompress those which are +undamaged. + +.I bzip2recover +takes a single argument, the name of the damaged file, +and writes a number of files "rec00001file.bz2", +"rec00002file.bz2", etc, containing the extracted blocks. +The output filenames are designed so that the use of +wildcards in subsequent processing -- for example, +"bzip2 -dc rec*file.bz2 > recovered_data" -- processes the files in +the correct order. + +.I bzip2recover +should be of most use dealing with large .bz2 +files, as these will contain many blocks. It is clearly +futile to use it on damaged single-block files, since a +damaged block cannot be recovered. If you wish to minimise +any potential data loss through media or transmission errors, +you might consider compressing with a smaller +block size. + +.SH PERFORMANCE NOTES +The sorting phase of compression gathers together similar strings in the +file. Because of this, files containing very long runs of repeated +symbols, like "aabaabaabaab ..." (repeated several hundred times) may +compress more slowly than normal. Versions 0.9.5 and above fare much +better than previous versions in this respect. The ratio between +worst-case and average-case compression time is in the region of 10:1. +For previous versions, this figure was more like 100:1. You can use the +\-vvvv option to monitor progress in great detail, if you want. + +Decompression speed is unaffected by these phenomena. + +.I bzip2 +usually allocates several megabytes of memory to operate +in, and then charges all over it in a fairly random fashion. This means +that performance, both for compressing and decompressing, is largely +determined by the speed at which your machine can service cache misses. +Because of this, small changes to the code to reduce the miss rate have +been observed to give disproportionately large performance improvements. +I imagine +.I bzip2 +will perform best on machines with very large caches. + +.SH CAVEATS +I/O error messages are not as helpful as they could be. +.I bzip2 +tries hard to detect I/O errors and exit cleanly, but the details of +what the problem is sometimes seem rather misleading. + +This manual page pertains to version 1.0.8 of +.I bzip2. +Compressed data created by this version is entirely forwards and +backwards compatible with the previous public releases, versions +0.1pl2, 0.9.0, 0.9.5, 1.0.0, 1.0.1, 1.0.2 and above, but with the following +exception: 0.9.0 and above can correctly decompress multiple +concatenated compressed files. 0.1pl2 cannot do this; it will stop +after decompressing just the first file in the stream. + +.I bzip2recover +versions prior to 1.0.2 used 32-bit integers to represent +bit positions in compressed files, so they could not handle compressed +files more than 512 megabytes long. Versions 1.0.2 and above use +64-bit ints on some platforms which support them (GNU supported +targets, and Windows). To establish whether or not bzip2recover was +built with such a limitation, run it without arguments. In any event +you can build yourself an unlimited version if you can recompile it +with MaybeUInt64 set to be an unsigned 64-bit integer. + + + +.SH AUTHOR +Julian Seward, jseward@acm.org. + +https://sourceware.org/bzip2/ + +The ideas embodied in +.I bzip2 +are due to (at least) the following +people: Michael Burrows and David Wheeler (for the block sorting +transformation), David Wheeler (again, for the Huffman coder), Peter +Fenwick (for the structured coding model in the original +.I bzip, +and many refinements), and Alistair Moffat, Radford Neal and Ian Witten +(for the arithmetic coder in the original +.I bzip). +I am much +indebted for their help, support and advice. See the manual in the +source distribution for pointers to sources of documentation. Christian +von Roques encouraged me to look for faster sorting algorithms, so as to +speed up compression. Bela Lubkin encouraged me to improve the +worst-case compression performance. +Donna Robinson XMLised the documentation. +The bz* scripts are derived from those of GNU gzip. +Many people sent patches, helped +with portability problems, lent machines, gave advice and were generally +helpful. diff --git a/static/freebsd/man1/c++filt.1 b/static/freebsd/man1/c++filt.1 new file mode 100644 index 00000000..a473bc38 --- /dev/null +++ b/static/freebsd/man1/c++filt.1 @@ -0,0 +1,109 @@ +.\" Copyright (c) 2009-2011 Joseph Koshy +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer +.\" in this position and unchanged. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR +.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +.\" +.\" $Id: c++filt.1 3642 2018-10-14 14:24:28Z jkoshy $ +.\" +.Dd August 24, 2011 +.Dt C++FILT 1 +.Os +.Sh NAME +.Nm c++filt +.Nd decode C++ symbols +.Sh SYNOPSIS +.Nm +.Op Fl -help +.Op Fl _ | Fl -strip-underscores +.Op Fl n | Fl -no-strip-underscores +.Op Fl p | Fl -no-params +.Op Fl s Ar scheme | Fl -format Ns = Ns Ar scheme +.Op Fl V | Fl -version +.Op Ar encoded-names ... +.Sh DESCRIPTION +The +.Nm +utility translates encoded C++ symbol names to human-readable form. +.Pp +The +.Nm +utility has two operating modes. +.Bl -bullet +.It +If arguments +.Ar encoded-names +are not specified, then +.Nm +will act as a filter, reading from standard input +and writing to standard output. +.It +If arguments +.Ar encoded-names +are specified, then +.Nm +will decode each such argument in turn, writing its decoded form +to standard output. +.El +.Pp +The +.Nm +utility recognizes the following options: +.Bl -tag -width indent +.It Fl -help +Print a help message and exit. +.It Fl _ | Fl -strip-underscores +Remove a leading underscore from symbol names prior to decoding them. +.It Fl n | Fl -no-strip-underscores +Do not remove leading underscores from names. +.It Fl p | Fl -no-params +This option is recognized but ignored. +.It Fl s Ar scheme | Fl -format Ns = Ns Ar scheme +Select the encoding scheme to use. +Argument +.Ar scheme +can be one of the following: +.Bl -tag -width "gnu-v5" +.It Ar arm +Use the encoding scheme specified by the C++ Annotated Reference Manual. +.It Ar auto +Guess the encoding scheme from the input. +.It Ar gnu +Use the encoding scheme used by the GNU C++ compiler. +.It Ar gnu-v3 +Use the encoding scheme used by the GNU C++ compiler, version 3. +.El +.It Fl V | Fl -version +Print a version identifier for +.Nm +and exit. +.El +.Sh EXIT STATUS +.Ex -std +.Sh SEE ALSO +.Xr nm 1 , +.Xr strip 1 , +.Xr elftc_demangle 3 +.Sh AUTHORS +The +.Nm +utility was written by +.An Kai Wang Aq Mt kaiwang27@users.sourceforge.net . diff --git a/static/freebsd/man1/c89.1 b/static/freebsd/man1/c89.1 new file mode 100644 index 00000000..ee1f9fa1 --- /dev/null +++ b/static/freebsd/man1/c89.1 @@ -0,0 +1,182 @@ +.\" +.\" Copyright (c) 1997 Joerg Wunsch +.\" +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR +.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT, +.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +.\" +.Dd September 17, 1997 +.Dt C89 1 +.Os +.Sh NAME +.Nm c89 +.Nd POSIX.2 C language compiler +.Sh SYNOPSIS +.Nm +.Op Fl cEgOs +.Oo Fl D Ar name Ns Oo = Ns Ar value Oc Oc ... +.Oo Fl I Ar directory Oc ... +.Oo Fl L Ar directory Oc ... +.Op Fl o Ar outfile +.Oo Fl U Ar name Oc ... +.Ar operand ... +.Sh DESCRIPTION +This is the name of the C language compiler as required by the +.St -p1003.2 +standard. +.Pp +The +.Nm +compiler accepts the following options: +.Bl -tag -width indent +.It Fl c +Suppress the link-edit phase of the compilation, and do not remove any +object files that are produced. +.It Fl D Ar name Ns Op = Ns Ar value +Define name as if by a C-language +.Ic #define +directive. +If no +.Dq = Ns Ar value +is given, a value of 1 will be used. +Note that in order to request a +translation as specified by +.St -p1003.2 +you need to define +.Dv _POSIX_SOURCE +either in the source or using this option. +The +.Fl D +option has lower precedence than the +.Fl U +option. +That is, if +.Ar name +is used in both a +.Fl U +and a +.Fl D +option, +.Ar name +will be undefined regardless of the order of the options. +The +.Fl D +option may be specified more than once. +.It Fl E +Copy C-language source files to the standard output, expanding all +preprocessor directives; no compilation will be performed. +.It Fl g +Produce symbolic information in the object or executable files. +.It Fl I Ar directory +Change the algorithm for searching for headers whose names are not +absolute pathnames to look in the directory named by the +.Ar directory +pathname before looking in the usual places. +Thus, headers whose +names are enclosed in double-quotes +.Pq Qq +will be searched for first +in the directory of the file with the +.Ic #include +line, then in +directories named in +.Fl I +options, and last in the usual places. +For headers whose names are enclosed in angle brackets +.Pq Aq , +the header +will be searched for only in directories named in +.Fl I +options and then in the usual places. +Directories named in +.Fl I +options shall be searched in the order specified. +The +.Fl I +option may be specified more than once. +.It Fl L Ar directory +Change the algorithm of searching for the libraries named in the +.Fl l +objects to look in the directory named by the +.Ar directory +pathname before looking in the usual places. +Directories named in +.Fl L +options will be searched in the order specified. +The +.Fl L +option may be specified more than once. +.It Fl o Ar outfile +Use the pathname +.Ar outfile , +instead of the default +.Pa a.out , +for the executable file produced. +.It Fl O +Optimize the compilation. +.It Fl s +Produce object and/or executable files from which symbolic and other +information not required for proper execution has been removed +(stripped). +.It Fl U Ar name +Remove any initial definition of +.Ar name . +The +.Fl U +option may be specified more than once. +.El +.Pp +An operand is either in the form of a pathname or the form +.Fl l +library. +At least one operand of the pathname form needs to be specified. +Supported operands are of the form: +.Bl -tag -offset indent -width ".Fl l Ar library" +.It Ar file Ns Pa .c +A C-language source file to be compiled and optionally linked. +The operand must be of this form if the +.Fl c +option is used. +.It Ar file Ns Pa .a +A library of object files, as produced by +.Xr ar 1 , +passed directly to the link editor. +.It Ar file Ns Pa .o +An object file produced by +.Nm Fl c , +and passed directly to the link editor. +.It Fl l Ar library +Search the library named +.Pa lib Ns Ar library Ns Pa .a . +A library will be searched when its name is encountered, so the +placement of a +.Fl l +operand is significant. +.El +.Sh SEE ALSO +.Xr ar 1 , +.Xr c99 1 , +.Xr cc 1 +.Sh STANDARDS +The +.Nm +utility is believed to comply with +.St -p1003.2 . diff --git a/static/freebsd/man1/c99.1 b/static/freebsd/man1/c99.1 new file mode 100644 index 00000000..edd466a3 --- /dev/null +++ b/static/freebsd/man1/c99.1 @@ -0,0 +1,189 @@ +.\" +.\" Copyright (c) 1997 Joerg Wunsch +.\" +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR +.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +.\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT, +.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +.\" +.\" From FreeBSD: src/usr.bin/c89/c89.1,v 1.11 2007/03/10 07:10:01 ru Exp +.\" +.Dd July 13, 2015 +.Dt C99 1 +.Os +.Sh NAME +.Nm c99 +.Nd standard C language compiler +.Sh SYNOPSIS +.Nm +.Op Fl cEgs +.Oo Fl D Ar name Ns Oo = Ns Ar value Oc Oc ... +.Oo Fl I Ar directory Oc ... +.Oo Fl L Ar directory Oc ... +.Op Fl o Ar outfile +.Op Fl O Ar optlevel +.Oo Fl U Ar name Oc ... +.Ar operand ... +.Sh DESCRIPTION +This is the name of the C language compiler as required by the +.St -p1003.1-2001 +standard. +.Pp +The +.Nm +compiler accepts the following options: +.Bl -tag -width indent +.It Fl c +Suppress the link-edit phase of the compilation, and do not remove any +object files that are produced. +.It Fl D Ar name Ns Op = Ns Ar value +Define name as if by a C-language +.Ic #define +directive. +If no +.Dq = Ns Ar value +is given, a value of 1 will be used. +Note that in order to request a +translation as specified by +.St -p1003.1-2001 , +you need to define +.Dv _POSIX_C_SOURCE=200112L +either in the source or using this option. +The +.Fl D +option has lower precedence than the +.Fl U +option. +That is, if +.Ar name +is used in both a +.Fl U +and a +.Fl D +option, +.Ar name +will be undefined regardless of the order of the options. +The +.Fl D +option may be specified more than once. +.It Fl E +Copy C-language source files to the standard output, expanding all +preprocessor directives; no compilation will be performed. +.It Fl g +Produce symbolic information in the object or executable files. +.It Fl I Ar directory +Change the algorithm for searching for headers whose names are not +absolute pathnames to look in the directory named by the +.Ar directory +pathname before looking in the usual places. +Thus, headers whose +names are enclosed in double-quotes +.Pq Qq +will be searched for first +in the directory of the file with the +.Ic #include +line, then in +directories named in +.Fl I +options, and last in the usual places. +For headers whose names are enclosed in angle brackets +.Pq Aq , +the header +will be searched for only in directories named in +.Fl I +options and then in the usual places. +Directories named in +.Fl I +options shall be searched in the order specified. +The +.Fl I +option may be specified more than once. +.It Fl L Ar directory +Change the algorithm of searching for the libraries named in the +.Fl l +objects to look in the directory named by the +.Ar directory +pathname before looking in the usual places. +Directories named in +.Fl L +options will be searched in the order specified. +The +.Fl L +option may be specified more than once. +.It Fl o Ar outfile +Use the pathname +.Ar outfile , +instead of the default +.Pa a.out , +for the executable file produced. +.It Fl O Ar optlevel +If +.Ar optlevel +is zero, disable all optimizations. +Otherwise, enable optimizations at the specified level. +.It Fl s +Produce object and/or executable files from which symbolic and other +information not required for proper execution has been removed +(stripped). +.It Fl U Ar name +Remove any initial definition of +.Ar name . +The +.Fl U +option may be specified more than once. +.El +.Pp +An operand is either in the form of a pathname or the form +.Fl l +library. +At least one operand of the pathname form needs to be specified. +Supported operands are of the form: +.Bl -tag -offset indent -width ".Fl l Ar library" +.It Ar file Ns Pa .c +A C-language source file to be compiled and optionally linked. +The operand must be of this form if the +.Fl c +option is used. +.It Ar file Ns Pa .a +A library of object files, as produced by +.Xr ar 1 , +passed directly to the link editor. +.It Ar file Ns Pa .o +An object file produced by +.Nm Fl c , +and passed directly to the link editor. +.It Fl l Ar library +Search the library named +.Pa lib Ns Ar library Ns Pa .a . +A library will be searched when its name is encountered, so the +placement of a +.Fl l +operand is significant. +.El +.Sh SEE ALSO +.Xr ar 1 , +.Xr c89 1 , +.Xr cc 1 , +.Xr c99 7 +.Sh STANDARDS +The +.Nm +utility interface conforms to +.St -p1003.1-2001 . diff --git a/static/freebsd/man1/calendar.1 b/static/freebsd/man1/calendar.1 new file mode 100644 index 00000000..edb3aca4 --- /dev/null +++ b/static/freebsd/man1/calendar.1 @@ -0,0 +1,372 @@ +.\" Copyright (c) 1989, 1990, 1993 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.Dd December 17, 2023 +.Dt CALENDAR 1 +.Os +.Sh NAME +.Nm calendar +.Nd reminder service +.Sh SYNOPSIS +.Nm +.Op Fl A Ar num +.Op Fl a +.Op Fl B Ar num +.Op Fl D Ar moon|sun +.Op Fl d +.Op Fl F Ar friday +.Op Fl f Ar calendarfile +.Op Fl l Ar longitude +.Oo +.Bk -words +.Fl t Ar dd Ns +.Sm off +.Op . Ar mm Op . Ar year +.Sm on +.Ek +.Oc +.Op Fl U Ar UTC-offset +.Op Fl W Ar num +.Sh DESCRIPTION +The +.Nm +utility checks the current directory for a file named +.Pa calendar +and displays lines that fall into the specified date range. +On the day before a weekend (normally Friday), events for the next +three days are displayed. +.Pp +The following options are available: +.Bl -tag -width Ds +.It Fl A Ar num +Print lines from today and the next +.Ar num +days (forward, future). +.It Fl a +Process the ``calendar'' files for users found in +.Pa /etc/passwd +and mail the results +to them. +This can result in multiple messages for specific files, since +.Pa /etc/passwd +does not require home directories to be unique. +In particular, by default +.Ar root , +.Ar toor +and +.Ar daemon +share the same home directory. +If this directory contains calendar information, +.Nm +will process the file three times. +.Pp +This option requires super-user privileges. +.It Fl B Ar num +Print lines from today and the previous +.Ar num +days (backward, past). +.It Fl D Ar moon|sun +Print UTC offset, longitude and moon or sun information. +.It Fl d +Debug option: print current date information. +.It Fl F Ar friday +Specify which day of the week is ``Friday'' (the day before the +weekend begins). +Default is 5. +.It Fl f Pa calendarfile +Use +.Pa calendarfile +as the default calendar file. +.It Fl l Ar longitude +Perform lunar and solar calculations from this longitude. +If neither longitude nor UTC offset is specified, the calculations will +be based on the difference between UTC time and localtime. +If both are specified, UTC offset overrides longitude. +.It Xo Fl t +.Sm off +.Ar dd +.Op . Ar mm Op . Ar year +.Sm on +.Xc +For test purposes only: set date directly to argument values. +.It Fl U Ar UTC-offset +Perform lunar and solar calculations from this UTC offset. +If neither UTC offset nor longitude is specified, the calculations +will be based on the difference between UTC time and localtime. +If both are specified, UTC offset overrides longitude. +.It Fl W Ar num +Print lines from today and the next +.Ar num +days (forward, future). +Ignore weekends when calculating the number of days. +.El +.Sh FILE FORMAT +To handle calendars in your national code table you can specify +.Dq LANG= +in the calendar file as early as possible. +.Pp +To handle the local name of sequences, you can specify them as: +.Dq SEQUENCE= +in the calendar file as early as possible. +.Pp +The names of the following special days are recognized: +.Bl -tag -width 123456789012345 -compact +.It Easter +Catholic Easter. +.It Paskha +Orthodox Easter. +.It NewMoon +The lunar New Moon. +.It FullMoon +The lunar Full Moon. +.It MarEquinox +The solar equinox in March. +.It JunSolstice +The solar solstice in June. +.It SepEquinox +The solar equinox in September. +.It DecSolstice +The solar solstice in December. +.It ChineseNewYear +The first day of the Chinese year. +.El +These names may be reassigned to their local names via an assignment +like +.Dq Easter=Pasen +in the calendar file. +.Pp +Other lines should begin with a month and day. +They may be entered in almost any format, either numeric or as character +strings. +If the proper locale is set, national month and weekday +names can be used. +A single asterisk (``*'') matches every month. +A day without a month matches that day of every week. +A month without a day matches the first of that month. +Two numbers default to the month followed by the day. +Lines with leading tabs default to the last entered date, allowing +multiple line specifications for a single date. +.Pp +The names of the recognized special days may be followed by a +positive or negative integer, like: +.Dq Easter+3 +or +.Dq Paskha-4 . +.Pp +Weekdays may be followed by ``-4'' ...\& ``+5'' (aliases for +last, first, second, third, fourth) for moving events like +``the last Monday in April''. +.Pp +By convention, dates followed by an asterisk are not fixed, i.e., change +from year to year. +.Pp +Day descriptions start after the first character in the line; +if the line does not contain a character, it is not displayed. +If the first character in the line is a character, it is treated as +a continuation of the previous line. +.Pp +The +.Nm +file is preprocessed by a limited subset of +.Xr cpp 1 +internally, allowing the inclusion of shared files such as +lists of company holidays or meetings. +This limited subset consists of \fB#include\fR, \fB#define\fR, +\fB#undef\fR, \fB#ifdef\fR, \fB#ifndef\fR, \fB#else\fR, \fB#warning\fR, +and \fB#error\fR. +.Pp +Conditions can be nested and the consistency of opening and closing +instructions is checked. +Only the first word after #define is used as the name of the +condition variable being defined. +More than word following #ifdef, #ifndef, or #undef is considered a syntax +error, since names cannot include white-space. +Included files are parsed in a global scope with regard to the condition +variables being defined or tested therein. +All conditional blocks are implicitly closed at the end of a file, +and missing #endif instructions are assumed to be present on implied +succeeding lines. +.Pp +If the shared file is not referenced by a full pathname, +.Nm +searches in the same order of precedence described in +.Sx FILES . +.Pp +Blank lines and text protected by the C comment syntax +.Ql /* ... */ +or +.Ql // +are ignored, but the latter only at the beginning of a line or after +white space to allow for URLs in calendar entries. +.Pp +Some possible calendar entries ( characters highlighted by +\fB\et\fR sequence): +.Bd -unfilled -offset indent +LANG=C +Easter=Ostern + +#include +#include + +6/15\fB\et\fRJune 15 (if ambiguous, will default to month/day). +Jun. 15\fB\et\fRJune 15. +15 June\fB\et\fRJune 15. +Thursday\fB\et\fREvery Thursday. +June\fB\et\fREvery June 1st. +15 *\fB\et\fR15th of every month. +2010/4/15\fB\et\fR15 April 2010 + +May Sun+2\fB\et\fRsecond Sunday in May (Muttertag) +04/SunLast\fB\et\fRlast Sunday in April, +\fB\et\fRsummer time in Europe +Easter\fB\et\fREaster +Ostern-2\fB\et\fRGood Friday (2 days before Easter) +Paskha\fB\et\fROrthodox Easter + +.Ed +.Sh FILES +.Bl -tag -width calendar.christian -compact +.It Pa calendar +file in current directory. +.It Pa ~/.calendar +.Pa calendar +HOME directory. +A chdir is done into this directory if it exists. +.It Pa ~/.calendar/calendar +calendar file to use if no calendar file exists in the current directory. +.It Pa ~/.calendar/nomail +do not send mail if this file exists. +.It Pa /usr/share/calendar +system wide location of calendar files provided as part of the base system. +.It Pa /usr/local/share/calendar +system wide location for calendar files provided by a port or package. +.El +.Pp +The order of precedence in searches for a calendar file is: +current directory, ~/.calendar, /usr/local/share/calendar, /usr/share/calendar. +Files of similar names are ignored in lower precedence locations. +.Pp +The following default calendar files are provided by the +deskutils/calendar-data port. +.Pp +.Bl -tag -width calendar.southafrica -compact +.It Pa calendar.all +File which includes all the default files. +.It Pa calendar.australia +Calendar of events in Australia. +.It Pa calendar.birthday +Births and deaths of famous (and not-so-famous) people. +.It Pa calendar.christian +Christian holidays. +This calendar should be updated yearly by the local system administrator +so that roving holidays are set correctly for the current year. +.It Pa calendar.computer +Days of special significance to computer people. +.It Pa calendar.croatian +Calendar of events in Croatia. +.It Pa calendar.dutch +Calendar of events in the Netherlands. +.It Pa calendar.freebsd +Birthdays of +.Fx +committers. +.It Pa calendar.french +Calendar of events in France. +.It Pa calendar.german +Calendar of events in Germany. +.It Pa calendar.history +Everything else, mostly U.S.\& historical events. +.It Pa calendar.holiday +Other holidays, including the not-well-known, obscure, and +.Em really +obscure. +.It Pa calendar.judaic +Jewish holidays. +The entries for this calendar have been obtained from the +deskutils/hebcal port. +.It Pa calendar.music +Musical events, births, and deaths. +Strongly oriented toward rock 'n' roll. +.It Pa calendar.newzealand +Calendar of events in New Zealand. +.It Pa calendar.russian +Russian calendar. +.It Pa calendar.southafrica +Calendar of events in South Africa. +.It Pa calendar.usholiday +U.S.\& holidays. +This calendar should be updated yearly by the local system administrator +so that roving holidays are set correctly for the current year. +.It Pa calendar.world +Includes all calendar files except for national files. +.El +.Sh COMPATIBILITY +The +.Nm +program previously selected lines which had the correct date anywhere +in the line. +This is no longer true, the date is only recognized when it occurs +at the beginning of a line. +.Sh SEE ALSO +.Xr at 1 , +.Xr mail 1 , +.Xr cron 8 +.Sh HISTORY +A +.Nm +command appeared in +.At v7 . +.Sh NOTES +Chinese New Year is calculated at 120 degrees east of Greenwich, +which roughly corresponds with the east coast of China. +For people west of China, this might result that the start of Chinese +New Year and the day of the related new moon might differ. +.Pp +The phases of the moon and the longitude of the sun are calculated +against the local position which corresponds with 30 degrees times +the time-difference towards Greenwich. +.Pp +The new and full moons are happening on the day indicated: They +might happen in the time period in the early night or in the late +evening. +It does not indicate that they are starting in the night on that date. +.Pp +Because of minor differences between the output of the formulas +used and other sources on the Internet, Druids and Werewolves should +double-check the start and end time of solar and lunar events. +.Sh BUGS +The +.Nm +does only recognise the cpp directives #include, #define, #ifdef, +#ifndef and #else. +It supports nested conditions, but does not perform any validation +on the correct use and nesting of conditions. +#endif without prior #ifdef or #define is ignored and #else outside +a conditional section skips input lines up to the next #endif. +.Pp +There is no possibility to properly specify the local position +needed for solar and lunar calculations. diff --git a/static/freebsd/man1/cap_mkdb.1 b/static/freebsd/man1/cap_mkdb.1 new file mode 100644 index 00000000..8acb8582 --- /dev/null +++ b/static/freebsd/man1/cap_mkdb.1 @@ -0,0 +1,102 @@ +.\" Copyright (c) 1992, 1993 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.Dd February 22, 2005 +.Dt CAP_MKDB 1 +.Os +.Sh NAME +.Nm cap_mkdb +.Nd create capability database +.Sh SYNOPSIS +.Nm +.Op Fl b | l +.Op Fl v +.Op Fl f Ar outfile +.Ar +.Sh DESCRIPTION +The +.Nm +utility builds a hashed database out of the +.Xr getcap 3 +logical database constructed by the concatenation of the specified +files. +.Pp +The database is named by the basename of the first file argument and +the string +.Dq .db . +The +.Xr getcap 3 +routines can access the database in this form much more quickly +than they can the original text file(s). +.Pp +The ``tc'' capabilities of the records are expanded before the +record is stored into the database. +.Pp +The following options are available: +.Bl -tag -width indent +.It Fl b +Use big-endian byte order for database metadata. +.It Fl f Ar outfile +Specify a different database basename. +.It Fl l +Use little-endian byte order for database metadata. +.It Fl v +Print out the number of capability records in the database. +.El +.Pp +The +.Fl b +and +.Fl l +flags are mutually exclusive. +The default byte ordering is the current host order. +.Sh FORMAT +Each record is stored in the database using two different types of keys. +.Pp +The first type is a key which consists of the first capability of +the record (not including the trailing colon (``:'')) with a data +field consisting of a special byte followed by the rest of the record. +The special byte is either a 0 or 1, where a 0 means that the record +is okay, and a 1 means that there was a ``tc'' capability in the record +that could not be expanded. +.Pp +The second type is a key which consists of one of the names from the +first capability of the record with a data field consisting a special +byte followed by the first capability of the record. +The special byte is a 2. +.Pp +In normal operation names are looked up in the database, resulting +in a key/data pair of the second type. +The data field of this key/data pair is used to look up a key/data +pair of the first type which has the real data associated with the +name. +.Sh EXIT STATUS +.Ex -std +.Sh SEE ALSO +.Xr dbopen 3 , +.Xr getcap 3 , +.Xr termcap 5 diff --git a/static/freebsd/man1/cat.1 b/static/freebsd/man1/cat.1 new file mode 100644 index 00000000..59e0dff8 --- /dev/null +++ b/static/freebsd/man1/cat.1 @@ -0,0 +1,211 @@ +.\"- +.\" Copyright (c) 1989, 1990, 1993 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" This code is derived from software contributed to Berkeley by +.\" the Institute of Electrical and Electronics Engineers, Inc. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.Dd January 29, 2013 +.Dt CAT 1 +.Os +.Sh NAME +.Nm cat +.Nd concatenate and print files +.Sh SYNOPSIS +.Nm +.Op Fl belnstuv +.Op Ar +.Sh DESCRIPTION +The +.Nm +utility reads files sequentially, writing them to the standard output. +The +.Ar file +operands are processed in command-line order. +If +.Ar file +is a single dash +.Pq Sq Fl +or absent, +.Nm +reads from the standard input. +If +.Ar file +is a +.Ux +domain socket, +.Nm +connects to it and then reads it until +.Dv EOF . +This complements the +.Ux +domain binding capability available in +.Xr inetd 8 . +.Pp +The options are as follows: +.Bl -tag -width indent +.It Fl b +Number the non-blank output lines, starting at 1. +.It Fl e +Display non-printing characters (see the +.Fl v +option), and display a dollar sign +.Pq Ql \&$ +at the end of each line. +.It Fl l +Set an exclusive advisory lock on the standard output file descriptor. +This lock is set using +.Xr fcntl 2 +with the +.Dv F_SETLKW +command. +If the output file is already locked, +.Nm +will block until the lock is acquired. +.It Fl n +Number the output lines, starting at 1. +.It Fl s +Squeeze multiple adjacent empty lines, causing the output to be +single spaced. +.It Fl t +Display non-printing characters (see the +.Fl v +option), and display tab characters as +.Ql ^I . +.It Fl u +Disable output buffering. +.It Fl v +Display non-printing characters so they are visible. +Control characters print as +.Ql ^X +for control-X; the delete +character (octal 0177) prints as +.Ql ^? . +.Pf Non- Tn ASCII +characters (with the high bit set) are printed as +.Ql M- +(for meta) followed by the character for the low 7 bits. +.El +.Sh EXIT STATUS +.Ex -std +.Sh EXAMPLES +The command: +.Pp +.Dl "cat file1" +.Pp +will print the contents of +.Pa file1 +to the standard output. +.Pp +The command: +.Pp +.Dl "cat file1 file2 > file3" +.Pp +will sequentially print the contents of +.Pa file1 +and +.Pa file2 +to the file +.Pa file3 , +truncating +.Pa file3 +if it already exists. +See the manual page for your shell (e.g., +.Xr sh 1 ) +for more information on redirection. +.Pp +The command: +.Pp +.Dl "cat file1 - file2 - file3" +.Pp +will print the contents of +.Pa file1 , +print data it receives from the standard input until it receives an +.Dv EOF +.Pq Sq ^D +character, print the contents of +.Pa file2 , +read and output contents of the standard input again, then finally output +the contents of +.Pa file3 . +Note that if the standard input refers to a file, the second dash +on the command-line would have no effect, since the entire contents of the file +would have already been read and printed by +.Nm +when it encountered the first +.Sq Fl +operand. +.Sh SEE ALSO +.Xr head 1 , +.Xr more 1 , +.Xr pr 1 , +.Xr sh 1 , +.Xr tail 1 , +.Xr vis 1 , +.Xr zcat 1 , +.Xr fcntl 2 , +.Xr setbuf 3 +.Rs +.%A Rob Pike +.%T "UNIX Style, or cat -v Considered Harmful" +.%J "USENIX Summer Conference Proceedings" +.%D 1983 +.Re +.Sh STANDARDS +The +.Nm +utility is compliant with the +.St -p1003.2-92 +specification. +.Pp +The flags +.Op Fl belnstv +are extensions to the specification. +.Sh HISTORY +A +.Nm +utility appeared in +.At v1 . +.An Dennis Ritchie +designed and wrote the first man page. +It appears to have been for +.Nm . +.Sh BUGS +Because of the shell language mechanism used to perform output +redirection, the command +.Dq Li cat file1 file2 > file1 +will cause the original data in +.Pa file1 +to be destroyed! +.Pp +The +.Nm +utility does not recognize multibyte characters when the +.Fl t +or +.Fl v +option is in effect. diff --git a/static/freebsd/man1/cdcontrol.1 b/static/freebsd/man1/cdcontrol.1 new file mode 100644 index 00000000..8f451dc4 --- /dev/null +++ b/static/freebsd/man1/cdcontrol.1 @@ -0,0 +1,213 @@ +.\" +.Dd August 25, 2016 +.Dt CDCONTROL 1 +.Os +.Sh NAME +.Nm cdcontrol +.Nd compact disc control utility +.Sh SYNOPSIS +.Nm +.Op Fl sv +.Op Fl f Ar device +.Op Ar command ... +.Sh DESCRIPTION +The +.Nm +utility is a program to control audio features of a CD drive. +The device is a name such +as +.Pa cd0 . +.Pp +If no +.Ar command +is given, then +.Nm +enters an interactive mode, reading commands from the standard input. +.Pp +The following options are available: +.Bl -tag -width indent +.It Fl s +Silent mode. +Do not print table headers and human readable comments. +.It Fl v +Verbose mode. +Print as much information as possible. +.It Fl f Ar device +Specify a device, such as +.Pa /dev/cd0 . +Both absolute path and relative to +.Pa /dev +filename are possible. +The +.Fl f +option overrides +.Ev CDROM . +If neither +.Ev CDROM +nor the +.Fl f +option is specified, +.Nm +tries opening first +.Pa /dev/cdrom , +then +.Pa /dev/cd0 . +.El +.Pp +The available commands are listed below. +Only as many +characters as are required to uniquely identify a command +need be specified. +The word +.Ic play +can be omitted or the characters +.Ic + +and +.Ic - +can be used in the +place of +.Ic next +and +.Ic prev . +.Bl -tag -width indent +.It Ic play Ar first_track Op Ar last_track +Play from track +.Ar first_track +to track +.Ar last_track . +The first track has number 1. +Can be omitted in all cases. +.It Xo +.Ic play +.Ar start_m : Ns Ar start_s . Ns Ar start_f +.Op Ar end_m : Ns Ar end_s . Ns Ar end_f +.Xc +Play from the absolute address +(MSF) defined by +.Ar start_m +in minutes, +.Ar start_s , +in seconds and +.Ar start_f +(frame number) to the absolute address defined by +.Ar end_m +in minutes, +.Ar end_s , +in seconds and +.Ar end_f +(frame number). +Minutes are in the range 0-99. +Seconds are in the range 0-59. +Frame numbers are in the range 0-74. +.It Ic play Op # Ns Ar start_block Op Ar length +Play starting from the logical block +.Ar start_block +using +.Ar length +logical blocks. +.It Ic next Op Ar tracks +Skip forward a number of tracks (default 1). +.It Ic prev Op Ar tracks +Skip backward a number of tracks (default 1). +.It Ic pause +Stop playing. +Do not stop the disc. +.It Ic resume +Resume playing. +Used after the +.Ic pause +command. +.It Ic stop +Stop the disc. +.It Ic eject +Eject the disc. +.It Ic close +Inject the disc. +.It Ic volume +Same as +.Em status volume +command. +.It Ic volume Ar level +Set the volume of both channels to +.Ar level . +Allowed values are in the range 0-255. +.It Ic volume Ar left_channel right_channel +Set the volume of left channel to +.Ar left_channel +and the volume of right channel to +.Ar right_channel . +Allowed values are in the range 0-255. +.It Ic volume Cm mute +Turn the sound off. +.It Ic volume Cm mono +Set the mono mode. +.It Ic volume Cm stereo +Set the stereo mode. +.It Ic volume Cm left +Play the left subtrack on both left and right channels. +.It Ic volume Cm right +Play the right subtrack on both left and right channels. +.It Ic info +Print the table of contents. +.It Ic status Op Cm audio | media | volume +Print the information about the disc: +.Pp +.Bl -tag -width ".Cm volume" -compact +.It Cm audio +the current playing status and position +.It Cm media +the current media catalog status +.It Cm volume +the current values of the volume for left and right channels. +.El +.It Ic cdid +Display the serial number of the CD using the method used by the +.Tn CDDB +project +.Pq Pa http://www.cddb.org/ . +.It Ic help +Print the list of available commands. +.It Ic debug Cm on +Enable the debugging mode of the CD device driver. +.It Ic debug Cm off +Disable the driver debugging mode. +.It Ic reset +Perform the hardware reset of the device. +.It Ic set Cm msf +Set minute-second-frame ioctl mode (default). +.It Ic set Cm lba +Set LBA ioctl mode. +.It Ic speed Ar s +Set the highest speed that the drive should use for reading data. +The units are multiples of a single speed CDROM (150 KB/s). +Specify +.Dq Li max +to use the drive's fastest speed. +.It Ic quit +Quit the program. +.El +.Sh ENVIRONMENT +The following environment variables affect the execution of +.Nm : +.Bl -tag -width ".Ev CD_DRIVE" +.It Ev CDROM +The CD device to use, if one is not specified with the +.Fl f +option. +.It Ev CDPLAY , CD_DRIVE , DISC , MUSIC_CD +These variables have been deprecated in favour of +.Ev CDROM . +.El +.Sh FILES +.Bl -tag -width ".Pa /dev/cd0" -compact +.It Pa /dev/cd0 +.El +.Sh HISTORY +The +.Nm +command appeared in +.Fx 2.1 . +.Sh AUTHORS +.An Jean-Marc Zucconi +.An Andrey A. Chernov +.An Serge V. Vakulenko diff --git a/static/freebsd/man1/chflags.1 b/static/freebsd/man1/chflags.1 new file mode 100644 index 00000000..31a4211f --- /dev/null +++ b/static/freebsd/man1/chflags.1 @@ -0,0 +1,262 @@ +.\"- +.\" Copyright (c) 1989, 1990, 1993, 1994 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" This code is derived from software contributed to Berkeley by +.\" the Institute of Electrical and Electronics Engineers, Inc. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.Dd June 12, 2018 +.Dt CHFLAGS 1 +.Os +.Sh NAME +.Nm chflags +.Nd change file flags +.Sh SYNOPSIS +.Nm +.Op Fl fhvx +.Oo +.Fl R +.Op Fl H | Fl L | Fl P +.Oc +.Ar flags +.Ar +.Sh DESCRIPTION +The +.Nm +utility modifies the file flags of the listed files +as specified by the +.Ar flags +operand. +.Pp +The options are as follows: +.Bl -tag -width indent +.It Fl f +Do not display a diagnostic message if +.Nm +could not modify the flags for +.Va file , +nor modify the exit status to reflect such failures. +.It Fl H +If the +.Fl R +option is specified, symbolic links on the command line are followed +and hence unaffected by the command. +(Symbolic links encountered during traversal are not followed.) +.It Fl h +If the +.Ar file +is a symbolic link, +change the file flags of the link itself rather than the file to which it points. +.It Fl L +If the +.Fl R +option is specified, all symbolic links are followed. +.It Fl P +If the +.Fl R +option is specified, no symbolic links are followed. +This is the default. +.It Fl R +Change the file flags of the file hierarchies rooted in the files, +instead of just the files themselves. +Beware of unintentionally matching the +.Dq Pa ".." +hard link to the parent directory when using wildcards like +.Dq Li ".*" . +.It Fl v +Cause +.Nm +to be verbose, showing filenames as the flags are modified. +If the +.Fl v +option is specified more than once, the old and new flags of the file +will also be printed, in octal notation. +.It Fl x +Do not cross mount points. +.El +.Pp +The flags are specified as an octal number or a comma separated list +of keywords. +The following keywords are currently defined: +.Bl -tag -offset indent -width ".Cm opaque" +.It Cm arch , archived +set the archived flag (super-user only) +.It Cm nodump +set the nodump flag (owner or super-user only) +.It Cm opaque +set the opaque flag (owner or super-user only) +.It Cm sappnd , sappend +set the system append-only flag (super-user only) +.It Cm schg , schange , simmutable +set the system immutable flag (super-user only) +.It Cm snapshot +set the snapshot flag (filesystems do not allow changing this flag) +.It Cm sunlnk , sunlink +set the system undeletable flag (super-user only) +.It Cm uappnd , uappend +set the user append-only flag (owner or super-user only) +.It Cm uarch , uarchive +set the archive flag (owner or super-user only) +.It Cm uchg , uchange , uimmutable +set the user immutable flag (owner or super-user only) +.It Cm uhidden , hidden +set the hidden file attribute (owner or super-user only) +.It Cm uoffline , offline +set the offline file attribute (owner or super-user only) +.It Cm urdonly , rdonly , readonly +set the DOS, Windows and CIFS readonly flag (owner or super-user only) +.It Cm usparse , sparse +set the sparse file attribute (owner or super-user only) +.It Cm usystem , system +set the DOS, Windows and CIFS system flag (owner or super-user only) +.It Cm ureparse , reparse +set the Windows reparse point file attribute (owner or super-user only) +.It Cm uunlnk , uunlink +set the user undeletable flag (owner or super-user only) +.El +.Pp +Putting the letters +.Dq Ar no +before or removing the letters +.Dq Ar no +from a keyword causes the flag to be cleared. +For example: +.Pp +.Bl -tag -offset indent -width "nouchg" -compact +.It Cm nouchg +clear the user immutable flag (owner or super-user only) +.It Cm dump +clear the nodump flag (owner or super-user only) +.El +.Pp +A few of the octal values include: +.Bl -tag -offset indent -width ".Li 10" +.It Li 0 +Clear all file flags. +.It Li 1 +Translates to the +.Cm nodump +keyword. +.It Li 2 +Translates to the +.Cm uchg +keyword. +.It Li 3 +Translates to the +.Cm uchg , nodump +keywords. +.It Li 4 +Translates to the +.Cm uappnd +keyword. +.It Li 10 +Translates to the +.Cm opaque +keyword. +.It Li 20 +translates to the +.Cm uunlnk +keyword. +.El +.Pp +Other combinations of keywords may be placed by using +the octets assigned; however, these are the most notable. +.Pp +Unless the +.Fl H , +.Fl L , +or +.Fl h +options are given, +.Nm +on a symbolic link always succeeds and has no effect. +The +.Fl H , +.Fl L +and +.Fl P +options are ignored unless the +.Fl R +option is specified. +In addition, these options override each other and the +command's actions are determined by the last one specified. +.Pp +You can use "ls -lo" to see the flags of existing files. +.Pp +Note that the ability to change certain flags is dependent +on the current kernel +.Va securelevel +setting. +See +.Xr security 7 +for more information on this setting. +.Pp +If +.Nm +receives a +.Dv SIGINFO +signal (see the +.Cm status +argument for +.Xr stty 1 ) , +then the current filename as well as the old and new flags are displayed. +.Sh EXIT STATUS +.Ex -std +.Sh EXAMPLES +Recursively clear all flags on files and directories contained within the +.Fa foobar +directory hierarchy: +.Dl Nm Fl R Ar 0 Ar foobar +.Sh SEE ALSO +.Xr ls 1 , +.Xr chflags 2 , +.Xr stat 2 , +.Xr fts 3 , +.Xr security 7 , +.Xr symlink 7 +.Sh HISTORY +The +.Nm +command first appeared in +.Bx 4.4 . +.Sh BUGS +Only a limited number of utilities are +.Nm +aware. +Some of these tools include +.Xr ls 1 , +.Xr cp 1 , +.Xr find 1 , +.Xr install 1 , +.Xr dump 8 , +and +.Xr restore 8 . +In particular a tool which is not currently +.Nm +aware is the +.Xr pax 1 +utility. diff --git a/static/freebsd/man1/chgrp.1 b/static/freebsd/man1/chgrp.1 new file mode 100644 index 00000000..f05c81e4 --- /dev/null +++ b/static/freebsd/man1/chgrp.1 @@ -0,0 +1,158 @@ +.\" Copyright (c) 1983, 1990, 1993, 1994 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" This code is derived from software contributed to Berkeley by +.\" the Institute of Electrical and Electronics Engineers, Inc. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.Dd January 7, 2017 +.Dt CHGRP 1 +.Os +.Sh NAME +.Nm chgrp +.Nd change group +.Sh SYNOPSIS +.Nm +.Op Fl fhvx +.Oo +.Fl R +.Op Fl H | Fl L | Fl P +.Oc +.Ar group +.Ar +.Sh DESCRIPTION +The +.Nm +utility sets the group ID of the file named by each +.Ar file +operand to the +.Ar group +ID specified by the group operand. +.Pp +The following options are available: +.Bl -tag -width indent +.It Fl H +If the +.Fl R +option is specified, symbolic links on the command line are followed +and hence unaffected by the command. +(Symbolic links encountered during traversal are not followed.) +.It Fl L +If the +.Fl R +option is specified, all symbolic links are followed. +.It Fl P +If the +.Fl R +option is specified, no symbolic links are followed. +This is the default. +.It Fl R +Change the group ID of the file hierarchies rooted in the files, +instead of just the files themselves. +Beware of unintentionally matching the +.Dq Pa ".." +hard link to the parent directory when using wildcards like +.Dq Li ".*" . +.It Fl f +The force option ignores errors, except for usage errors and does not +query about strange modes (unless the user does not have proper permissions). +.It Fl h +If the file is a symbolic link, the group ID of the link itself is changed +rather than the file that is pointed to. +.It Fl v +Cause +.Nm +to be verbose, showing files as the group is modified. +If the +.Fl v +flag is specified more than once, +.Nm +will print the filename, followed by the old and new numeric group ID. +.It Fl x +File system mount points are not traversed. +.El +.Pp +The +.Fl H , +.Fl L +and +.Fl P +options are ignored unless the +.Fl R +option is specified. +In addition, these options override each other and the +command's actions are determined by the last one specified. +.Pp +The +.Ar group +operand can be either a group name from the group database, +or a numeric group ID. +If a group name is also a numeric group ID, the operand is used as a +group name. +.Pp +The user invoking +.Nm +must belong to the specified group and be the owner of the file, +or be the super-user. +.Pp +If +.Nm +receives a +.Dv SIGINFO +signal (see the +.Cm status +argument for +.Xr stty 1 ) , +then the current filename as well as the old and new group names are +displayed. +.Sh FILES +.Bl -tag -width /etc/group -compact +.It Pa /etc/group +group ID file +.El +.Sh EXIT STATUS +.Ex -std +.Sh COMPATIBILITY +In previous versions of this system, symbolic links did not have groups. +.Pp +The +.Fl v +and +.Fl x +options are non-standard and their use in scripts is not recommended. +.Sh SEE ALSO +.Xr chown 2 , +.Xr fts 3 , +.Xr group 5 , +.Xr passwd 5 , +.Xr symlink 7 , +.Xr chown 8 +.Sh STANDARDS +The +.Nm +utility is expected to be +.St -p1003.2 +compatible. diff --git a/static/freebsd/man1/chio.1 b/static/freebsd/man1/chio.1 new file mode 100644 index 00000000..e455ee27 --- /dev/null +++ b/static/freebsd/man1/chio.1 @@ -0,0 +1,308 @@ +.\" $NetBSD: chio.1,v 1.4 1997/10/02 00:41:25 hubertf Exp $ +.\"- +.\" Copyright (c) 1996 Jason R. Thorpe +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgements: +.\" This product includes software developed by Jason R. Thorpe +.\" for And Communications, http://www.and.com/ +.\" 4. The name of the author may not be used to endorse or promote products +.\" derived from this software without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +.\" BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +.\" AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +.\" OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.Dd October 5, 2016 +.Dt CHIO 1 +.Os +.Sh NAME +.Nm chio +.Nd medium changer control utility +.Sh SYNOPSIS +.Nm +.Op Fl f Ar changer +.Ar command +.Op Fl +.Ar arg1 +.Ar arg2 +.Op Ar arg3 Op ... +.Sh DESCRIPTION +The +.Nm +utility is used to control the operation of medium changers, such as those +found in tape and optical disk jukeboxes. +.Pp +The options are as follows: +.Bl -tag -width indent +.It Fl f Ar changer +Use the device +.Ar changer +rather than the default device +.Pa /dev/ch0 . +.El +.Pp +A medium changer apparatus is made up of +.Em elements . +There are five element types: +.Em picker +(medium transport), +.Em slot +(storage), +.Em portal +(import/export), +.Em drive +(data transfer), and +.Em voltag +(select by volume identifier). +The +.Em voltag +pseudo-element type allows the selection of tapes by their volume tag +(typically a barcode on the tape). +.Pp +In this command description, the shorthand +.Em ET +will be used to represent an element type, and +.Em EU +will be used to represent an element unit. +For example, to represent the first robotic arm in the changer, the +.Em ET +would be +.Dq picker +and the +.Em EU +would be +.Dq 0 . +.Sh SUPPORTED COMMANDS +.Bl -tag -width indent +.It Ic move Xo +.Ar +.Op Cm inv +.Xc +Move the media unit from +.Ar +to +.Ar . +If the optional modifier +.Cm inv +is specified, the media unit will be inverted before insertion. +.It Ic exchange Xo +.Ar +.Op Ar +.Op Cm inv1 +.Op Cm inv2 +.Xc +Perform a media unit exchange operation. +The media unit in +.Ar +is moved to +.Ar +and the media unit previously in +.Ar +is moved to +.Ar . +In the case of a simple exchange, +.Ar +is omitted and the values +.Ar +are used in their place. +The optional modifiers +.Cm inv1 +and +.Cm inv2 +specify whether the media units are to be inverted before insertion into +.Ar +and +.Ar +respectively. +.Pp +Note that not all medium changers support the +.Ic exchange +operation; the changer must have multiple free pickers or emulate +multiple free pickers with transient storage. +.It Ic return Xo +.Ar +.Xc +Return the media unit to its source element. +This command will query the status of the specified media unit, and +will move it to the element specified in its source attribute. +This is a convenient way to return media from a drive or portal +to its previous element in the changer. +.It Ic position Xo +.Ar +.Op Cm inv +.Xc +Position the picker in front of the element described by +.Ar . +If the optional modifier +.Cm inv +is specified, the media unit will be inverted before insertion. +.Pp +Note that not all changers behave as expected when issued this command. +.It Ic params +Report the number of slots, drives, pickers, and portals in the changer, +and which picker unit the changer is currently configured to use. +.It Ic getpicker +Report which picker unit the changer is currently configured to use. +.It Ic setpicker Xo +.Ar +.Xc +Configure the changer to use picker +.Ar . +.It Ic ielem Xo +.Op Ar +.Xc +Perform an +.Em INITIALIZE ELEMENT STATUS +operation on the changer. +The optional +.Ar +parameter may be given to specify a timeout in seconds for the +operations. +This may be used if the operation takes unusually long +because of buggy firmware or the like. +.It Ic voltag Xo +.Op Fl fca +.Ar +.Ar +.Op Ar