1 News
******

This lists user-visible changes, and which releases they occurred
between.  For more detailed information see the git log.

   Each release lists incompatible changes at its top.

10.0 "10th Anniversary Version"
===============================

   * Bug Fixes
        - #226 (gitkit): fix 'openhub' feature, when there is more than
          one remote.

        - #227 (bashstyle-rc): Make Bash history syncronization over
          different sessions more robust.

        - #228 (ui): Fix translation domain for user interface.

        - #229 (launcher): Fix '-p' and '-P' command line args were
          mixed up.

        - #230 (treecd): Check whether 'tree' is installed, if not,
          override the user's choice to use 'treecd' instead of 'cd'.

        - #231 (equinox): Fix missing prompt part in 'equinox' style
          when terminal has not enough lines of height to draw all
          user-requested prompt part.

        - #232 (equinox): Dynamically calculate minimum required number
          of lines in height required to draw all user-requested prompt
          parts.

        - #233 (clock): Use prompt color definitions instead of hacky
          'sed' substitutions (left-over from very (very) early
          'BashStyle-NG' versions) in the 'clock' prompt style.

        - #234 (poweruser): Use 'grep -c' instead of 'grep xx | wc -l'.

        - #235 (ayoli): Fixes and improvements for 'ayoli' prompt style.

        - #236 (custom-prompt-builder): Version of 'equinox' prompt
          style in the 'custom-prompt-builder' was bugged since the
          introduction of 'lastcommand' prompt part.

        - #237 (systemkit): 'systemkit --dirsize' was broken.

   * New Features
        - Add 'apkdump': grab information about android packages (apk)
          using aapt.

        - Add 'sufffix': fixes the suffix for given files.

        - Add 'batchrename': batch renames all files in a directory
          using the 'NNN-NAME.SUFFIX' naming scheme, where 'NNN' is the
          number of the file inside the directory (filled up with
          leading zeros if required, eg.  '01' or '001') and 'NAME' is
          given by the user.

   * Misc.  Changes
        - Minor improvements to the bashstyle launcher script.
             x minor code changes.

             x Add '-d', '--doc' command line arg to bashstyle, which
               opens the HTML documentation using 'xdg-open'.

             x Improve description of the '-P', '--python' command line
               arg of the bashstyle launcher script.

        - More versatile 'config-update-helper'.
             x Install 'bashstyle-config-helper' launcher script.

             x Add backup, restore and reset actions to
               'config-update-helper'.

             x Add '-b', '--backup' command line arg to bashstyle, which
               will backup the user configuration.

             x Add '-r', '--restore' command line arg to bashstyle,
               which will restore a previously backed up user
               configuration.

             x Add '-R', '--reset' command line arg to bashstyle, which
               will reset the user configuration to vendor values (if
               vendor configuration exists and is up to date) or factory
               values.

             x '-u', '--update' command line arg of bashstyle was not
               mentioned in '-h', '--help' message.

        - Update german translation.

        - Update 'bashstyle.1' manpage.

        - Rename 'bsng-help' to 'bashstyle-help'.

        - Remove 'check_opt', instead do a check in each script on it's
          own.

        - Improve coding style for various functions, scripts and prompt
          styles.

        - Update prompt styles in the 'custom-prompt-builder'.

     <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

