2025-6-28 Version 2.2

    * improve: updated and refined nsysctl.8 manual page
    * change: -G no longer prints redundant flags: RW, CAPRW, RDTUN, RWTUN
    * rename: -V (print parameters without values with -a) to -u, because:
    * add: new -V to print objects with the VNET flag; sysctl(8) compatibility
    * rename: -l (print label) to -L, because:
    * add: new -l to print value size; sysctl(8) compatibility
    * add: new -J to print objects with the PRISON flag; sysctl(8) compatibility
    * delete: -m (now -S) and -y (now -O) from the manual; obsolete since 2.0
    * add: -j <jailname> to attach to a jail

2022-12-18 Version 2.1.2

    * fix: -O (to reproduce: nsysctl -O net.inet.ip.portrange)
    * fix: machdep.efi_map (md_virt) output like sysctl
    * fix: -G deleting CTLMASK_SECURE

2022-09-19 Version 2.1.1

    * fix: double free() segmentation fault with BASE clang 14.0.5

2022-01-02 Version 2.1

    * add: opt -z to toggle numeric value

2021-03-02 Version 2.0

    * change: sysctl library sysctlmibinfo -> sysctlmibinfo2
    * delete: undocumented interface (kern/kern_sysctl.c) support
    * delete: sysctlinfo_helpers.h/c, use sysctlinfo via sysctlmibinfo2
    * improve: manual DESCRIPTION
    * add: libnv(9) Format
    * add: opt -k, print SKIP with -a
    * add: opt -H, print object handler "Defined/Undefined"
    * add: opaque S,pagesizes for hw.pagesizes
    * change: opt -pg [FLAGS] -> [FLAGS-RAW]
    * change: opt -g with xml <flags> -> <flags-raw>
    * change: opt -pG [TRUE-FLAGS] -> [FLAGS]
    * change: opt -G with xml <flags-true> -> <flags>
    * change: opt -m -> -S
    * fix: opt -S only with -a
    * change: opt -y -> -O
    * change: opt -pO [ID] -> [OID]
    * change: opt -O xml
        <id> <level1>X</level1> <level2>Y</level2> </id> ->
        <OID>X.Y</OID>
    * change: opt -e <sep> -> -s <sep>
    * add: opt -e, like sysctl
    * change: opt -pF [FORMAT-STRING] -> [FORMAT]
    * change: opt -v show value -> show version
    * change: show value by default like sysctl
    * change: opt -V with -a, show object with/without a value
    * add: opt -n hide name, like sysctl
    * change: -N show name -> hide value
    * change: show name by default like sysctl
    * delete: -A, in compatibility like sysctl
    * delete: -X, in compatibility like sysctl
    * change: opt -D = -dFGHlOt

2019-10-5 Version 1.2.1

    * delete: CTL_SYSCTLMIB, CTL_STSCTL is in sys/sysctl.h
    * fix: man SYNOPSIS and usage() like style(9)

2019-9-14 Version 1.2

    * add: 'sysctlinfo' kernel interface support:
    * add: use sysctlinfo.ko if loaded else use the kernel interface
    * add: xo_errx if OID > CTL_MAXNAME - 2 and sysctlinfo is not loaded
    * fix: show nodes up to CTL_MAXNAME levels
    * fix: show the right value of the nodes without the last name
       (e.g., "security.jail.param.allow.mount.")
    * fix: show subtrees without leaves (all nodes are CTLTYPE_NODE)

2019-7-1 Version 1.1

    * fix: -B
    * fix: -h
    * fix: -G with "AND" flags
    * fix: -x with -y and -g
    * fix: vflag and Vflag efficiency
    * fix: do not show <children> of a hidden node
    * fix: mutually exclusive options [V|v] and [b|o|x]
    * fix: set a [u]int64_t value
    * fix: -n is ignored without error
    * delete: macro to get a value
    * delete: macro to set a value
    * change: -p [FORMAT STRING] -> [FORMAT-STRING]
    * add: kern.conftxt as special_value
    * add: input for a numeric value in hex format

2019-6-1 Version 1.0

    * add: setting a kelvin value
    * add: setting a numeric value with -B option
    * delete: useless strdup() to parse input
    * change: option -S -> -m

2019-5-21 Version 0.9.1

    * fix: opaque S,efi_map_header (e.g. machdep.efi_map)
    * delete: bsd.prog.mk (Makefile)

2019-4-29 Version 0.9

    * change: option -m -> -F
    * change: option -F -> -g
    * add: option -G
    * add: setting array ( name=value,value,value... )
    * add: xo_warn and xo_err messages
    * add: opaque S,input_id (e.g. kern.evdev.input.0.id)
    * fix: -x with numeric array
    * fix: -x if num == 0 print 00... else 0x... (sysctl compatibility)
    * fix: don't show "null" label

2019-4-8 Version 0.2

    * fix: debug.fail_point.test_trigger_fail_point with -a (sysctl problem)
    * fix: hw.dri.0.bufs with -a (sysctl problem)
    * fix: size change with double sysctl() call,
        (e.g, kern.file, hw.dri.0.vblank and hw.dri.0.info.i915_drpc_info)
    * fix: libxo=xml -aD segmentation fault, fixed by
        xo_set_flags(NULL, XOF_FLUSH) but new problems:
    * fix: problem-xof-flush.c https://bugs.freebsd.org/236935
    * fix: problem-xo-huge-string.c https://bugs.freebsd.org/236937
    * delete: oid-only-value.txt (PR commit)
    * delete: problem-xo-huge-string.c (PR commit)
    * delete: problem-xof-flush.c (PR commit)

2019-3-26 Version 0.1.1

    * fix: headers in opaque.c for no i386/amd64
    * delete: sysctlmibinfo.h/c (dynamic linking)

2019-2-19 Version 0.1

    * add: nsysctl.c
    * add: special_value.c
    * add: opaque.c
    * add: comparetest.sh
    * add: manual page nsysctl.8
    * add: FreeBSD port
    * fix: libxo=xml debug.witness.fullgraph, segmentation fault
    * fix: libxo=text debug.fail_point (utf8)
