[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/taxy 1b2741a 1/2: Meta: Packaging taxy-magit-section se
From: |
ELPA Syncer |
Subject: |
[elpa] externals/taxy 1b2741a 1/2: Meta: Packaging taxy-magit-section separately |
Date: |
Tue, 5 Oct 2021 02:57:29 -0400 (EDT) |
branch: externals/taxy
commit 1b2741a889f10e0e5d90b3984b814c1f2c1e567b
Author: Adam Porter <adam@alphapapa.net>
Commit: Adam Porter <adam@alphapapa.net>
Meta: Packaging taxy-magit-section separately
---
README.org | 8 +-
taxy-magit-section.el | 392 --------------------------------------------------
taxy.info | 203 ++++++++++++++------------
3 files changed, 114 insertions(+), 489 deletions(-)
diff --git a/README.org b/README.org
index 0440ef2..d69f67d 100644
--- a/README.org
+++ b/README.org
@@ -861,7 +861,7 @@ And this produces:
** Magit section
-Showing a =taxy= with =magit-section= is very easy:
+Showing a =taxy= with =magit-section= is easy using the library
[[https://github.com/alphapapa/taxy.el/tree/package/taxy-magit-section][taxy-magit-section]],
which is packaged separately:
#+BEGIN_SRC elisp :exports code
(require 'taxy-magit-section)
@@ -877,8 +877,6 @@ That shows a buffer like this:
[[images/magit-section-numbery.png]]
-Note that while =taxy-magit-section.el= is installed with the =taxy= package,
the =magit-section= package is not automatically installed with it.
-
** Reference
In Emacs 28+, see also =M-x shortdoc-display-group RET taxy RET=.
@@ -935,7 +933,9 @@ In Emacs 28+, see also =M-x shortdoc-display-group RET taxy
RET=.
** 0.9-pre
-Nothing new yet.
+*** Changes
+
++ Library =taxy-magit-section= is now
[[https://elpa.gnu.org/packages/taxy-magit-section.html][packaged separately]]
and maintained in a
[[https://github.com/alphapapa/taxy.el/tree/package/taxy-magit-section][separate
branch]].
** 0.8
diff --git a/taxy-magit-section.el b/taxy-magit-section.el
deleted file mode 100644
index 7b8814b..0000000
--- a/taxy-magit-section.el
+++ /dev/null
@@ -1,392 +0,0 @@
-;;; taxy-magit-section.el --- View Taxy structs in a Magit Section buffer -*-
lexical-binding: t; -*-
-
-;; Copyright (C) 2021 Free Software Foundation, Inc.
-
-;; Author: Adam Porter <adam@alphapapa.net>
-;; Maintainer: Adam Porter <adam@alphapapa.net>
-;; URL: https://github.com/alphapapa/taxy.el
-;; Version: 0.9-pre
-;; Package-Requires: ((emacs "26.3") (magit-section "3.2.1"))
-;; Keywords: lisp
-
-;; This program is free software; you can redistribute it and/or modify
-;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation, either version 3 of the License, or
-;; (at your option) any later version.
-
-;; This program is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-;; GNU General Public License for more details.
-
-;; You should have received a copy of the GNU General Public License
-;; along with this program. If not, see <https://www.gnu.org/licenses/>.
-
-;;; Commentary:
-
-;; This library provides a way to view `taxy' structs in a
-;; column-based, `magit-section' buffer. Columns are defined using
-;; simple top-level forms, and new columns may be easily defined by
-;; users in their configurations.
-
-;;; Code:
-
-;;;; Requirements
-
-(require 'map)
-
-(require 'taxy)
-(require 'magit-section)
-
-;;;; Variables
-
-(defvar taxy-magit-section-level-indent 2
- "Default heading indentation per level.")
-
-(defvar taxy-magit-section-item-indent 2
- "Default item indentation per level.")
-
-(defvar taxy-magit-section-depth nil
- "Bound to current depth around calls to a taxy's format-fn.")
-
-(defvar taxy-magit-section-insert-indent-items t
- ;; NOTE: I hate to use a variable to control this, but it seems like
- ;; the cleanest way for now.
- "Whether to indent items in `taxy-magit-section-insert'.
-May be disabled when `taxy-magit-section-insert' should not
-indent items itself, e.g. if items are pre-indented. Note that
-this does not disable indentation of section headings.")
-
-;;;; Customization
-
-
-;;;; Structs
-
-;; NOTE: When making `taxy-magit-section' structs at runtime
-;; (e.g. with `taxy-take-keyed'), the struct's `make' slot must be set
-;; to a function that returns a new struct with the other slots set as
-;; desired; the slots' values do not automatically propagate to
-;; structs with the default `make' function. (Using `cl-labels' to
-;; define the `make' function makes this simple.)
-
-;; MAYBE: In `taxy-take-keyed', use `taxy-emptied' to copy structs
-;; with inheritance for relevant slots, so defining custom `make'
-;; functions wouldn't be necessary.
-
-(cl-defstruct (taxy-magit-section
- (:include taxy
- (make #'make-taxy-magit-section)))
- ;; MAYBE: Pass parent section to the :make function, would make
- ;; inheritance easier (and/or use EIEIO, but that would reduce
- ;; performance, since slot accessors can't be optimized).
- (visibility-fn #'taxy-magit-section-visibility)
- (heading-face-fn (lambda (_depth) 'magit-section-heading))
- (level-indent 2)
- (item-indent 2)
- (format-fn #'prin1-to-string))
-
-;;;; Commands
-
-
-;;;; Functions
-
-(cl-defun taxy-magit-section-insert
- (taxy &key (items 'first) (initial-depth 0) (blank-between-depth 1))
- "Insert a `magit-section' for TAXY into current buffer.
-If ITEMS is `first', insert a taxy's items before its descendant
-taxys; if `last', insert them after descendants. INITIAL-DEPTH
-is the initial indentation depth; it may be, e.g. -1 to make the
-second level unindented. BLANK-BETWEEN-DEPTH is the level up to
-which blank lines are inserted between sections at that level."
- (declare (indent defun))
- (let* ((magit-section-set-visibility-hook
- (cons #'taxy-magit-section-visibility
magit-section-set-visibility-hook)))
- (cl-labels ((insert-item
- (item taxy depth)
- (magit-insert-section (magit-section item)
- (magit-insert-section-body
- ;; This is a tedious way to give the indent
- ;; string the same text properties as the start
- ;; of the formatted string, but no matter where I
- ;; left point after using `insert-and-inherit',
- ;; something was wrong about the properties, and
- ;; `magit-section' didn't navigate the sections
- ;; properly anymore.
- (let* ((formatted (funcall (taxy-magit-section-format-fn
taxy) item))
- (indent-size (if (or (not
taxy-magit-section-insert-indent-items)
- (< depth 0))
- 0
- (+ (* depth
(taxy-magit-section-level-indent taxy))
- (taxy-magit-section-item-indent
taxy))))
- (indent-string (make-string indent-size ? )))
- (add-text-properties 0 (length indent-string)
- (text-properties-at 0 formatted)
- indent-string)
- (insert indent-string formatted "\n")))))
- (insert-taxy
- (taxy depth)
- (let ((magit-section-set-visibility-hook
magit-section-set-visibility-hook)
- (taxy-magit-section-level-indent
(taxy-magit-section-level-indent taxy))
- (taxy-magit-section-item-indent
(taxy-magit-section-item-indent taxy)))
- (cl-typecase taxy
- (taxy-magit-section
- (when (taxy-magit-section-visibility-fn taxy)
- (push (taxy-magit-section-visibility-fn taxy)
- magit-section-set-visibility-hook))))
- (magit-insert-section (magit-section taxy)
- (magit-insert-heading
- (make-string (* (if (< depth 0) 0 depth)
- (taxy-magit-section-level-indent taxy))
- ? )
- (propertize (taxy-name taxy)
- 'face (funcall
(taxy-magit-section-heading-face-fn taxy) depth))
- (format " (%s%s)"
- (if (taxy-description taxy)
- (concat (taxy-description taxy) " ")
- "")
- (taxy-size taxy)))
- (magit-insert-section-body
- (when (eq 'first items)
- (dolist (item (taxy-items taxy))
- (insert-item item taxy depth)))
- (dolist (taxy (taxy-taxys taxy))
- (insert-taxy taxy (1+ depth)))
- (when (eq 'last items)
- (dolist (item (taxy-items taxy))
- (insert-item item taxy depth))))
- (when (<= depth blank-between-depth)
- (insert "\n"))))))
- (magit-insert-section (magit-section)
- (insert-taxy taxy initial-depth)))))
-
-(cl-defun taxy-magit-section-pp (taxy &key (items 'first))
- "Pretty-print TAXY into a buffer with `magit-section' and show it."
- (with-current-buffer (get-buffer-create "*taxy-magit-section-pp*")
- (magit-section-mode)
- (let ((inhibit-read-only t))
- (erase-buffer)
- (taxy-magit-section-insert taxy :items items))
- (pop-to-buffer (current-buffer))))
-
-(defun taxy-magit-section-visibility (section)
- "Show SECTION if its taxy is non-empty.
-Default visibility function for
-`magit-section-set-visibility-hook'."
- (pcase (oref section value)
- ((and (pred taxy-p) taxy)
- (pcase (taxy-size taxy)
- (0 'hide)
- (_ 'show)))
- (_ nil)))
-
-;;;; Column-based formatting
-
-;; Column-based, or "table"?
-
-;; MAYBE: Move this to a separate library, since it's not directly
-;; related to using taxy or magit-section. Maybe it could be called
-;; something like `flextab' (or, keeping with the theme, `tabley').
-;; But see also <https://github.com/kiwanami/emacs-ctable>.
-
-;;;;; Macros
-
-(cl-defmacro taxy-magit-section-define-column-definer
- (prefix &key columns-variable-docstring)
- "Define a column-defining macro.
-The macro is named \"PREFIX-define-column\".
-
-These customization options are defined, which are to be used in
-a `taxy-magit-section' in its `:level-indent' and `:item-indent'
-slots, respectively:
-
- - PREFIX-level-indent
- - PREFIX-item-indent
-
-As well as these variables, which are to be passed to
-`taxy-magit-section-format-items':
-
- - PREFIX-columns
- - PREFIX-column-formatters"
- ;; TODO: Document this.
- (let* ((definer-name (intern (format "%s-define-column" prefix)))
- (definer-docstring (format "Define a column formatting function with
NAME.
-NAME should be a string. BODY should return a string or nil. In
-the BODY, `item' is bound to the item being formatted, and `depth' is
-bound to the item's depth in the hierarchy.
-
-PLIST may be a plist setting the following options:
-
- `:align' may be `left' or `right' to align the column
- accordingly.
-
- `:face' is a face applied to the string.
-
- `:max-width' defines a customization option for the column's
- maximum width with the specified value as its default: an
- integer limits the width, while nil does not."))
- (level-indent-variable-name (intern (format "%s-level-indent"
prefix)))
- (level-indent-docstring (format "Indentation applied to each level of
depth for `%s' columns."
- prefix))
- (item-indent-variable-name (intern (format "%s-item-indent" prefix)))
- (item-indent-docstring (format "Indentation applied to each item for
`%s' columns."
- prefix))
- (columns-variable-name (intern (format "%s-columns" prefix)))
- (columns-variable-docstring (or columns-variable-docstring
- (format "Columns defined by `%s'."
- definer-name)))
- (column-formatters-variable-name (intern (format
"%s-column-formatters" prefix)))
- (column-formatters-variable-docstring (format "Column formatters
defined by `%s'."
- definer-name)))
- `(let ((columns-variable ',columns-variable-name)
- (column-formatters-variable ',column-formatters-variable-name))
- (defcustom ,level-indent-variable-name 2
- ,level-indent-docstring
- :type 'integer)
- (defcustom ,item-indent-variable-name 2
- ,item-indent-docstring
- :type 'integer)
- (defvar ,columns-variable-name nil
- ,columns-variable-docstring)
- (defvar ,column-formatters-variable-name nil
- ,column-formatters-variable-docstring)
- (defmacro ,definer-name (name plist &rest body)
- ,definer-docstring
- (declare (indent defun))
- (cl-check-type name string)
- (pcase-let* ((fn-name (intern (concat ,prefix "-column-format-"
(downcase name))))
- (columns-variable-name ',columns-variable-name)
- (level-indent-variable-name ',level-indent-variable-name)
- (item-indent-variable-name ',item-indent-variable-name)
- ((map (:face face) (:max-width max-width)) plist)
- (max-width-variable (intern (concat ,prefix "-column-"
name "-max-width")))
- (max-width-docstring (format "Maximum width of the %s
column." name)))
- `(progn
- ,(when (plist-member plist :max-width)
- `(defcustom ,max-width-variable
- ,max-width
- ,max-width-docstring
- :type '(choice (integer :tag "Maximum width")
- (const :tag "Unlimited width" nil))))
- (defun ,fn-name (item depth)
- (if-let ((string (progn ,@body)))
- (progn
- ,(when max-width
- `(when ,max-width-variable
- (setf string (truncate-string-to-width
- string ,max-width-variable nil nil
"…"))))
- ,(when face
- ;; Faces are not defined until load time, while this
checks type at expansion
- ;; time, so we can only test that the argument is a
symbol, not a face.
- (cl-check-type face symbol ":face must be a face
symbol")
- `(setf string (propertize string 'face ',face)))
- (when (equal ,name (car ,columns-variable-name))
- ;; First column: apply indentation.
- (let ((indentation (make-string (+ (* depth
,level-indent-variable-name)
-
,item-indent-variable-name)
- ? )))
- (setf string (concat indentation string))))
- string)
- ""))
- (setf (alist-get 'formatter
- (alist-get ,name ,column-formatters-variable
nil nil #'equal))
- #',fn-name)
- (setf (alist-get 'align
- (alist-get ,name ,column-formatters-variable
nil nil #'equal))
- ,(plist-get plist :align))
- ;; Add column to the columns-variable's standard value.
- (unless (member ,name (get ',columns-variable 'standard-value))
- (setf (get ',columns-variable 'standard-value)
- (append (get ',columns-variable 'standard-value)
- (list ,name))))
- ;; Add column to the columns-variable's custom type.
- (cl-pushnew ,name (get ',columns-variable 'custom-type)
- :test #'equal)))))))
-
-;;;;; Functions
-
-;; MAYBE: Consider using spaces with `:align-to', rather than formatting
strings with
-;; indentation, as used by `epkg' (see
-;;
<https://github.com/emacscollective/epkg/blob/edf8c009066360af61caedf67a2482eaa19481b0/epkg-desc.el#L363>).
-;; I'm not sure which would perform better; I guess that with many lines,
redisplay might
-;; take longer to use the display properties for alignment than just having
pre-aligned
-;; lines of text.
-
-(defun taxy-magit-section-format-items (columns formatters taxy)
- ;; TODO: Document this.
- "Return a cons (table . column-sizes) for COLUMNS, FORMATTERS, and TAXY.
-COLUMNS is a list of column names, each of which should have an
-associated formatting function in FORMATTERS.
-
-Table is a hash table keyed by item whose values are display
-strings. Column-sizes is an alist whose keys are column names
-and values are the column width. Each string is formatted
-according to `columns' and takes into account the width of all
-the items' values for each column."
- (let ((table (make-hash-table))
- column-aligns column-sizes)
- (cl-labels ((format-column
- (item depth column-name)
- (let* ((column-alist (alist-get column-name formatters nil
nil #'equal))
- (fn (alist-get 'formatter column-alist))
- (value (funcall fn item depth))
- (current-column-size (or (map-elt column-sizes
column-name) 0)))
- (setf (map-elt column-sizes column-name)
- (max current-column-size (string-width value)))
- (setf (map-elt column-aligns column-name)
- (or (alist-get 'align column-alist)
- 'left))
- value))
- (format-item
- (depth item) (puthash item
- (cl-loop for column in columns
- collect (format-column item
depth column))
- table))
- (format-taxy (depth taxy)
- (dolist (item (taxy-items taxy))
- (format-item depth item))
- (dolist (taxy (taxy-taxys taxy))
- (format-taxy (1+ depth) taxy))))
- (format-taxy 0 taxy)
- ;; Now format each item's string using the column sizes.
- (let* ((column-sizes (nreverse column-sizes))
- (format-string
- (string-join
- (cl-loop for (name . size) in column-sizes
- for align = (pcase-exhaustive (alist-get name
column-aligns nil nil #'equal)
- ((or `nil 'left) "-")
- ('right ""))
- collect (format "%%%s%ss" align size))
- " ")))
- (maphash (lambda (item column-values)
- (puthash item (apply #'format format-string column-values)
- table))
- table)
- (cons table column-sizes)))))
-
-(defun taxy-magit-section-format-header (column-sizes formatters)
- ;; TODO: Document this.
- "Return header string for COLUMN-SIZES and FORMATTERS.
-COLUMN-SIZES should be the CDR of the cell returned by
-`taxy-magit-section-format-items'. FORMATTERS should be the
-variable passed to that function, which see."
- (let* ((first-column-name (caar column-sizes))
- (first-column-alist (alist-get first-column-name formatters nil nil
#'equal))
- (first-column-align (pcase-exhaustive (alist-get 'align
first-column-alist)
- ((or `nil 'left) "-")
- ('right ""))))
- (concat (format (format " %%%s%ss"
- first-column-align (cdar column-sizes))
- (caar column-sizes))
- (cl-loop for (name . size) in (cdr column-sizes)
- for column-alist = (alist-get name formatters nil nil
#'equal)
- for align = (pcase-exhaustive (alist-get 'align
column-alist)
- ((or `nil 'left) "-")
- ('right ""))
- for spec = (format " %%%s%ss" align size)
- concat (format spec name)))))
-
-;;;; Footer
-
-(provide 'taxy-magit-section)
-
-;;; taxy-magit-section.el ends here
diff --git a/taxy.info b/taxy.info
index 187e915..f24d4d9 100644
--- a/taxy.info
+++ b/taxy.info
@@ -1,4 +1,4 @@
-This is README.info, produced by makeinfo version 6.5 from README.texi.
+This is README.info, produced by makeinfo version 5.2 from README.texi.
INFO-DIR-SECTION Emacs
START-INFO-DIR-ENTRY
@@ -14,7 +14,7 @@ taxy.el
https://elpa.gnu.org/packages/taxy.svg
(https://elpa.gnu.org/packages/taxy.html)
- _Now, where did I put that..._
+ _Now, where did I put that…_
This library provides a programmable way to classify arbitrary
objects into a hierarchical taxonomy. (That’s a lot of fancy words to
@@ -66,7 +66,7 @@ Usage
Dynamic taxys
* Multi-level dynamic taxys::
-* "Chains" of independent, multi-level dynamic taxys: "Chains" of independent
multi-level dynamic taxys.
+* "Chains" of independent, multi-level dynamic taxys: "Chains" of independent
multi-level dynamic taxys.
* Defining a classification domain-specific language::
Reference
@@ -76,15 +76,19 @@ Reference
Changelog
-* 0.9-pre: 09-pre.
-* 0.8: 08.
-* 0.7: 07.
-* 0.6: 06.
-* 0.5: 05.
-* 0.4: 04.
-* 0.3: 03.
-* 0.2: 02.
-* 0.1: 01.
+* 0.9-pre: 09-pre.
+* 0.8: 08.
+* 0.7: 07.
+* 0.6: 06.
+* 0.5: 05.
+* 0.4: 04.
+* 0.3: 03.
+* 0.2: 02.
+* 0.1: 01.
+
+0.9-pre
+
+* Changes::
0.8
@@ -93,27 +97,27 @@ Changelog
0.7
-* Additions: Additions (1).
+* Additions: Additions (1).
0.6
-* Additions: Additions (2).
+* Additions: Additions (2).
0.5
-* Additions: Additions (3).
-* Fixes: Fixes (1).
+* Additions: Additions (3).
+* Fixes: Fixes (1).
0.3
-* Changes::
-* Fixes: Fixes (2).
+* Changes: Changes (1).
+* Fixes: Fixes (2).
0.2
-* Changes: Changes (1).
-* Additions: Additions (4).
-* Fixes: Fixes (3).
+* Changes: Changes (2).
+* Additions: Additions (4).
+* Fixes: Fixes (3).
Development
@@ -767,7 +771,7 @@ and it produces this taxonomy of buffers:
* Menu:
* Multi-level dynamic taxys::
-* "Chains" of independent, multi-level dynamic taxys: "Chains" of independent
multi-level dynamic taxys.
+* "Chains" of independent, multi-level dynamic taxys: "Chains" of independent
multi-level dynamic taxys.
* Defining a classification domain-specific language::
@@ -1022,7 +1026,10 @@ File: README.info, Node: Magit section, Next:
Reference, Prev: Dynamic taxys,
3.5 Magit section
=================
-Showing a ‘taxy’ with ‘magit-section’ is very easy:
+Showing a ‘taxy’ with ‘magit-section’ is easy using the library
+taxy-magit-section
+(https://github.com/alphapapa/taxy.el/tree/package/taxy-magit-section),
+which is packaged separately:
(require 'taxy-magit-section)
@@ -1034,10 +1041,6 @@ Showing a ‘taxy’ with ‘magit-section’ is very easy:
That shows a buffer like this:
- Note that while ‘taxy-magit-section.el’ is installed with the ‘taxy’
-package, the ‘magit-section’ package is not automatically installed with
-it.
-
File: README.info, Node: Reference, Prev: Magit section, Up: Usage
@@ -1131,15 +1134,15 @@ File: README.info, Node: Changelog, Next:
Development, Prev: Usage, Up: Top
* Menu:
-* 0.9-pre: 09-pre.
-* 0.8: 08.
-* 0.7: 07.
-* 0.6: 06.
-* 0.5: 05.
-* 0.4: 04.
-* 0.3: 03.
-* 0.2: 02.
-* 0.1: 01.
+* 0.9-pre: 09-pre.
+* 0.8: 08.
+* 0.7: 07.
+* 0.6: 06.
+* 0.5: 05.
+* 0.4: 04.
+* 0.3: 03.
+* 0.2: 02.
+* 0.1: 01.
File: README.info, Node: 09-pre, Next: 08, Up: Changelog
@@ -1147,7 +1150,20 @@ File: README.info, Node: 09-pre, Next: 08, Up:
Changelog
4.1 0.9-pre
===========
-Nothing new yet.
+* Menu:
+
+* Changes::
+
+
+File: README.info, Node: Changes, Up: 09-pre
+
+4.1.1 Changes
+-------------
+
+ • Library ‘taxy-magit-section’ is now packaged separately
+ (https://elpa.gnu.org/packages/taxy-magit-section.html) and
+ maintained in a separate branch
+ (https://github.com/alphapapa/taxy.el/tree/package/taxy-magit-section).
File: README.info, Node: 08, Next: 07, Prev: 09-pre, Up: Changelog
@@ -1184,7 +1200,7 @@ File: README.info, Node: 07, Next: 06, Prev: 08, Up:
Changelog
* Menu:
-* Additions: Additions (1).
+* Additions: Additions (1).
File: README.info, Node: Additions (1), Up: 07
@@ -1206,7 +1222,7 @@ File: README.info, Node: 06, Next: 05, Prev: 07, Up:
Changelog
* Menu:
-* Additions: Additions (2).
+* Additions: Additions (2).
File: README.info, Node: Additions (2), Up: 06
@@ -1246,8 +1262,8 @@ File: README.info, Node: 05, Next: 04, Prev: 06, Up:
Changelog
* Menu:
-* Additions: Additions (3).
-* Fixes: Fixes (1).
+* Additions: Additions (3).
+* Fixes: Fixes (1).
File: README.info, Node: Additions (3), Next: Fixes (1), Up: 05
@@ -1296,11 +1312,11 @@ File: README.info, Node: 03, Next: 02, Prev: 04,
Up: Changelog
* Menu:
-* Changes::
-* Fixes: Fixes (2).
+* Changes: Changes (1).
+* Fixes: Fixes (2).
-File: README.info, Node: Changes, Next: Fixes (2), Up: 03
+File: README.info, Node: Changes (1), Next: Fixes (2), Up: 03
4.7.1 Changes
-------------
@@ -1311,7 +1327,7 @@ File: README.info, Node: Changes, Next: Fixes (2), Up:
03
becomes ‘(taxy-items taxy)’).
-File: README.info, Node: Fixes (2), Prev: Changes, Up: 03
+File: README.info, Node: Fixes (2), Prev: Changes (1), Up: 03
4.7.2 Fixes
-----------
@@ -1330,12 +1346,12 @@ File: README.info, Node: 02, Next: 01, Prev: 03,
Up: Changelog
* Menu:
-* Changes: Changes (1).
-* Additions: Additions (4).
-* Fixes: Fixes (3).
+* Changes: Changes (2).
+* Additions: Additions (4).
+* Fixes: Fixes (3).
-File: README.info, Node: Changes (1), Next: Additions (4), Up: 02
+File: README.info, Node: Changes (2), Next: Additions (4), Up: 02
4.8.1 Changes
-------------
@@ -1345,7 +1361,7 @@ File: README.info, Node: Changes (1), Next: Additions
(4), Up: 02
reason to maintain two versions.
-File: README.info, Node: Additions (4), Next: Fixes (3), Prev: Changes (1),
Up: 02
+File: README.info, Node: Additions (4), Next: Fixes (3), Prev: Changes (2),
Up: 02
4.8.2 Additions
---------------
@@ -1427,49 +1443,50 @@ GPLv3
Tag Table:
Node: Top218
-Node: Examples2246
-Node: Numbery (starting basically)2565
-Node: Lettery (filling incrementally)8326
-Node: Sporty (understanding completely)10840
-Node: Applications16827
-Node: Installation17302
-Node: Usage17615
-Node: Reusable taxys19770
-Node: Threading macros23923
-Node: Modifying filled taxys24462
-Node: Dynamic taxys25280
-Node: Multi-level dynamic taxys27929
-Node: "Chains" of independent multi-level dynamic taxys30122
-Node: Defining a classification domain-specific language33053
-Node: Magit section37216
-Node: Reference37913
-Node: Functions38121
-Node: Macros40099
-Node: Changelog40749
-Node: 09-pre40974
-Node: 0841080
-Node: Additions41205
-Node: Fixes41349
-Node: 0741487
-Node: Additions (1)41612
-Node: 0641931
-Node: Additions (2)42056
-Node: 0543406
-Node: Additions (3)43551
-Node: Fixes (1)44661
-Node: 0444819
-Node: 0345041
-Node: Changes45170
-Node: Fixes (2)45533
-Node: 0245968
-Node: Changes (1)46137
-Node: Additions (4)46429
-Node: Fixes (3)47288
-Node: 0147542
-Node: Development47641
-Node: Copyright assignment47847
-Node: Credits48435
-Node: License48625
+Node: Examples2299
+Node: Numbery (starting basically)2618
+Node: Lettery (filling incrementally)8379
+Node: Sporty (understanding completely)10893
+Node: Applications16880
+Node: Installation17355
+Node: Usage17668
+Node: Reusable taxys19823
+Node: Threading macros23976
+Node: Modifying filled taxys24515
+Node: Dynamic taxys25333
+Node: Multi-level dynamic taxys27983
+Node: "Chains" of independent multi-level dynamic taxys30176
+Node: Defining a classification domain-specific language33107
+Node: Magit section37270
+Node: Reference37938
+Node: Functions38146
+Node: Macros40124
+Node: Changelog40774
+Node: 09-pre41008
+Node: Changes41118
+Node: 0841444
+Node: Additions41569
+Node: Fixes41713
+Node: 0741851
+Node: Additions (1)41977
+Node: 0642296
+Node: Additions (2)42422
+Node: 0543772
+Node: Additions (3)43919
+Node: Fixes (1)45029
+Node: 0445187
+Node: 0345409
+Node: Changes (1)45552
+Node: Fixes (2)45919
+Node: 0246358
+Node: Changes (2)46530
+Node: Additions (4)46822
+Node: Fixes (3)47681
+Node: 0147935
+Node: Development48034
+Node: Copyright assignment48240
+Node: Credits48828
+Node: License49018
End Tag Table