9.3 "Trick or Treat"
====================

   * Notes
        - This release renamed the 'nx-rc' to 'bashstyle-rc', that
          means, you'll have to re-enable 'BashStyle-NG' in your
          '$HOME/.bashrc'.  Upon first start 'BashStyle-NG' will offer
          you to do so, on it's own.

          Additional notes for Git repo users:
             x This also applies to users that have used version 9.3
               prior to commit 4e621c.

             x Any references to 'nx-rc' will be auto-removed when
               re-enabling from UI, as of commit 2ff6c0, if you
               transisted before that commit, be sure to remove 'nx-rc'
               references from your '$HOME/.bashrc' manually.

   * Bug Fixes
        - #204 (debian vendor config): fixed error in Debian vendor
          configuration, preventing BashStyle-NG UI from startup.

        - #205 (ui): fixed buttons for saving, restoring, deleting and
          reverting user configuration in UI not working.

        - #206 (manpage colors): enforce environment variable 'PAGER' to
          be 'less', else colorizing manpages might fail, if an other
          pager is used.

        - #207 (trap): fix recording exit code of last command if it's
          not 0.

        - #208 (startup): fix enabling 'BashStyle-NG' in '$HOME/.bashrc'
          from user interface in certain cases.

        - #209 (startup): add file check when enabling 'BashStyle-NG' in
          '$HOME/.bashrc', so that 'Bash' does not run into errors on
          startup when 'BashStyle-NG' was uninstalled, but the startup
          entry still exists.

          Aswell as when it was installed to a different prefix, without
          having adjusted the startup entry in '$HOME/.bashrc'.

        - #210 (configuration): when 'ini_version' of '$HOME/.bs-ng.ini'
          is bigger than 'app_ini_version', the configuration is reset
          to either vendor or factory default configuration.  When doing
          so the configuration was not reloaded by the user interface
          (which could potentially lead to a crash).

        - #211 (colorshell): new option 'Dark Terminal Background'
          allows user to set whether the terminal background is dark or
          bright.  This option is used for colorshell to prevent the
          font color being black on dark terminals, respectively white
          on bright terminals in order to avoid barely readable text
          output.

          This option also applies to all other terminal dependant color
          settings in 'BashStyle-NG', where 'white' will be 'black' on
          bright terminals, respectively 'black' will be 'white' on dark
          terminals.

        - #212 (readline): fixed setting 'bell-style' readline variable.

        - #213 (readline): fixed setting 'completion-ignore-case'
          readline variable.

        - #214 (ls colors): fixed readline not inheriting 'LS_COLORS'
          set by 'BashStyle-NG'.  This resulted in readline functions
          using distribution default 'LS_COLORS', but bash functions
          using the user set variable.

        - #215 (lastcommand): fixed last command recording to generate
          ugly results for bash prompts ('lastcommandprintable') by
          removing all newlines from the string.

        - #216 (treecd): fixed user set 'treecd' options not being
          honoured.

        - #217 (lscd, treecd, grep): force switch to monochrome output
          when user has disabled colorful prompts.

        - #218 (equinox, truncpwd): fixed prompt length calculation for
          'equinox' prompt, if 'pwdcut' ini value is not set.  Fixed
          output string length calculation for 'truncpwd' function
          aswell.

        - #219 (debug log): the debug log now properly stores all
          messages, run commands and their (error) output in
          '$HOME/.bashstyle.log' after startup.  Before this fix only
          the messages from 'BashStyle-NG' itself were stored, making
          the debug log rather useless.

        - #220 (ini_set): fixed setting ini values from shell.

        - #221 (equinox): when on linux console let display '+', '-' and
          '/' for 'lastcommand' exit code visualization instead of '✔',
          '✘' and '⊘', as they won't display correctly.

        - #222 (custom prompt builder): fixed a few bugs in the
          pre-definied prompt definitions for the custom prompt builder.

        - #223 (keybindings): fixed that keybindings were always
          changed, even if user disabled that feature from UI.

        - #224 (factory ini, debian vendor ini): enable 'extglob' shopt
          by default.  Some bash completion definitions don't work
          without (eg: vim's).

        - #225 (dd): fixed no longer working 'dd' when loading
          'bashstyle-rc' more than one time during a single bash
          session.

   * New Features
        - Previously updating the user configuration to a new version
          was only possible by invoking the 'BashStyle-NG' user
          interface.  Now the user configuration is auto-updated from
          'bashstyle-rc' upon shell start up aswell (if needed, vendor
          configuration is considered if up-to-date, else factory
          configuration will be used (same behaviour as from user
          interface)).

          Manual update is possible via 'bashstyle --update', or
          'bashstyle -u'.  If your configuration is up-to-date, nothing
          will be changed.

        - New Termcap/Manpage coloring function.  'BashStyle-NG' now
          allows you to choose the different colors for manpages from
          the User Interface, rather than only giving you a handful of
          pre-defined color schemes.

        - Added option to include the current directory to the 'PATH'
          variable.

        - Added coloring options for 'lscd' and 'treecd' for different
          'banner', 'mkdir' and 'empty' labels.

        - Added options for letting user choose what to use for
          'lastcommand' exit code visualization.  'return_good', which
          is '✔'/'+' by default 'return-bad', which is '✘'/'-' by
          default and 'return_other', which is '⊘'/'/' by default.  This
          is currently only used in 'equinox' prompt.

        - Ability to choose what to display in 'equinox' prompt.  You
          can now enable or disable the following informations:
             x system load
             x cpu load
             x ram usage (pro tip: enabling this will dramatically
               increase the time required to draw the prompt)
             x last command (and exit code)
             x process count
             x uptime

        - Added 'showuser' function.  Prompt function to either show '$'
          for normal users, a custom-set symbol.  Always displays '#'
          for root.  If colors are enabled color for normal-users will
          be 'color_user' and red for root.

        - Added 'user_char' option.  Set this to let 'showuser' display
          something else than '$' for ordinary users.

        - New Bash 4.4 features support:
             + 'EXECIGNORE' a colon-separated list of commands to ignore
               from completion.  Only matched if the *complete* filename
               matches.  For example if you want to exclude

               '/usr/bin/autoreconf'

               from command completion, you need to add something like

               '/usr/bin/autreconf' or '*/autoreconf'

               to 'EXECIGNORE'.

             + 'PS0' prompt and color setting.  A new prompt which is
               displayed after completion was done and before the
               completed command is executed.

        - New Readline 7.0 features support:
             + added Readline 7.0 master switch (enable to make use of
               the following).

             + 'Colored Completion Prefix' makes the matching prefix of
               the issued completion appear in a special color for all
               matches.

             + 'Enable Bracketed Paste' makes Bash handle multi-line
               pasted code like single-line, preventing erroneous
               completion or execution.

             + 'Vi Command Mode String' is an indicator printed before
               the last line of 'PS1' when Bash is in vi command mode.

             + 'Vi Insert Mode String' is an indicator printed before
               the last line of 'PS1' when Bash is in vi insert mode.

             + 'Emacs Mode String' is an indicator printed before the
               last line of 'PS1' when Bash is in emacs mode.

   * Updated / Improved Features
        - 'history syncronization' improved history syncronization
          erasedups, ignoredups, ignorespace and ignoreboth
          implementation.  Made it more robust in case multiple Bash
          sessions start up simultaneously (should throw a lot less to
          no more errors).

        - 'random' function's '--numericalrange', '-r' param previously
          only allowed setting the 'highest' value of random range,
          starting from zero.  Now it's possible to set the 'lowest'
          value optionally, aswell.  Both syntaxes are supported:

          'random -r 10' will give you a random number between 0 and 10
          'random -r 5 10' will give you a random number between 5 and
          10

        - 'colors' added support for both 'grey' and 'white' in all
          color settings.  Note: depending on your terminal's color
          settings you might not see a difference here, that's not a
          bug.

        - 'colorshell' does no longer pollute 'PS1...4' variables.  It
          does now store 'PS1...4' once per session to 'OLDPS1...4' and
          appends it's randomly choosen text color to the it.

        - 'equinox' prompt now shows '⊘' in yellow when exiting 'git
          log' using 'q' key, instead of '✘' in red.  Exiting 'git log'
          results in return code 141, but it's not an actual error, thus
          the new state was added.

   * UI changes
        - Use 'GtkSwitch'es instead of 'GtkRadionButton's for main
          switches in the UI.

        - Make the radio buttons 'use lscd instead of cd' and 'use
          treecd instead of cd' exclude each other.

   * Configure

        - 4.3.8
             + code review.
             + make build dependencies a separate dependency group.

   * Misc.  Changes

        - Translation Domain changes:
             x old: 'bs-ng', new: 'bashstyle'

             x old: 'nx-rc', new: 'bashstyle-rc'

        - Improvements to 'bashstyle' launcher script.

        - Minor improvements to the Custom Prompt Builder UI.

        - Added option to launch Terminal Emulator from UI (uses
          'x-terminal-emulator').

        - Since a few versions the code for setting colors has been
          changed, so we no longer need a monochrome version of each
          prompt style, avoiding lots of (mostly) duplicated code.

        - Standardize shebangs in python scripts (and remove
          corresponding lintian override).

        - Updated german translation.

        - Don't mark setting's name and a few others as translatable
          strings.

        - Changed string 'GIT' to 'Git' in the UI and other pacles.

        - Move last command recording to the end of 'BashStyle-NG'
          initialization, no need to record 'BashStyle-NG's startup.

        - 'WidgetHandler' now supports 'GtkSwitch'es, 'GtkButton's and
          'GtkLabel's, Custom Prompt Builders special 'GtkButton's and
          'GtkComboBox'es.

        - Less environment pollution by 'unset'ing a lot of variables
          which are of no use after 'BashStyle-NG' initialization.

        - Simplified color setup mechanism for non/echoable prompt part
          colors.

        - Minor fix for 'dbg_msg' function, now some of the output
          strings in '$HOME/.bashstyle.log' are more readable.

        - Minor coding style changes / improvements.

     <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

9.2 "Galvanize"
===============

   * Bug Fixes
        - #191 (make): gtk-update-icon-cache was not properly invoked
          after make install

        - #192 (custom prompt builder): inserting prompt parts from
          GtkComboBoxes did not work

        - #193 (nano): setting Nano UI Colors an Tabs to Spaces did not
          work

        - #194 (colors): color definitions have not been properly
          exported to external scripts, which thus always displayed
          monochrome output

        - #195 (nx-rc): fixed filtering out 'trap' from 'lastcommand'
          storing [Mingye Wang]

        - #196 (nx-rc): fixup 'lastexit' value storing [Mingye Wang]

        - #197 (nano) (vim) (readline) (keybindings): fixup file
          existence checks which are intended to prevent file conflicts
          when multiple Bash sessions are started at the same time
          [Mingye Wang]

        - #198 (nx-rc): fixup detection of vendor ini version on first
          load of nx-rc if no user ini exists

        - #199 (reload): fixup reload to properly restore the complete
          environment, including BashStyle-NG and Bash Programmable
          Completion.

        - #200 (dd_opts): ensure setting DD_OPTS is properly done.

        - #201 (ls_colors): setting Tar/XZ color from UI didn't work.

        - #202 (configure): fixed last arguement passed to configure not
          being honoured.

   * Configuration File Changes
        - Additionally to factory and vendor (/etc/bs-ng_vendor.ini)
          configuration BashStyle-NG now also checks for user backup
          ($HOME/.bs-ng.ini.save) configuration when resetting
          configuration

        - Before using user backup or vendor configuration in any way do
          a dry-load to ensure the files are in proper shape, if they
          contain errors skip them

        - When the configuration file can't be loaded due errors, let
          BashStyle-NG auto-reset the configuration using user backup
          (if it exists) > vendor configuration (if it exists) > factory
          configuration (in that order).  This prevents BashStyle-NG
          from crashing if there's something wrong with the user
          configuration file

        - Added new Category "Configuration" which allows to:

             + Backup
             + Restore (from user backup configuration)
             + delete Backup configuration
             + Reset (reset from vendor or factory configuration) the
               configuration
             + Edit various configuration files (uses xdg-open to open
               files), namely:

                  x .bashrc
                  x .bashstyle.custom (bashrc-extension always loaded
                    after BashStyle-NG, thus can use BashStyle-NG
                    variables and functions reliably)
                  x .vimrc.custom (vimrc extension that is not managed
                    by BashStyle-NG)
                  x .inputrc.custom (inputrc extension that is not
                    managed by BashStyle-NG)

          also shows version of user, user backup, vendor and factory
          configuration files (None for vendor and user backup if they
          don't exist)

        - icon name for this category in UI: bs-ng-config

        - after configuration is restored or reset the application is
          restarted

   * StartUp Mechanism Changes
        - Before BashStyle-NG embedded into /etc/bash.bashrc or
          /etc/bashrc to add a startup entry to $HOME/.bashrc.  Now if
          $HOME/.bashrc does not contain a startup entry for
          BashStyle-NG the user is presented a tab page upon UI start
          asking whether to add the entry.  Also works when the startup
          entry for BashStyle-NG is commented out, or if the entry is
          from a previous installation of BashStyle-NG that had a
          different installation prefix.

   * Prompt Part Changes

        - PS2 / PS3 / PS4 changes: Before there's been an option for
          PS234.  Setting this to ">" resulted in

             + PS2=">"
             + PS3=">>"
             + PS4=">>>"

          Now there's an separate option for each (including a color
          option each)

        - additionally PS2 / PS3 / PS4 export does now honor
          enable_colors setting

   * History Syncro Changes

        - BashStyle-NG 9.1 introduced a custom history sync
          functionality (for syncing history over simultaneously running
          sessions), which turned out to break Bash $HISTCONTROL, as it
          modified the history from outside.  This is now worked around
          by custom functions replacing the $HISTCONROL of Bash since it
          fails due to the custom history handling functions.  Please
          note that this might slow down Bash a bit if you have a huge
          history.

   * New Functions

        - xmltagdelete: delete tags from xml files, see 'xmltagdelete
          --help'

        - 2048.bash: 2048 game in Bash, see '2048.bash --help'

   * New Settings

        - Added option to display progressbar for 'dd', requires version
          8.24 or newer.

   * Documentation

        - Add texinfo documentation describing all features of
          BashStyle-NG (work in progress).
        - currently documented:
             + Introduction
             + News (ChangeLog)
             + Configuration file handling
             + Advanced options (UI section)
             + Style options (UI section)
             + Shell options (UI section)
             + UI icon names
        - Add manpage for 'bashstyle' executable.
        - Add 'Documentation' icon ('bs-ng-doc') icon in UI, opening the
          documenation using 'xdg-open'.

   * Misc.  Changes

        - undobuffer: enforce Gtk version 3 to be loaded (makes a
          startup warning shut up

   * Configure

        - 4.3.7
             + code review
             + fixed bug #202

        - 4.3.6
             + add '--docdir' switch back
             + add '--mandir' switch

        - 4.3.5
             + remove system bashrc detection
             + remove -profiledir switch
             + remove -bashrc switch
             + minor string changes

        - 4.3.4
             + remove -quiet switch
             + globally define PYMAXVER and PYMINVER (python minimum and
               maximum versions)
             + globally define PYAMXVER_P and PYMINVER_P (printable
               python minimum and maximum python versions for configure
               messages)
             + remove unused variable

   * Make

        - 1.0.9
             + code review

        - 1.0.8
             + compress manpages upon './make build'
             + install info and html documentation upon './make install'
             + install manpages upon './make install'
             + add a few more strings
             + build README from doc/userdoc_introduction ('./make
               readme')

        - 1.0.7
             + build NEWS from doc/news.info ('./make news')
             + build doc/bashstyle.info from doc/userdoc.texi ('./make
               info')
             + build doc/html from doc/userdoc.texi ('./make html')

        - 1.0.6
             + fixed bug #191

        - 1.0.5
             + update for no longer installed profiledir and profile
               script
             + minor string changes

   * Translations

        - Updated german translation

     <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

