Link [ pkgsrc | NetBSD | pkgsrc git mirror | PR fulltext-search | netbsd commit viewer ]


   
        usage: [branch:branch] [user:user] [path[@revision]] keyword [... [-excludekeyword [...]]] (e.g. branch:MAIN pkgtools/pkg)




switch to index mode

recent branches: MAIN (29m)  pkgsrc-2024Q1 (9d)  pkgsrc-2023Q4 (56d)  pkgsrc-2023Q2 (88d)  pkgsrc-2023Q3 (168d) 

2024-05-26 20:58:53 UTC Now

2023-11-28 01:16:23 UTC MAIN commitmail json YAML

Updated net/gh to 2.39.1

(nonaka)

2023-11-28 01:08:11 UTC MAIN commitmail json YAML

net/gh: update to 2.39.1

GitHub CLI 2.39.1
-----------------
- Fix executable location
- Query project item status field properly

GitHub CLI 2.39.0
-----------------
- release create: Fix --latest flag behavior when creating release wth assets
- issue/pr: Include project item status when exporting issues and pull requests
- codespace: Resolve race condition in codespaces connection
- release download: Improve usage documentation
- run view: Simplify annotation fetch error handling
- api: Set default Accept header when one is not specified
- build(deps): bump github.com/henvic/httpretty from 0.1.2 to 0.1.3

GitHub CLI 2.38.0
-----------------
- extension install no longer errors unhelpfully if the extension is already
  installed
- All tables now have headers
- project commands have a clearer error message when no owner can be resolved
- workflow run now presents a select for choice workflow input types
- codespace create no longer polls for additional codespace permissions
  unnecessarily
- go install now works with the removal of our crypto fork

GitHub CLI 2.37.0
-----------------
**Breaking Changes**
- project: Remove template field from --format=json output by @samcoe in #8160
  -  In v2.34.0 we introduced the template field when outputing projects to
    JSON, unfortunately we forgot to take into account our GHES users.
    This field does not exist on GHES 3.8 and older. Including this field
    in our queries and output broke nearly all the project commands for users
    targeting these older versions of GHES. As we try our hardest to keep
    gh compatible with all non-deprecated GHES versions this was a pretty
    big mistake. In order to fix it we are reverting the querying and
    exporting of the template field for project commands. We apologize for
    the inconvenience this may cause, and plan to bring back this field
    once GHES 3.8 gets deprecated.

- repo create: Allow --disable-issues and --template flags to be used together
- repo create: Allow --homepage and --template flag to be used together
- repo create: Allow creating repositories from templates in interactive mode
- repo fork: Set default repo when forking repo
- codespace: Migrate all Codespaces operations from Live Share to Dev Tunnels
- codespace create: Poll permission acceptance endpoint on codespace creation
- pr create: Remove duplicates targets for push survey
- pr create: Fix typo in documentation
- browse: Do not use relative paths when --repo flag is used

GitHub CLI 2.36.0
-----------------
- codespace: Hint adding codespace scope when not logged in
- codespace ports: Forward codespace ports over Dev Tunnels
- cache delete: Percent-encode keys
- gpg-key delete, run watch: Return HTTP errors properly
- pr checks: Show cancelled checks
- cache list: Add JSON exporting support
- auth: Fix startup panic when logged out
- secret list, deploy-key list: Support standard output format flags
- pr create: Update the docs on flag --fill
- run view: Use attempt input when fetching jobs
- project item-edit: New clear flag to remove item field value
- build(deps): Bump mislav/bump-homebrew-formula-action from 2 to 3
- Update triage documentation with link to unlabeled open issues

GitHub CLI 2.35.0
-----------------
- gh alias delete now supports the --all flag
- gh release delete now supports the --cleanup-tag flag
- gh release create now supports the --notes-from-tag flag
- Clarified gh repo list --fork and --source behavior for orgs
- gh cs create now shows the full permissions URL
- Documented when gh auth login falls back to using insecure storage
- Bumped goreleaser/goreleaser-action from 4 to 5

GitHub CLI 2.34.0
-----------------
- api: Add --verbose flag by @JunNishimura in #7826
- config clear-cache: New command to clear the cli cache
- workflow list: Add --json, --jq and --template flags
- project mark-template: New command to control project template options
- docs: Fix Nix/NixOS install docs
- repo rename: Properly rename remote for GHES hosts
- pr checks: Return different exit code for PENDING vs FAILED
- repo create: Execute clone when readme option is enabled
- repo create: Allow --disable-wiki flag with --template flag
- auth status: Reword token invalid message
- status: Show status even if a comment 404s
- run view: Fetch all run jobs
- Use go-gh prompter package
- Add formula-path to homebrew-bump step
- build(deps): bump actions/checkout from 3 to 4

GitHub CLI 2.33.0
-----------------
- Delete local branch more often when merging PR
- Do not allow issue and pr templates to be symlinks
- release create: Trim spaces on tag name
- Use filepath.Base to sanitize path for archive downloads
- Codespaces: Use the host name from the logged in server for commands
- Update CONTRIBUTING.md
- Allow --org parameter in lieu of a repo context for rulesets, add
  current_user_can_bypass to rs view
- add missing ls aliases to list subcommands
- port repo edit prompts
- add clobber flag to alias set
- Remove GHE handling for workflow
- Upgrade to Go 1.21
- switch to prompter in workflow commands
- update more prompts
- switch to prompter in pr shared code
- THE FINAL PROMPTDOWN
- codespace: Handle HTTP request retry interruption

(nonaka)

2021-07-21 01:00:43 UTC MAIN commitmail json YAML

doc: fix fonts/koruri-ttf commit date.

(nonaka)

2021-07-20 15:40:34 UTC MAIN commitmail json YAML

doc: Updated fonts/koruri-ttf to 20210720

(nonaka)

2021-07-20 15:35:23 UTC MAIN commitmail json YAML

koruri-ttf: Update to 20210720

* M+ TESTFLIGHT 063 -> 063a
* Remove gridfit to improve readability on Windows
* Reduce unused files

(nonaka)

2019-04-05 12:59:12 UTC MAIN commitmail json YAML

2019-04-05 12:58:05 UTC MAIN commitmail json YAML

Added devel/java-jna version 5.2.0

(nonaka)

2019-04-05 12:55:15 UTC MAIN commitmail json YAML

PR/54097: Added Java Native Access 5.2.0 as devel/java-jna.

JNA provides Java programs easy access to native shared libraries without
writing anything but Java code - no JNI or native code is required.
This functionality is comparable to Windows' Platform/Invoke and Python's
ctypes.

(nonaka)

2019-01-15 10:21:07 UTC MAIN commitmail json YAML

Updated shells/xonsh to 0.8.8

(nonaka)

2019-01-15 10:18:43 UTC MAIN commitmail json YAML

PR/53841: Update shells/xonsh to 0.8.8.

====================
Xonsh Change Log
====================

v0.8.8
====================

**Added:**

* ``vox new`` has an added ``-p --interpreter`` flag for choosing the python interpreter to use for virtualenv creation
* The default Python intrepreter vox uses to create virtual environments can be set using the ``$VOX_DEFAULT_INTERPRETER`` environment variable.

**Changed:**

* ``lib.ChainDB`` now resolves results to the type of the inputs if possible

v0.8.7
====================

**Added:**

* New xonsh syntax ``pf`` strings -- combining path strings with f-strings.

  Usage:

  .. code-block:: bash

      gil@bad_cat ~ $ repos = 'github.com'
      gil@bad_cat ~ $ pf"~/{repos}"
      PosixPath('/home/gil/github.com')
      gil@bad_cat ~ $ pf"{$HOME}"
      PosixPath('/home/gil')
      gil@bad_cat ~ $ pf"/home/${'US' + 'ER'}"
      PosixPath('/home/gil')

**Fixed:**

* Set ``ls`` to ``predict_true`` in ``default_threadable_predictors``.  This prevents ``ls`` on OSX
  from being flagged on OSX as unthreadable (incorrectly) because it relies on ``ncurses``.

v0.8.6
====================

**Added:**

* Doco about how to update xonsh and how to set and unset environment variables

**Fixed:**

* Updated behavior of the ``cat`` coreutils function so that it properly
  handles as vareity of cases such as:

    * Exits after concatenating normal files which have a finite size
    * Continues to run for special files which do not have a size,
      such as ``/dev/random``
    * Is interruptable in all cases with Crtl-C.
* Callable aliases were not properly raising a ``CalledProcessError`` when they
  returned a non-zero exist status when ``$RAISE_SUBPROC_ERROR = True``. This has
  been fixed.
* Fixed interpretation of color names with PTK2 and Pygments 2.3.1.

v0.8.5
====================

**Added:**

* Add alias to `base16 shell <https://github.com/chriskempson/base16-shell>`_

* Installation / Usage
    1. To install use pip

    .. code-block:: bash

        python3 -m pip install xontrib-base16-shell

    2. Add on ``~/.xonshrc``

    .. code:: python
        :number-lines:

        $BASE16_SHELL = $HOME + "/.config/base16-shell/"
        xontrib load base16_shell

    3. See image

    .. image:: https://raw.githubusercontent.com/ErickTucto/xontrib-base16-shell/master/docs/terminal.png
        :width: 600px
        :alt: terminal.png
* New ``DumbShell`` class that kicks in whenever ``$TERM == "dumb"``.
  This usually happens in emacs. Currently, this class inherits from
  the ``ReadlineShell`` but adds some light customization to make
  sure that xonsh looks good in the resultant terminal emulator.
* Aliases from foreign shells (e.g. Bash) that are more than single expressions,
  or contain sub-shell executions, are now evaluated and run in the foreign shell.
  Previously, xonsh would attempt to translate the alias from sh-lang into
  xonsh. These restrictions have been removed.  For example, the following now
  works:

  .. code-block:: sh

      $ source-bash 'alias eee="echo aaa \$(echo b)"'
      $ eee
      aaa b

* New ``ForeignShellBaseAlias``, ``ForeignShellFunctionAlias``, and
  ``ForeignShellExecAlias`` classes have been added which manage foreign shell
  alias execution.

**Changed:**

* String aliases will now first be checked to see if they contain sub-expressions
  that require evaluations, such as ``@(expr)``, ``$[cmd]``, etc. If they do,
  then an ``ExecAlias`` will be constructed, rather than a simple list-of-strs
  substitutiuon alias being used. For example:

  .. code-block:: sh

      $ aliases['uuu'] = "echo ccc $(echo ddd)"
      $ aliases['uuu']
      ExecAlias('echo ccc $(echo ddd)\n', filename='<exec-alias:uuu>')
      $ uuu
      ccc ddd

* The ``parse_aliases()`` function now requires the shell name.
* ``ForeignShellFunctionAlias`` now inherits from ``ForeignShellBaseAlias``
  rather than ``object``.

**Fixed:**

* Fixed issues where the prompt-toolkit v2 shell would print an extra newline
  after Python evaluations in interactive mode.

v0.8.4
====================

**Added:**

* Added the possibility of arbitrary paths to the help strings in ``vox activate`` and
  ``vox remove``; also updated the documentation accordingly.
* New ``xonsh.aliases.ExecAlias`` class enables multi-statement aliases.
* New ``xonsh.ast.isexpression()`` function will return a boolean of whether
  code is a simple xonsh expression or not.
* Added top-level ``run-tests.xsh`` script for safely running the test suite.

**Changed:**

* String aliases are no longer split with ``shlex.split()``, but instead use
  ``xonsh.lexer.Lexer.split()``.
* Update xonsh/prompt/cwd.py _collapsed_pwd to print 2 chars if a directory begins with "."
* test which determines whether a directory is a virtualenv

  previously it used to check the existence of 'pyvenv.cfg'
  now it checks if 'bin/python' is executable

**Fixed:**

* Fixed issue with ``and`` & ``or`` being incorrectly tokenized in implicit
  subprocesses. Auto-wrapping of certain subprocesses will now correctly work.
  For example::

      $ echo x-and-y
      x-and-y
* Fix EOFError when press `control+d`
* fix no candidates if no permission files in PATH
* Fixed interpretation of color names with PTK2 and Pygments 2.3.
* Several ResourceWarnings: unclosed file in tests
* AttributeError crash when using --timings flag
* issue #2929

v0.8.3
====================

**Added:**

* Dociumentation paragrapgh about gow to run xonsh in Emacs shell

**Changed:**

* Updated what pip requirements are needed to build the documnetaion
* ``$XONSH_TRACEBACK_LOGFILE`` now beside strings also accepts ``os.PathLike``
  objects.
* Updated vended version of ``ply`` to 3.11
* Deprecation warnings now print from stacklevel 3.

**Fixed:**

* Annotation assignment statements (e.g. ``x : int = 42``) are now supported.
* Fixed error output wording for fg and bg commands
* Flake8 errors
* xonsh can now properly parse import statements with trailing comma within
  parentheses, e.g.::

    from x import (y, z,)
* ResourceWarning: unclosed scandir iterator in imphooks.py
* Removed use of deprecated ``inspect.formatargspec()`` for ``inspect.signature()``
* ``Makefile`` directive that updates vended version of ``ply``

v0.8.2
====================

**Changed:**

* Now there is only a single instance of ``string.Formatter()`` in the
  code base, which is called ``xonsh.tools.FORMATTER``.

**Fixed:**

* f-strings (``f"{expr}"``) are now fully capable of executing xonsh expressions.
  The one exception to this is that ``![cmd]`` and ``!(cmd)`` don't work because
  the ``!`` character interferes with Python string formatting. If you need to
  run subprocesses inside of f-strings, use ``$[cmd]`` and ``$(cmd)`` instead.
* Fixed occasional "no attribute 'settitle' error"

v0.8.1
====================

**Added:**

* ``SubprocSpec`` has a new ``pipeline_index`` integer attribute that indicates
  the commands position in a pipeline. For example, in

  .. code-block:: sh

    p = ![ls -l | grep x]

  The ``ls`` command would have a pipeline index of 0
  (``p.specs[0].pipeline_index == 0``) and ``grep`` would have a pipeline index
  of 1 (``p.specs[1].pipeline_index == 1``).  This may be usefule in callable
  alaises which recieve the spec as an argument.

**Changed:**

* Removed ``fish`` from list of supported foreign shells in the wizard.
* Circle CI config updated to use a pinned version of ``black`` (18.9b0)
* Pytest plugin now uses ``xonsh.main.setup()`` to setup test environment.
* Linux platform discovery will no longer use ``platform.linux_distribution()``
  on Python >=3.6.6. due to pending deprecation warning.
* Updated Linux Guide as Xonsh is now available in Arch Linux official repositories.

**Fixed:**

* Builtin dynamic proxies and deprecation warning proxies were not deleting
  attributes and items properly.
* Fixed stdout/sdterr writing infinite recurssion error that would occur in
  long pipelines of callable aliases.
* Fixed a bug which under very rare conditions could cause the shell
  to die with PermissionError exception while sending SIGSTOP signal
  to a child process.
* Fixed further raw string deprecation warnings thoughout the code base.

v0.8.0
====================

**Added:**

* Windows CI jobs on Azure Pipelines
* The ``cryptop`` command will no longer have its output captured
  by default.
* Added new env-var ``PTK_STYLE_OVERRIDES``. The variable is
  a dictionary containing custom prompt_toolkit style definitions.
  For instance::

    $PTK_STYLE_OVERRIDES['completion-menu'] = 'bg:#333333 #EEEEEE'

  will provide for more visually pleasing completion menu style whereas::

    $PTK_STYLE_OVERRIDES['bottom-toolbar'] = 'noreverse'

  will prevent prompt_toolkit from inverting the bottom toolbar colors
  (useful for powerline extension users)

  Note: This only works with prompt_toolkit 2 prompter.

**Changed:**

* All ``__xonsh_*__`` builtins have been migrated to a ``XonshSession`` instance at
  ``__xonsh__``. E.g. ``__xonsh_env__`` is now ``__xonsh__.env``.
* Other xonsh-specific builtins (such as ``XonshError``) have been proxied to
  the ``__xonsh__`` session object as well.

**Deprecated:**

* All ``__xonsh_*__`` builtins are deprected. Instead, the corresponding
  ``__xonsh__.*`` accessor should be used. The existing ``__xonsh_*__`` accessors
  still work, but issue annoying warnings.

**Fixed:**

* Fixed deprecation warnings from unallowed escape sequences as well as importing abstract base classes directly from ``collections``
* Fix for string index error in stripped prefix
* bash_completions to include special characters in lprefix

  Previously, glob expansion characters would not be included in lprefix for replacement

  .. code-block:: sh

    $ touch /tmp/abc
    $ python
    >>> from bash_completion import bash_completions
    >>>
    >>> def get_completions(line):
    ...    split = line.split()
    ...    if len(split) > 1 and not line.endswith(' '):
    ...        prefix = split[-1]
    ...        begidx = len(line.rsplit(prefix)[0])
    ...    else:
    ...        prefix = ''
    ...        begidx = len(line)
    ...    endidx = len(line)
    ...    return bash_completions(prefix, line, begidx, endidx)
    ...
    >>> get_completions('ls /tmp/a*')
    ({'/tmp/abc '}, 0)

  Now, lprefix begins at the first special character:

  .. code-block:: sh

    $ python
    >>> from bash_completion import bash_completions
    >>>
    >>> def get_completions(line):
    ...    split = line.split()
    ...    if len(split) > 1 and not line.endswith(' '):
    ...        prefix = split[-1]
    ...        begidx = len(line.rsplit(prefix)[0])
    ...    else:
    ...        prefix = ''
    ...        begidx = len(line)
    ...    endidx = len(line)
    ...    return bash_completions(prefix, line, begidx, endidx)
    ...
    >>> get_completions('ls /tmp/a*')
    ({'/tmp/abc '}, 7)
* The ``xonsh.main.setup()`` function now correctly passes the
  ``shell_type`` argument to the shell instance.
* try_subproc_toks now works for subprocs with trailing and leading whitespace

  Previously, non-greedy wrapping of commands would fail if they had leading and trailing whitespace:

  .. code-block:: sh

    $ true && false || echo a
    xonsh: For full traceback set: $XONSH_SHOW_TRACEBACK = True
    NameError: name 'false' is not defined

    $ echo; echo && echo a

    xonsh: For full traceback set: $XONSH_SHOW_TRACEBACK = True
    NameError: name 'echo' is not defined

  Now, the commands are parsed as expected:

  .. code-block:: sh

    $ true && false || echo a
    a

    $ echo; echo && echo a

    a

v0.7.10
====================

**Added:**

* 'off' can be passed as falsy value to all flags accepting boolean argument.
- DragonFly BSD support
* Format strings (f-strings) now allow environment variables to be looked up.
  For example, ``f"{$HOME}"`` will yield ``"/home/user"``. Note that this will
  look up and fill in the ``detype()``-ed version of the environment variable,
  i.e. it's native string representation.

**Changed:**

* Running ``aurman`` command will now be predicted to be unthreaded by default.

**Fixed:**

* The xonsh ``xonfig wizard`` would crash if an unknown foreign shell was
  provided. This has been fixed.
* The ``hg split`` command will now predict as unthreadable.
* Fixed path completer crash on attempted f-string completion

v0.7.9
====================

**Added:**

* The python-mode ``@(expr)`` syntax may now be used inside of subprocess
  arguments, not just as a stand-alone argument. For example:

  .. code-block:: sh

    $ x = 'hello'
    $ echo /path/to/@(x)
    /path/to/hello

  This syntax will even properly expand to the outer product if the ``expr``
  is a list (or other non-string iterable) of values:

  .. code-block:: sh

    $ echo /path/to/@(['hello', 'world'])
    /path/to/hello /path/to/world

    $ echo @(['a', 'b']):@('x', 'y')
    a:x a:y b:x b:y

  Previously this was not possible.
* New ``$DOTGLOB`` environment variable enables globs to match
  "hidden" files which start with a literal ``.``. Set this
  variable to ``True`` to get this matching behavior.
  Cooresponding API changes have been made to
  ``xonsh.tools.globpath()`` and ``xonsh.tools.iglobpath()``
* New environment variable ``$FOREIGN_ALIASES_SUPPRESS_SKIP_MESSAGE``
  enables the removal of skipping foreign alias messages.
* New ``--suppress-skip-message`` command line option for skipping
  foreign alias messages when sourcing foreign shells.

**Fixed:**

* In Bash completions, if there are no files to source, a ``set()`` will
  no longer be inserted into the completion script.
* Fixed issue with TAB completion in readline not replacing values
  with spaces properly when the prefix was unquoted.

v0.7.8
====================

**Added:**

* ``xonsh.lib.collections.ChainDB``, a chain map which merges mergable fields

**Fixed:**

* Pass all params to voxapi.create
* PTK tab-completion now auto-accepts completion if only one option is present
  (note that fix is only for PTK2)

v0.7.7
====================

**Added:**

* A xontrib which adds support for autojump to xonsh
* Added new env-var ``XONSH_HISTORY_MATCH_ANYWHERE``. If set to ``True`` then
  up-arrow history matching will match existing history entries with the search
  term located anywhere, not just at the beginning of the line. Default value is
  ``False``

**Changed:**

* Improved iteration over virtual environments in ``Vox.__iter__``

**Fixed:**

* Fix for ``Enter`` not returning from Control-R search buffer
* Fixed automatic wrapping of many subprocesses that spanned multiple lines via
  line continuation characters with logical operators separating the commands.
  For example, the following now works:

  .. code-block:: sh

        echo 'a' \
        and echo 'b'
* Environment swapping would not properly reraise errors due to weird
  Python name binding issue.

v0.7.6
====================

**Added:**

* Callable aliases may now accept a ``stack`` argument. If they do, then the
  stack, as computed from the aliases call site, is provided as a list of
  ``FrameInfo`` objects (as detailed in the standard library ``inspect``
  module). Otherwise, the ``stack`` parameter is ``None``.
* ``SubprocSpec`` now has a ``stack`` attribute, for passing the call stack
  to callable aliases. This defaults to ``None`` if the spec does not
  need the stack. The ``resolve_stack()`` method computes the ``stack``
  attribute.

**Changed:**

* xonsh/environ.py
  Exceptions are caught in the code executed under Env.swap()

**Fixed:**

* Scripts are now cached by their realpath, not just abspath.
* Fixed a potential crash (``AssertionError: wrong color format``) on Python 3.5 and prompt_toolkit 1.
* The ``completer`` command now correctly finds completion functions
  when nested inside of other functions.
* Fixed a crash when using the ``$XONSH_STDERR_PREFIX/POSTFIX`` with
  prompt_toolkit and Pygments 2.2.

v0.7.5
====================

**Fixed:**

* Recent command history in ptk2 prompt now returns most recently executed
  commands first (as expected)
* Fixed a regression taat prevented the readline backend from beeing used. This
  regression was caused by the new ansi-color names, which are incompatible with
  pygments 2.2.

v0.7.4
====================

**Added:**

* New ``xonsh-cat`` command line utility, which is a xonsh replacement
  for the standard UNIX ``cat`` command.
* The new ``xonsh.xoreutils.cat.cat_main()`` enables the ``xonsh.xoreutils.cat``
  module to be run as a command line utility.
* New ``CommandsCache.is_only_functional_alias()`` and
  ``CommandsCache.lazy_is_only_functional_alias()`` methods for determining if
  if a command name is only implemented as a function, and thus has no
  underlying binary command to execute.
* ``xonsh.xontribs.xontribs_load()`` is a new first-class API for loading
  xontribs via a Python function.
* ``$COMPLETIONS_DISPLAY`` now supports readline-like behavior on
  prompt-toolkit v2.

**Changed:**

* The xonsh Jupyter kernel now will properly redirect the output of commands
  such as ``git log``, ``man``, ``less`` and other paged commands to the client.
  This is done by setting ``$PAGER = 'cat'``. If ``cat`` is not available
  on the system, ``xonsh-cat`` is used instead.
* The ``setup()`` function for starting up a working xonsh has ``aliases``,
  ``xontribs``, and ``threadable_predictors`` as new additional keyword
  arguments for customizing the loading of xonsh.

**Fixed:**

* Fixed a bug with converting new PTK2 colors names to old names when using PTK1 or Jupyter
    as the shell type.
* ``CommandsCache.locate_binary()`` will now properly return None when
  ``ignore_alias=False`` and the command is only a functional alias,
  such as with ``cd``. Previously, it would return the name of the
  command.
* Fixed issue with ``$COMPLETIONS_DISPLAY`` raising an error on
  prompt-toolkit v2 when the value was not set to ``multi``.
* ValueError when executing ``vox list``

v0.7.3
====================

**Added:**

* Add the ``PROMPT_TOOLKIT_COLOR_DEPTH`` environment to xonsh default environment.
  Possible values are ``DEPTH_1_BIT``/``MONOCHROME``,
  ``DEPTH_4_BIT``/``ANSI_COLORS_ONLY``, ``DEPTH_8_BIT``/``DEFAULT``, or ``DEPTH_24_BIT``/``TRUE_COLOR``.
  Note: not all terminals support all color depths.
* New way to fix unreadable default terminal colors on Windows 10. Windows 10
  now supports true color in the terminal, so if prompt toolkit 2 is
  installed Xonsh will use a style with hard coded colors instead of the
  default terminal colors. This will give the same color experience as on linux an mac.
  The behaviour can be disabled with ``$INTENSIFY_COLORS_ON_WIN``
  environment variable.
* New ``JupyterShell`` for interactive interfacing with Jupyter.

**Changed:**

* All ansicolor names used in styles have ben updated to the color names used by prompt_toolkit 2.
  The new names are are much easier to understand
  (e.g. ``ansicyan``/``ansibrightcyan`` vs. the old ``#ansiteal``/``#ansiturquoise``). The names are automatically
  translated back when using prompt_toolkit 1.

**Removed:**

* Removed support for pygments < 2.2.

**Fixed:**

* New ansi-color names fixes the problem with darker colors using prompt_toolkit 2 on windows.
* Fixed a problem with the color styles on prompt toolkit 2. The default pygment
  style is no longer merged into style selected in xonsh.
* The JupyterKernel has been fixed from a rather broken state.

v0.7.2
====================

**Added:**

* ``history show`` builtin now supports optional ``-0`` parameter that switches
  the output to null-delimited. Useful for piping history to external filters.

**Fixed:**

* If exception is raised in indir context manager, return to original directory
* Fixed issue that autocomplete menu does not display
  at terminal's maximum height

v0.7.1
====================

**Added:**

* Added feature to aliases.
* ``xonsh.lib.os.rmtree()`` an rmtree which works on windows properly (even with
  git)

**Changed:**

* set default value of ``$AUTO_SUGGEST_IN_COMPLETIONS=False``
* Use the ``pygments_cache.get_all_styles()`` function instead of
  interacting directly with pygments.

**Fixed:**

* Fixed issue with ``$ARG<N>`` varaibles not being passed to subprocesses correctly.
* Fixed issue with multiline string inside of ``@(expr)`` in
  unwrapped subprocesses. For example, the following now works::

    echo @("""hello
    mom""")
* ``CommandPipeline.output`` now does properly lazy, non-blocking creation of
  output string. ``CommandPipeline.out`` remains blocking.
* Fix regression in ``INTENSIFY_COLORS_ON_WIN`` functionality due to prompt_toolkit 2 update.
* Fixed issue that can't insert quotation marks and double quotes
  for completion.
* Fixed issue with ``SyntaxErrors`` being reported on the wrong line
  when a block of code contained multiple implicit subprocesses.
* ``prompt_toolkit >= 2`` will start up even if Pygments isn't present
* Fixed a regression with ``xonfig styles`` reporting ``AttributeError: module 'pygments' has no attribute 'styles'``
* ptk dependent xontribs (that use custom keybindings) now work with both ptk1
  and ptk2
* Fixed async tokenizing issue on Python v3.7.

v0.7.0
====================

**Added:**

* Added a hook for printing a spcial display method on an object.
* Support for ``prompt_toolkit 2.0``
* The ``--shell-type`` (``$SHELL_TYPE``) may now be specified using
  shortcuts, such as ``rl`` for ``readline`` and ``ptk2`` for
  ``prompt_toolkit2``. See ``xonsh --help`` for a full listing
  of available aliases.

**Fixed:**

- Restored AUGASSIGN_OPS definition, which was inadvertently removed.

v0.6.10
====================

**Added:**

* ``xonsh.lib.subprocess.check_output`` as a ``check_output`` drop in

**Fixed:**

* ``xonsh.lib.subprocess.run`` doesn't change dirs unless asked

v0.6.9
====================

**Added:**

* New xonsh standard library ``xonsh.lib`` subpackage
* ``xonsh.lib.os.indir`` a context manager for temporarily entering into a directory
* ``xonsh.lib.subprocess.run`` and ``xonsh.lib.subprocess.check_call``
  subprocess stubs using ``xonsh`` as the backend

**Fixed:**

* update xoreutils._which.which() for python 3.x support.
* Fixed issue with incorrect strip lengths for prefixes with quotes in them
* Fixed bash script to also consider leading double quotes and not just single
  quotes
* Launching xonsh with prompt_toolkit version 2.x no longer fails, and instead fallsback to readline shell. This is a patch for until prompt_toolkit 2.x support is fully implemented. See PR #2570

v0.6.8
====================

**Fixed:**

* completions relative to ``CDPATH`` only trigger when used with ``cd``
* Import of ``ctypes.util`` is now explictly performed, as needed.
  Python v3.7 no longer imports this module along with ``ctypes``.
* Fixed issue with pygments-cache not properly generating a cache the first
  time when using prompt-toolkit. This was due to a lingering lazy import
  of ``pkg_resources`` that has been removed.
* Removed duplicate ``pip`` completer
* ``bash_completion`` no longer returns invalid prefix lengths for directories
  containing escape file names
* Fixed error when using redirection (e.g., >) on Windows.

v0.6.7
====================

**Changed:**

* Xonsh live example has been re-added back to the documentation.

**Fixed:**

* Fixed issue where xonsh would fail to properly return the terminal prompt
  (and eat up 100% CPU) after a failed subprocess command in interactive mode
  if ``$RAISE_SUBPROC_ERROR = True``.
* ``xonsh.tokenize.tok_name`` no longer mutates the standard library ``tokenize.tok_name``.
  A copy is made on import instead.

v0.6.6
====================

**Added:**

* A multipurpose add method to EnvPath. For example:

  .. code-block:: xonshcon

    $ $PATH
    EnvPath(
    ['/usr/bin', '/usr/local/bin', '/bin']
    )
    $ $PATH.add('~/.local/bin', front=True); $PATH
    EnvPath(
    ['/home/user/.local/bin', '/usr/bin', '/usr/local/bin', '/bin']
    )
    $ $PATH.add('/usr/bin', front=True, replace=True); $PATH
    EnvPath(
    ['/usr/bin', '/home/user/.local/bin', '/usr/local/bin', '/bin']
    )
* Added ``pygments-cache`` project in order to reduce startup time.

**Changed:**

* built_ins.py, corrected a typo.
* test/test_news.py
  It now uses regex to verify the format of rst files
* Mercurial (``hg``) will no longer run in a threadable subprocess when
  it is run in interactive mode.

**Fixed:**

* issue 2313

v0.6.5
====================

**Added:**

* Wizard ``FileInsterter`` node class now has ``dumps()`` method for
  converting a mapping to a string to insert in a file.

**Fixed:**

* Fixed issue with ``xonfig wizard`` writer failing to write valid run control
  files for environment variables that are containter types. In particular,
  the storage of ``$XONSH_HISTORY_SIZE`` has been fixed.

v0.6.4
====================

**Changed:**

* Error message improved for sourcing foreign shells, when file cannot be found
  or there is a syntax error.

**Fixed:**

* Fixed issues with readline completer tab completing entries
  with spaces.
* Fixed ``xonsh.tools.columnize()`` bug the prevented single-row
  input from being columnized correctly.
* Now honor ASYNC and AWAIT as keywords in tokenizer on
  Python 3.7.

v0.6.3
====================

**Added:**

* Docs for using ``@(<expr>)`` as a way to run commands and a gotcha about
  list of strings vs single string expressions.
* Ubuntu versions which xonsh is packaged for (with xonsh versions)

**Changed:**

* When reporting errors without a traceback (i.e. ``$XONSH_SHOW_TRACEBACK = False``) and the error is a ``XonshError``
  the exception type is not longer printed.
* ``CommandPipeline.proc`` may now be ``None``, to accomodate when the process
  fails to even start (i.e. a missing command or incorrect permisions).

**Fixed:**

* The ``curl`` command will now be run in a thread, which prevents documents that
  do not end in a newline from writing over the next prompt and vice versa.
* Fix bug on Windows when ``PATHEXT`` environment variable did not exist.
  This also fixes building the xonsh documentation on Windows.
* Fixed a bug in the `free_cwd <http://xon.sh/xontribs.html#free-cwd>`__ Windows Xontrib, which caused the prompt to error if the current directory is
  deleted/renamed from an other process.
* Fixed issue with ``$XONSH_SHOW_TRACEBACK`` not being respected in subprocess
  mode when the command could not be found or had incorrect permissions.

v0.6.2
====================

**Added:**

* Release tarballs now include licenses and minimal documentation for xonsh and ply
* Wizard now has a ``FileInserter`` node that allows blocks to be
  inserted and replaced inside of a file. This adheres to conversion
  rules fordumping as provided on this node.
* New ``xonsh.wizard.StateVisitor.flatten()`` method for flattening the
  current state.

**Changed:**

* The xonsh startup wizard will only be triggered if no xonshrc files exist
  and the file ``~/.local/config/xonsh/no-wizard`` is not present.
* The ``xonfig wizard`` command will now run write out to the xonshrc file.
* Wizard nodes ``Save`` and ``Load`` had their names changed to ``SaveJSON``
  and ``LoadJSON``.

**Removed:**

* Static configuration is dead (``config.json``), long live run control (``xonshrc``)!
* The following evironment variables have been removed as they are no longer needed:
  ``$LOADED_CONFIG`` and ``$XONSHCONFIG``.
* Many support functions for static configuration have also been removed.

**Fixed:**

* Files starting with ``#`` are auto-escaped by TAB completion

v0.6.1
====================

**Added:**

* Support for MSYS2.
* New ``xonsh.main.setup()`` function for starting up xonsh in 3rd party
  packages.

**Changed:**

* Updated CircleCI to use circle version 2.0
* Replaced StopIteration with return in CommandPipeline.iterraw.
* Xonsh run control now also looks for the XDG-compliant file
  ``~/.config/xonsh/rc.xsh`` at startup.

**Fixed:**

* Clean out ``$LINES`` and ``$COLUMNS`` if set, preventing some programs from drawing weirdly
* cat from xoreutils now outputs in configured encoding
* Fixed hanging issue with pipelines whose middle processes exit before the
  first or last process.
* Fixed issue where xonsh would deduplicate spaces from bash autocompletions.
* Fixed failing redirections from stderr to stdout when the command
  being executed was a callable alias.
* Ensure that the ``free_cwd`` contrib can only be active on pure Windows.
* Made an exceptional case in ``iglobpath()`` more robust when Python globbing
  fails for due to strange scrandir issue.
* Unexpected process suspension on Cygwin and MSYS2.
* ``$XONSH_APPEND_NEWLINE`` will now default to True when in interactive mode.
* Fixed issue with uncalled lambdas being run in subproc mode.
* Lambda nodes not have proper line and column numbers in AST.
* Properly throw ``SyntaxError`` when no kwargs are defined
  in a kwarg-only function. This used to throw a
  ``TypeError: 'NoneType' object is not iterable``.
* Addressed issue where encoding and errors were None when teeing output.
* Commands like ``git c`` would complete to ``git 'checkout '`` because git adds an extra space
  to the end of the completion, which was being captured in the completion. Xonsh now fixes the git issue
  while retaining all whitespace when there is other internal whitespace.

v0.6.0
====================

**Added:**

* Added an alias command, matching bash's implementation, available as part of bashisms.
* New ``$AUTO_SUGGEST_IN_COMPLETIONS`` environment variable that enables/disables
  whether the auto-suggestion result appears in the tab completions.
* Added ``__add__()`` and ``__radd__()`` methods to ``EnvPath``.
* Xonsh now supports f-strings, as in Python v3.6+.
* Added ``ipython`` as unthreadable in command cache threadabilty predictors.
* Added ``whole_word_jumping`` xontrib
* Added ``$XONSH_APPEND_NEWLINE`` environment variable
* Support for PEP 515: Underscores in Numeric Literals
*  ``xonsh.color_tools.make_palette()``

  Simple rename of the pre-existing
  ``xonsh.color_tools.make_pallete()`` function.

*  ``xonsh.tools.decorator()`` function/method decorator.

  This allows for an API function to be annotated with a
  decorator that documents deprecation, while also tying in
  functionality that will warn a user that the function has
  been deprecated, and, raise an ``AssertionError`` if the
  function has passed its expiry date.
* New xontrib ``schedule`` (Xonsh Task Scheduler)

**Changed:**

* ``on_pre_prompt`` is now fired before prompt calculations are made, allowing modifications to the prompt.
* ``emacsclient`` will now return false in the threadable predictors.
* Improved the autopair behavior to match that of popular code editors.
* Moved the lazy ``pkg_resources`` package back to its original
  place. The will hopefully address some of the slowdown issues
  experiances on some platforms.
* When xonsh is used to run an ``xsh`` script, the ``xonshrc`` is not loaded
* Change in the behavior of the default predictor with binary analysis. The pattern ``libgpm`` is use, assuming when ``gpm`` is used the program is not threadable. This change solves issues with programs as ``links``.
* Error messages added to the ``source`` command if it is used with a language
  that is not xonsh or Python.

**Deprecated:**

*  ``xonsh.color_tools.make_pallette()``

  Deprecated in release 0.5.10 and will be removed in release 0.6.0.

**Fixed:**

* Now f-strings can be used inside @() without explicit enclosing command in ![]
* Fix for ``x, y, *z = ...`` unpacking.
* Git branch detection now correctly passes the environment down to the subprocess
  call.  This allows for branch detection when git is installed into a non-standard
  location.
* Escape regex characters in ``path_complete`` to avoid regex parsing errors for
  certain combinations of characters in path completer
* gistatus: Fixed hash not being shown when in detaced HEAD and there are no tags
* Fix branch colorization when ``git`` or ``hg`` are aliases.
* Fixed leftover ``.git/index.lock`` in ``gitstatus``
* Made JSON history loading more robust to corrupt files.
* Starting a new command with an open parentheses will no longer
  throw a traceback when ``$UPDATE_COMPLETIONS_ON_KEYPRESS`` is
  ``True``.
* Automatically wrapping subprocess calls would sometimes include
  semincolons and other line-ending tokens, rather than stopping at them.
  This has been fixed.
*  Numerous spelling errors in documentation, docstrings/comments, text
  strings and local variable names.

*  Spelling error in the ``xonsh.color_tools.make_pallete()`` public
  function declaration. This was fixed by renaming the function to
  ``xonsh.color_tools.make_palette()`` while maintaining a binding
  of ``make_pallete()`` to the new ``make_palette()`` in case users
  are already used to this API.
* Fixed issue with starting triple quote strings being run as a command.
* Fixed a problem with escaping charet (^) character for cmd.exe in the source-cmd function.
* ``EOF in multi-line statement`` errors were misreported as being on line 0.
  Now they are correctly reported as being on the last line of the file.

v0.5.12
====================

**Fixed:**

* Fixed ``release.xsh`` to prevent it from dirtying the repo on release and
  leading to an unwanted ``.dev`` suffix on the version number

v0.5.11
====================

**Added:**

* ``release.xsh`` creates a github release with the merged news entries as the
  release body

**Fixed:**

* ``xonfig`` now displays the proper value for "on linux"

v0.5.10
====================

**Added:**

* Added ``xclip`` and ``repo`` to default threadable predictors (Issues #2355
  and #2348)
* Pretty printing of the $PATH variable
* Add "fzf-widgets" xontrib which provides fuzzy search productivity widgets
  with on custom keybindings to xontrib list.
* New ``free_cwd`` xontrib for Windows, which prevent the current directory from being locked when the prompt is shown.
  This allows the other programs or Windows explorer to delete the current or parent directory. This is accomplished by
  resetting the CWD to the users home directory temporarily while the prompt is displayed. The directory is still locked
  while any commands are processed so xonsh still can't remove it own working directory.

**Changed:**

* Codecov threshold to 2%

**Removed:**

* On Windows environments variables in wrapped like``%foo%`` are no longer expanded automatically.

**Fixed:**

* Fixed the ``--rc`` option so it now runs xonsh with the specified rc file
* ``@$`` operator now functions properly when returned command is an alias
* Correct line continuation would not work on Windows if the line continuations were used
  in the ``xonshrc`` file.
* Fixed a regression in the Windows ``sudo`` command, that allows users to run elevated commands in xonsh.
* Fix echo command from xoreutils.
* Fixed a bug on Windows which meant xonsh wasn't using PATH environment variable but instead relying on a default
  value from the windows registry.

v0.5.9
====================

**Added:**

* Add ``Alt .`` keybinding to ``bashisms-xontrib`` to insert last argument of
  previous command into current buffer

**Fixed:**

* Fix crash when openSSH version of bash is on PATH on Windows.
* Added missing ensurers to make sure that ``bool`` env_vars are bools and
  ``int`` env_vars are integers:

  * ``DIRSTACK_SIZE``
  * ``EXPAND_ENV_VARS``
  * ``PUSHD_MINUS``
  * ``PUSHD_SILENT``
  * ``SUGGEST_COMMANDS``
  * ``SUGGEST_MAX_NUM``
  * ``SUGGEST_THRESHOLD``

v0.5.8
====================

**Changed:**

* The ``xonsh.platform.os_environ`` wrapper is  now case-insensitive and
  case-preserving on Windows.
* The private ``_TeeStd`` class will no longer attempt to write to a
  standard buffer after the tee has been 'closed' and the standard
  buffer returned to the system.

**Fixed:**

* Fixed a bug on py34 where os.scandir was used by accident.
* Line continuations (``\\``) is subproc mode will no longer consume the
  surrounding whitespace.
* Fixed a bug if foreign_shell name was not written in lower case in
  the static configuration file ``config.json``
* Fixed a regression on Windows where caused ``which`` reported that the
  ``PATH`` environment variable could not be found.
* Fixed issue with foregrounding jobs that were started in the background.
* Fixed that ``Ctrl-C`` crashes xonsh after running an invalid command.
* Fixed an potential ``ProcessLookupError`` issue, see #2288.

v0.5.7
====================

**Added:**

* New ``color_tools`` module provides basic color tools for converting
  to and from various formats as well as creating palettes from color
  strings.
* Redirections may now be used in string and list-of-strings
  aliases.
* Subprocess redirection may now forego the whitespace between the
  redirection and a file name.  For example,
  ``echo hello world >/dev/null``.
* Add a ``-P`` flag to the ``cd`` function in order to change directory and
  following symlinks.
* ``xonfig tutorial`` command to launch the http://xon.sh/tutorial in the
  browser.
* ``@(...)`` syntax now supports generators and tuples without parentheses.
* Sourcing foreign shells now have the ``--show`` option, which
  lets you see when script will be run, and the ``--dryrun``
  option which prevents the source from actually taking place.
  Xonsh's foreign shell API also added these keyword arguments.
* Subprocess mode now supports subshells. Place any xonsh
  code between two parentheses, e.g. ``(cmd)``, to run
  this command in a separate xonsh subprocess.
* Foreign shell aliases now have the ability to take extra arguments,
  if needed.
* Xonsh will issue a warning message when the current working
  directory has been remove out from under it and not replaced
  prior to running the next command.
* Line continuation backslashes are respected on Windows in the PTK shell if
  the backspace is is preceded by a space.
* Added ``ponysay`` as a command which will usually not run in a
  threaded mode in the commands cache.
* New ``jsonutils`` module available for serializing special
  xonsh objects to JSON.

**Changed:**

* The literal tokens ``and`` and ``or`` must be surrounded by
  whitespace to delimit subprocess mode. If they do not have
  whitespace on both sides in subproc mode, they are considered
  to be part of a command argument.
* The ``xontrib`` command is now flagged as unthreadable and will be
  run on the main Python thread. This allows xontribs to set signal
  handlers and other operations that require the main thread.
* nvim (Neovim) has been flagged as unthreadable
* The interactive prompt will now catch ``SystemExit`` and, instead
  of exiting the session, will refresh the prompt. This is the same
  process as for keyboard interrupts.
* Xonsh no longer launches the wizard for new users. Instead a welcome screen is
  shown which says how to launch the wizard.
* Added Windows ``expanduser()``-like function which prevents
  the expansion of ``~`` that are not followed by a path
  separator.
* Collecting xonsh history files was reported to have random runtime
  OSError failures. This exception is now handled, just in case. The
  The exception will still be printed in debug mode.
* ``Shell.stype`` has been renamed to ``Shell.shell_type``.
* The configuration wizard now displays the proper control sequence to leave
  the wizard at the to start of the wizard itself. Note that this is Ctrl+D for
  readline and Ctrl+C for prompt-toolkit.
* Callable alias proxy functions are now more friendly to
  ``functools.partial()``.
* ``prompt.vc.get_hg_branch`` now uses ``os.scandir`` to walk up the filetree
  looking for a ``.hg`` directory. This results in (generally) faster branch
  resolution compared to the subprocess call to ``hg root``.
* Xonsh's script and code caches will are now invalidated whenever the
  xonsh version changes for a given Python version.
* Autowrapping of subprocess globs has been improved to cover
  more cases that are ambiguous with Python syntax.
* Job control info when foregrounding or backgrounding jobs will now
  only be displayed when xonsh is in interactive mode.
* Enabled virtual terminal processing in the prompt-toolkit shell for Windows.

**Fixed:**

* 3rd party pygments styles (like solorized or monokailight) are now
  able to be used in xonsh. These styles are dynamically created upon
  first use, rather than being lazily loaded by xonsh.
* On Windows, ``os.environ`` is case insensitive. This would potentially
  change the case of environment variables set into the environment.
  Xonsh now uses ``nt.environ``, the case sensitive counterpart, to avoid
  these issues on Windows.
* Fix how ``$PWD`` is managed in order to work with symlinks gracefully
* ``history replay`` no longer barfs on ``style_name`` when setting up the
  environment
* ``Shell.shell_type`` is now properly set to the same value as ``$SHELL_TYPE``.
* Fixed ``source-zsh`` to work with zsh v5.2.
* Fixed issue where ``del (x, y)`` would raise a syntax error.
* Certain vim commands issue commands involving subshells,
  and this is now supported.
* Null bytes handed to Popen are now automatically escaped prior
  to running a subprocess. This prevents Popen from issuing
  embedded null byte exceptions.
* Xonsh will no longer crash is the current working directory is
  removed out from under it.
* Multiline strings can now be written in subprocess mode.
* PTK completions will now correctly deduplicate autosuggest completions
  and display completions values based on the cursor position.
* Fixed bug where trailing backspaces on Windows paths could be interpreted
  as line continuations characters. Now line continuation characters must be
  preceded by a space on Windows. This only applies to xonsh in interactive
  mode to ensure  scripts are portable.
* Importing ``*.xsh`` files will now respect the encoding listed in
  that file and properly fallback to UTF-8. This behaviour follows
  the rules described in PEP 263.
* Wizard is now able to properly serialize environment paths.

v0.5.6
====================

**Added:**

* New core utility function aliases (written in pure Python) are now
  available in ``xonsh.xoreutils``. These include: ``cat``, ``echo``,
  ``pwd``, ``tee``, ``tty``, and ``yes``. These are not enabled by default.
  Use the new ``coreutils`` xontrib to load them.
* CircleCI test post codecov run
* The ``trace`` will automatically disable color printing when
  stdout is not a TTY or stdout is captured.
* New ``jedi`` xontrib enables jedi-based tab completions when it is loaded.
  This supersedes xonsh's default Python-mode completer.
* The lexer has a new ``split()`` method which splits strings
  according to xonsh's rules for whitespace and quotes.
* New events for hooking into the Python import process are now available.
  You can now provide a handler for:

  - ``on_import_pre_find_spec``
  - ``on_import_post_find_spec``
  - ``on_import_pre_create_module``
  - ``on_import_post_create_module``
  - ``on_import_pre_exec_module``
  - ``on_import_post_exec_module``

**Changed:**

* The prompt toolkit shell's first completion will now be the
  current token from the auto-suggestion, if available.
* Sourcing foreign shells will now safely skip applying aliases
  with the same name as existing xonsh aliases by default.
  This prevents accidentally overwriting important xonsh standard
  aliases, such as ``cd``.

**Fixed:**

* Threadable prediction for subprocesses will now consult both the command
  as it was typed in and any resolved aliases.
* The first prompt will no longer print in the middle of the line if the user has
  already started typing.
* Windows consoles will now automatically enable virtual terminal processing
  with the readline shell, if available. This allows the full use of ANSI
  escape sequences.
* On the Windows readline shell, the tab-completion suppression prompt will no
  longer error out depending on what you press.
* Fixed issue with subprocess mode wrapping not respecting line continuation
  backslashes.
* Handle a bug where Bash On Windows causes platform.windows_bash_command()
  to raise CalledProcessError.
* Fixed issues pertaining to completing from raw string paths.
  This is particularly relevant to Windows, where raw strings
  are inserted in path completion.
* Replace deprecated calls to ``time.clock()`` by calls to
  ``time.perf_counter()``.
* Use ``clock()`` to set the start time of ``_timings`` in non-windows instead
  of manually setting it to ``0.0``.
* The ``trace`` utility will now correctly color output and not
  print extraneous newlines when called in a script.
* The ``@$(cmd)`` operator now correctly splits strings according to
  xonsh semantics, rather than just on whitespace using ``str.split()``.
* The ``mpl`` xontrib has been updated to improve matplotlib
  handling. If ``xontrib load mpl`` is run before matplotlib
  is imported and xonsh is in interactive mode, matplotlib
  will automatically enter interactive mode as well. Additionally,
  ``pyplot.show()`` is patched in interactive mode to be non-blocking.
  If a non-blocking show fails to draw the figure for some reason,
  a regular blocking version is called.
* Fixed issues like ``timeit ls`` causing OSError - "Inappropriate ioctl
  for device".
* Fixed a potential "OSError: [Errno 22] Invalid argument" to increase job
  control stability.

v0.5.5
====================

**Added:**

* New ``--rc`` command line option allows users to specify paths to run control
  files from the command line. This includes both xonsh-based and JSON-based
  configuration.
* New ``$UPDATE_COMPLETIONS_ON_KEYPRESS`` controls whether or not completions
  will automatically display and update while typing. This feature is only
  available in the prompt-toolkit shell.

**Changed:**

* Xonsh scripts now report ``__file__`` and ``__name__`` when run as scripts
  or sourced. These variables have the same meaning as they do in Python
  scripts.
* ``$XONSHRC`` and related configuration variables now accept JSON-based
  static configuration file names as elements. This unifies the two methods
  of run control to a single entry point and loading system.
* The ``xonsh.shell.Shell()`` class now requires that an Execer instance
  be explicitly provided to its init method. This class is no longer
  responsible for creating an execer an its dependencies.
* Moved decorators ``unthreadable``, ``uncapturable`` from
  ``xonsh.proc`` to ``xonsh.tools``.
* Some refactorings on jobs control.

**Deprecated:**

* The ``--config-path`` command line option is now deprecated in favor of
  ``--rc``.

**Removed:**

* ``xonsh.environ.DEFAULT_XONSHRC`` has been removed due to deprecation.
  For this value, please check the environment instead, or call
  ``xonsh.environ.default_xonshrc(env)``.

**Fixed:**

* Command pipelines that end in a callable alias are now interruptable with
  ``^C`` and the processes that are piped into the alias have their file handles
  closed. This should ensure that the entire pipeline is closed.
* Fixed issue where unthreadable subprocs were not allowed to be
  captured with the ``$(cmd)`` operator.
* The ``ProcProxy`` class (unthreadable aliases) was not being executed and would
  hang if the alias was capturable. This has been fixed.
* Fixed a ``tcsetattr: Interrupted system call`` issue when run xonsh scripts.
* Fixed issue with ``ValueError`` being thrown from ``inspect.signature()``
  when called on C-extension callables in tab completer.
* Fixed issue that ``ls | less`` crashes on Mac.
* Threadable prediction was incorrectly based on the user input command, rather than
  the version where aliases have been resolved. This has been corrected.

v0.5.4
====================

**Added:**

* Add alias ``xip`` ("kip") so that xonsh's Python environment (whatever that is) can be modified.
* HistoryEntry, a SimpleNamespace object that represents a command in history.
* ``xonsh.completers.bash_completion`` module
* Added option to report timing information of xonsh startup times. Start xonsh
  with the ``--timings`` flag to use the feature.
* The Python tab completer will now complete the argument names of functions
  and other callables.
* Uptime module added to ``xonsh.xoreutils``. This can report the system
  boot time and up time.
* The environment variable ``XONSH_HISTORY_BACKEND`` now also supports a
  value of class type or a History Backend instance.
* ``on_envvar_new`` event that fires after a new envvar is created.
* ``on_envvar_change`` event that fires after an envvar is changed.

**Changed:**

* history indexing api to be more simple, now returns HistoryEntry.
* Decoupled ``bash_completion`` from xonsh project and added shim back to
  xonsh.
* The JSON history backend will now unlock history files that were created
  prior to the last reboot.

**Fixed:**

* Fixed broken bash completions on Windows if 'Windows Subsystem for Linux' is installed.
* Readline history would try to read the first element of history prior to
  actually loading any history. This caused an exception to be raised on
  Windows at xonsh startup when using pyreadline.
* Fixed issue with readline tab completer overwriting initial prefix in
  some instances.
* Fixed issue wherein if ``git`` or (presumably) ``hg`` are aliased, then branch
  information no longer appears in the ``$PROMPT``
* Fixed an issue with commands that background themselves (such as
  ``gpg-connect-agent``) not being able to be run from within xonshrc.

v0.5.3
====================

**Added:**

* Tab completion xontrib for python applications based on click framework.
* Added ``on_transform_command`` event for pre-processing that macros can't handle.
* Autodetection of backgroundability by binary analysis on POSIX.
* New argument ``expand_user=True`` to ``tools.expand_path``.
* New ``$COMPLETION_QUERY_LIMIT`` environment variable for setting the
  number of completions above which the user will be asked if they wish to
  see the potential completions.
* Users may now redirect stdout to stderr in subprocess mode.

**Changed:**

* The ``Block`` and ``Functor`` context managers from ``xonsh.contexts`` have been
  rewritten to use xonsh's macro capabilities. You must now enter these via the
  ``with!`` statement, e.g. ``with! Block(): pass``.
* The ``distributed`` xontrib now needs to use the ``with!`` statement, since it
  relies on ``Functor``.
* ``telnet`` has been flagged as unthreadable.
* When ``$DYNAMIC_CWD_ELISION_CHAR`` is non empty and the last dir of cwd is too
  long and shortened, the elision char is added at the end.
* ``pygments`` is no longer a strict dependency of the ``prompt_toolkit``
  backend. If ``pygments`` is not installed, the PTK backend will use the
  default ansi color settings from the terminal. Syntax highlighting requires
  that ``pygments`` is installed.
* Events are now keyword arguments only
* Restored ``on_precommand`` to its original signature.
* Move ``built_ins.expand_path`` to ``tools.expand_path``.
* Rename ``tools.expandpath`` to ``tools._expandpath``.
* Added ``gvim`` command to unthreadable predictors.
* The ``source`` alias now passes ``$ARGS`` down to file it is sourcing.

**Removed:**

* ``XonshBlockError`` has been removed, since it no longer serves a purpose.

**Fixed:**

* ``PopenThread`` will now re-issue SIGINT to the main thread when it is
  received.
* Fixed an issue that using sqlite history backend does not kill unfinished
  jobs when quitting xonsh with a second "exit".
* Fixed an issue that xonsh would fail over to external shells when
  running .xsh script which raises exceptions.
* Fixed an issue with ``openpty()`` returning non-unix line endings in its buffer.
  This was causing git and ssh to fail when xonsh was used as the login shell on the
  server. See https://mail.python.org/pipermail/python-list/2013-June/650460.html for
  more details.
* Restored the ability to ^Z and ``fg`` processes on posix platforms.
* CommandPipelines were not guaranteed to have been ended when the return code
  was requested. This has been fixed.
* Introduce path expansion in ``is_writable_file`` to fix
  ``$XONSH_TRACEBACK_LOGFILE=~/xonsh.log``.
* Backgrounding a running process (^Z) now restores ECHO mode to the terminal
  in cases where the subprocess doesn't properly restore itself. A major instance
  of this behaviour is Python's interactive interpreter.
* Readline backend would not ask the user to confirm the printing of completion
  options if they numbered above a certain value. Instead they would be dumped to
  the screen. This has been fixed.
* Jupyter kernel was no longer properly running subprocess commands.
  This has been fixed.
* The filename is applied to the target of the ``source`` alias, providing better
  tracebacks.

v0.5.2
====================

**Added:**

* Added ``weechat`` to default predictors
* ``$DYNAMIC_CWD_ELISION_CHAR`` environment variable to control how a shortened
  path is displayed.

**Changed:**

* ``_ret_code`` function of ``prompt_ret_code`` xontrib return now ``None`` when
  return code is 0 instead of empty string allowing more customization of prompt
  format.

**Fixed:**

* Minor Python completer token counting bug fix.
* multiline syntax error in PTK shell due to buffer not being reset
* Segfaults and other early exit signals are now reported correctly,
  again.
* ``tests/bin/{cat,pwd,wc}`` shebang changed to python3

v0.5.1
====================

**Fixed:**

* Fixed xonfig raising error when xonsh is not installed from source.

v0.5.0
====================

**Added:**

* $XONTRIB_MPL_MINIMAL environment variable can be set to change if plots are minimalist or as-seen
* xontrib-mpl now supports iTerm2 inline image display if iterm2_tools python package is installed
* Xonsh now will fallback to other shells if encountered errors when
  starting up.
* Added entry to customization faq re: ``dirs`` alias (#1452)
* Added entry to customization faq re: tab completion selection (#1725)
* Added entry to customization faq re: libgcc core dump (#1160)
* Section about quoting in the tutorial.
* The ``$VC_HG_SHOW_BRANCH`` environment variable to control whether to hide the hg branch in the prompt.
* xonfig now contains the latest git commit date if xonsh installed
  from source.
* Alt+Enter will execute a multiline code block irrespective of cursor position
* Windows now has the ability to read output asynchronously from
  the console.
* Use `doctr <https://drdoctr.github.io/doctr/>`_ to deploy dev docs to github pages
* New ``xonsh.proc.uncapturable()`` decorator for declaring that function
  aliases should not be run in a captured subprocess.
* New history backend sqlite.
* Prompt user to install xontrib package if they try to load an uninstalled
  xontrib
* Callable aliases may now take a final ``spec`` argument, which is the
  corresponding ``SubprocSpec`` instance.
* New ``bashisms`` xontrib provides additional Bash-like syntax, such as ``!!``.
  This xontrib only affects the command line, and not xonsh scripts.
* Tests that create testing repos (git, hg)
* New subprocess specification class ``SubprocSpec`` is used for specifying
  and manipulating subprocess classes prior to execution.
* New ``PopenThread`` class runs subprocesses on a a separate thread.
* New ``CommandPipeline`` and ``HiddenCommandPipeline`` classes manage the
  execution of a pipeline of commands via the execution of the last command
  in the pipeline. Instances may be iterated and stream lines from the
  stdout buffer. These pipelines read from the stdout & stderr streams in a
  non-blocking manner.
* ``$XONSH_STORE_STDOUT`` is now available on all platforms!
* The ``CommandsCache`` now has the ability to predict whether or not a
  command must be run in the foreground using ``Popen`` or may use a
  background thread and can use ``PopenThread``.
* Callable aliases may now use the full gamut of functions signatures:
  ``f()``, ``f(args)``,  ``f(args, stdin=None)``,
  ``f(args, stdin=None, stdout=None)``, and `
  ``f(args, stdin=None, stdout=None, stderr=None)``.
* Uncaptured subprocesses now receive a PTY file handle for stdout and
  stderr.
* New ``$XONSH_PROC_FREQUENCY`` environment variable that specifies how long
  loops in the subprocess framework should sleep. This may be adjusted from
  its default value to improved performance and mitigate "leaky" pipes on
  slower machines.
* ``Shift+Tab`` moves backwards in completion dropdown in prompt_toolkit
* PromptFormatter class that holds all the related prompt methods
* PromptFormatter caching when building the prompt
* p-strings: ``p'/foo/bar'`` is short for ``pathlib.Path('/foo/bar')``
* byte strings: prefixes other than ``b'foo'`` (eg, ``RB'foo'``) now work
* Backticks for regex or glob searches now support an additional modifier
  ``p``, which causes them to return Path objects instead of strings.
* New ``BOTTOM_TOOLBAR`` environment variable to control a bottom toolbar as specified in prompt-toolkit
* New ``$XONSH_STDERR_PREFIX`` and ``$XONSH_STDERR_POSTFIX`` environment
  variables allow the user to print a prompt-like string before and after
  all stderr that is seen. For example, say that you would like stderr
  to appear on a red background, you might set
  ``$XONSH_STDERR_PREFIX = "{BACKGROUND_RED}"`` and
  ``$XONSH_STDERR_PREFIX = "{NO_COLOR}"``.
* New ``xonsh.pyghooks.XonshTerminal256Formatter`` class patches
  the pygments formatter to understand xonsh color token semantics.
* Load events are now available
* New events added: ``on_post_init``, ``on_pre_cmdloop``, ``on_pre_rc``, ``on_post_rc``, ``on_ptk_create``
* Completion for ``xonsh`` builtin functions ``xontrib`` and ``xonfig``
* Added a general customization FAQ page to the docs to collect various
  tips/tricks/fixes for common issues/requests
* ``test_single_command`` and ``test_redirect_out_to_file`` tests in ``test_integrations``
* Add note that the target of redirection should be separated by a space.

**Changed:**

* CircleCI now handles flake8 checks
* Travis doesn't allow failures on nightly
* ``get_hg_branch`` runs ``hg root`` to find root dir and check if we're in repo
* The default style will now use the color keywords (#ansired, #ansidarkred)
  to set colors that follow the terminal color schemes. Currently, this requires
  prompt_toolkit master (>1.0.8) and pygments master (2.2) to work correctly.
* ``vox activate`` now accepts relative directories.
* Updated the effectivity of ``$XONSH_DEBUG`` on debug messages.
* Better documentation on how to get nice colors in Windows' default console
* All custom prompt_toolkit key binding filters now declared with the
  ``@Condition`` decorator
* The style for the prompt toolkit completion menu is now lightgray/darkgray instead of turquoise/teal
* landscape.io linting now ignores ply directory
* ``history`` help messages to reflect subcommand usage
* Quote all paths when completion if any of the paths needs be quoted,
  so that bash can automatically complete to the max prefix of the paths.
* Tee'd reads now occur in 1kb chunks, rather than character-by-character.
* The ``which`` alias no longer has a trailing newline if it is captured.
  This means that ``$(which cmd)`` will simply be the path to the command.
* The following commands are, by default, predicted to be not threadable
  in some circumstances:

    * bash
    * csh
    * clear
    * clear.exe
    * cls
    * cmd
    * ex
    * fish
    * htop
    * ksh
    * less
    * man
    * more
    * mutt
    * nano
    * psql
    * ranger
    * rview
    * rvim
    * scp
    * sh
    * ssh
    * startx
    * sudo
    * tcsh
    * top
    * vi
    * view
    * vim
    * vimpager
    * xo
    * xonsh
    * zsh
* The ``run_subproc()`` function has been replaced with a new implementation.
* Piping between processes now uses OS pipes.
* ``$XONSH_STORE_STDIN`` now uses ``os.pread()`` rather than ``tee`` and a new
  file.
* The implementation of the ``foreground()`` decorator has been moved to
  ``unthreadable()``.
* ``voxapi.Vox`` now supports ``pathlib.Path`` and ``PathLike`` objects as virtual environment identifiers
* Renamed FORMATTER_DICT to PROMPT_FIELDS
* BaseShell instantiates PromptFormatter
* readline/ptk shells use PromptFormatter
* Updated the bundled version of ``ply`` to current master available
* vended ``ply`` is now a git subtree to help with any future updates
* ``WHITE``  color keyword now means lightgray and ``INTENSE_WHITE`` completely white
* Removed ``add_to_shell`` doc section from ``*nix`` install pages and instead
  relocated it to the general customization page
* Moved a few ``*nix`` customization tips from the linux install page to the general
  customization page

**Removed:**

* coverage checks
* ``CompletedCommand`` and ``HiddenCompletedCommand`` classes have been removed
  in favor of ``CommandPipeline`` and ``HiddenCommandPipeline``.
* ``SimpleProcProxy`` and ``SimpleForegroundProcProxy`` have been removed
  in favor of a more general mechanism for dispatching callable aliases
  implemented in the ``ProcProxyThread``  and ``ProcProxy`` classes.
* ``test_run_subproc.py`` in favor of ``test_integrations.py``
* Unused imports in many tests
* Many duplicated tests (copypasta)

**Fixed:**

* xontrib-mpl now preserves the figure and does not permanently alter it for viewing
* Fix up small pep8 violations
* Fixed a bug where some files are not showing using bash completer
* Fixed some issues with subprocess capturing aliases that it probably
  shouldn't.
* ``safe_readable()`` now checks for ``ValueError`` as well.
* The scroll bars in the PTK completions menus are back.
* Jupyter kernel installation now respects the setuptools ``root`` parameter.
* Fix ``__repr__`` and ``__str__`` methods of ``SubprocSpec`` so they report
  correctly
* Fixed the message printed when which is unable to find the command.
* Fixed a handful of sphinx errors and warnings in the docs
* Fixed many PEP8 violations that had gone unnoticed
* Fix failure to detect an Anaconda python distribution if the python was install from the conda-forge channel.
* current_branch will try and locate the vc binary once
* May now Crtl-C out of an infinite loop with a subprocess, such as
  ```while True: sleep 1``.
* Fix for stdin redirects.
* Backgrounding works with ``$XONSH_STORE_STDOUT``
* ``PopenThread`` blocks its thread from finishing until command has completed
  or process is suspended.
* Added a minimum time buffer time for command pipelines to check for
  if previous commands have executed successfully.  This is helpful
  for pipelines where the last command takes a long time to start up,
  such as GNU Parallel. This also checks to make sure that output has occurred.
  This includes piping 2+ commands together and pipelines that end in
  unthreadable commands.
* ``curr_branch`` reports correctly when ``git config status.short true`` is used
* ``pip`` completion now filters results by prefix
* Fixed streaming ``!(alias)`` repr evaluation where bytes where not
  streamed.
* Aliases that begin with a comma now complete correctly (no spurious comma)
* Use ``python3`` in shebang lines for compatibility with distros that still use Python 2 as the default Python
* STDOUT is only stored when ``$XONSH_STORE_STDOUT=True``
* Fixed issue with alias redirections to files throwing an OSError because
  the function ProcProxies were not being waited upon.
* Fixed issue with callable aliases that happen to call sys.exit() or
  raise SystemExit taking out the whole xonsh process.
* Safely flushes file handles on threaded buffers.
* Proper default value and documentation for ``$BASH_COMPLETIONS``
* Fixed readline completer issues on paths with spaces
* Fix bug in ``argvquote()`` functions used when sourcing batch files on Windows. The bug meant an extra backslash was added to UNC paths.
  Thanks to @bytesemantics for spotting it, and @janschulz for fixing the issue.
* pep8, lint and refactor in pytest style of ``test_ptk_multiline.py``, ``test_replay.py``
* Tab completion of aliases returned a upper cased alias on Windows.
* History show all action now also include current session items.
* ``proc.stream_stderr`` now handles stderr that doesn't have buffer attribute
* Made ``history show`` result sorted.
* Fixed issue that ``history gc`` does not delete empty history files.
* Standard stream tees have been fixed to accept the possibility that
  they may not be backed by a binary buffer. This includes the pipeline
  stdout tee as well as the shell tees.
* Fixed a bug when the pygments plugin was used by third party editors etc.
* CPU usage of ``PopenThread`` and ``CommandPipeline`` has been brought
  down significantly.

v0.4.7
====================

**Added:**

* Define alias for 'echo' on startup for Windows only.
* New coredev `astronouth7303 <https://github.com/astronouth7303>`_ added
* ``which -a`` now searches in ``__xonsh_ctx__`` too
* Info about the xontrib cookiecutter template on xontrib tutorial
* xonsh's optional dependencies may now be installed with the pip extras ``ptk``, ``proctitle``, ``linux``, ``mac``, and ``win``.
* Env ``help`` method to format and print the vardocs for an envvar
* test_news fails if no empty line before a category
* more info on test_news failures
* Added ``on_precommand`` and ``on_postcommand`` `events </events.html>`_
* New ``FORMATTER_DICT`` entry ``gitstatus`` to provides informative git status
* FOREIGN_ALIASES_OVERRIDE envvar to control whether foreign aliases should
  override xonsh aliases with the same name.

* Warning on tutorial about foreign aliases being ignored if a xonsh alias
  exist with the same name if not FOREIGN_ALIASES_OVERRIDE.
* The prompt-toolkit shell now auto-inserts matching parentheses, brackets, and quotes. Enabled via the ``XONSH_AUTOPAIR`` environment variable
* Better syntax highlights in prompt-toolkit, including valid command / path highlighting, macro syntax highlighting, and more
* More info on tutorial about history interaction
* Entry on bash_to_xsh
* Macro context managers are now available via the ``with!``
  syntax.

**Changed:**

* Devguide reflects the current process of releasing through ``release.xsh``
* moved ``which`` from ``xonsh.aliases`` into ``xoreutils.which``
* ``xonsh.prompt.gitstatus.gitstatus`` now returns a namedtuple

* implementation of ``xonsh.prompt.vc_branch.get_git_branch`` and
  ``xonsh.prompt.vc_branch.git_dirty_working_directory`` to use 'git status --procelain'
* moved prompt formatting specific functions from ``xonsh.environ``
  to ``xonsh.prompt.base``
* All prompt formatter functions moved to ``xonsh.prompt`` subpackage
* Printing the message about foreign aliases being ignored happens only
  if XONSH_DEBUG is set.
* Use ``SetConsoleTitleW()`` on Windows instead of a process call.
* Tutorial to reflect the current history command argument functionality
* Macro function arguments now default to ``str``, rather than ``eval``,
  for consistency with other parts of the macro system.

**Removed:**

* aliases that use '!' in their name cause they clash with the macro syntax

**Fixed:**

* Fix regression where bash git completions where not loaded
  automatically when GitForWindows is installed.
* More tokens are now supported in subproc args, such as ``==``.
* Python completions now work without space delimiters, e.g. ``a=matpl<TAB>``
  will complete to ``a=matplotlib``
* Parser would fail on nested, captured suprocess macros. Now, it works,
  hooray!?
* now fires chdir event if OS change in working directory is detected.
* ``xonsh.prompt.vc_branch.git_dirty_working_directory``
  uses ``porcelain`` option instead of using the bytestring
  ``nothing to commit`` to find out if a git directory is dirty
* Fix bug where know commands where not highlighted on windows.
* Fixed completer showing executable in upper case on windows.
* Fixed issue where tilde expansion was occurring more than once before an
  equals sign.
* test_dirstack test_cdpath_expansion leaving stray testing dirs
* Better completer display for long completions in prompt-toolkit
* Automatically append newline to target of ``source`` alias, so that it may
  be exec'd.
* test_news fails when single graves around word
* Slashes in virtual environment names work in vox
* non string type value in $FORMATTER_DICT turning prompt ugly
* whole prompt turning useless when one formatting function raises an exception
* Fix completion after alias expansion
* Fix hard crash when foreign shell functions fails to run. #1715
* Bug where non-default locations for ``XDG_DATA_HOME`` and ``XONSH_DATA_DIR``
  would not expand ``~`` into the home directory
* Auto quote path completions if path contains 'and' or 'or'

* Completion now works on subcommands after pipe, ``&&``, ``||`` and so on.
* cd . and cd <singleCharacter> now work.  Fix indexerror in AUTO_PUSHD case, too.
* Fixed issue with accidentally wrapping generators inside of function calls.
* History indexing with string returns most recent command.

v0.4.6
====================

**Added:**

* New option ``COMPLETIONS_CONFIRM``. When set, ``<Enter>`` is used to confirm
  completion instead of running command while completion menu is displayed.
* NetBSD is now supported.
* Macro function calls are now available. These use a Rust-like
  ``f!(arg)`` syntax.
* Macro subprocess call now available with the ``echo! x y z``
  syntax.
* A new `event subsystem <http://xon.sh/tutorial_events.html>`_ has been added.
* howto install sections for Debian/Ubuntu and Fedora.
* ``History`` methods ``__iter__`` and ``__getitem__``

* ``tools.get_portions`` that yields parts of an iterable
* Added a py.test plugin to collect ``test_*.xsh`` files and run ``test_*()`` functions.
* ``__repr__`` and ``__str__`` magic method on LazyObject

**Changed:**

* ``create_module`` implementation on XonshImportHook
* Results of the ``bash`` tab completer are now properly escaped (quoted) when necessary.
* Foreign aliases that match xonsh builtin aliases are now ignored with a warning.
* ``prompt_toolkit`` completions now only show the rightmost portion
  of a given completion in the dropdown
* The value of ``'none'`` is no longer allowed for ``$SHELL_TYPE`` just during the initial
  load from the environment. ``-D``, later times, and other sources still work.
* ``yacc_debug=True`` now load the parser on the same thread that the
  Parser instance is created. ``setup.py`` now uses this synchronous
  form as it was causing the parser table to be missed by some package
  managers.
* Tilde expansion for the home directory now has the same semantics as Bash.
  Previously it only matched leading tildes.
* Context sensitive AST transformation now checks that all names in an
  expression are in scope. If they are, then Python mode is retained. However,
  if even one is missing, subprocess wrapping is attempted. Previously, only the
  left-most name was examined for being within scope.
* ``dirstack.pushd`` and ``dirstack.popd`` now handle UNC paths (of form ``\\<server>\<share>\...``), but only on Windows.
  They emulate behavior of `CMD.EXE` by creating a temporary mapped drive letter (starting from z: down) to replace
  the ``\\<server>\<share>`` portion of the path, on the ``pushd`` and unmapping the drive letter when all references
  to it are popped.

* And ``dirstack`` suppresses this temporary drive mapping funky jive if registry entry
  ``HKCU\software\microsoft\command processor\DisableUNCCheck`` (or HKLM\...) is a DWORD value 1.  This allows Xonsh
  to show the actual UNC path in your prompt string and *also* allows subprocess commands invoking `CMD.EXE` to run in
  the expected working directory. See https://support.microsoft.com/en-us/kb/156276 to satisfy any lingering curiosity.
* ``lazy_locate_binary`` handles binary on different drive letter than current working directory (on Windows).
* ``_curr_session_parser`` now iterates over ``History``
* New implementation of bash completer with better performance and compatibility.
* ``$COMPLETIONS_BRACKETS`` is now available to determine whether or not to
  include opening brackets in Python completions
* ``xonsh.bat`` tries to use `pylauncher <https://www.python.org/dev/peps/pep-0397/>`_ when available.

**Removed:**

* ``History`` method ``show``
* ``_hist_get_portion`` in favor of ``tools.get_portions``
* Unused imports in proc, flake8.

**Fixed:**

* xonsh modules imported now have the __file__ attribute
* Context sensitive AST transformer was not adding argument names to the
  local scope. This would then enable extraneous subprocess mode wrapping
  for expressions whose leftmost name was function argument. This has been
  fixed by properly adding the argument names to the scope.
* Foreign shell functions that are mapped to empty filenames no longer
  receive aliases since they can't be found to source later.
* Correctly preserve arguments given to xon.sh, in case there are quoted ones.
* Environment variables in subprocess mode were not being expanded
  unless they were in a sting. They are now expanded properly.
* Fixed a bug that prevented xonsh from running scripts with code caching disabled.
* Text of instructions to download missing program now does not get off and
  appears in whole.
* Fix some test problems when win_unicode_console was installed on windows.
* Fixed bug that prompt string and ``$PWD`` failed to track change in actual working directory if the
  invoked Python function happened to change it (e.g via ```os.chdir()```.  Fix is to update ``$PWD``
  after each command in ```BaseShell.default()```.
* The interactive prompt now correctly handles multiline strings.
* ``cd \\<server>\<share>`` now works when $AUTO_PUSHD is set, either creating a temporary mapped drive or simply
  setting UNC working directory based on registry ``DisableUNCCheck``.  However, if $AUTO_PUSHD is not set and UNC
  checking is enabled (default for Windows), it issues an error message and fails.  This improves on prior behavior,
  which would fail to change the current working directory, but would set $PWD and prompt string to the UNC path,
  creating false expectations.
* fix parsing for tuple of tuples (like `(),()`)
* ``sys.stdin``, ``sys.stdout``, ``sys.stderr`` no longer complete with
  opening square brackets
* xonsh now properly handles syntax error messages arising from using values in inappropriate contexts (e.g., ``del 7``).

(nonaka)

2018-04-12 06:21:27 UTC MAIN commitmail json YAML

freeradius-sqlite3: reset PKGREVISION

Reset PKGREVISION by updates of net/freeradius.

(nonaka)

2018-04-12 06:21:11 UTC MAIN commitmail json YAML

freeradius-rest: reset PKGREVISION

Reset PKGREVISION by updates of net/freeradius.

(nonaka)

2018-04-12 06:20:53 UTC MAIN commitmail json YAML

freeradius-freetds: reset PKGREVISION

Reset PKGREVISION by updates of net/freeradius.

(nonaka)

2018-04-12 01:22:46 UTC MAIN commitmail json YAML

Updated net/freeradius to 3.0.16

(nonaka)

2018-04-12 01:21:07 UTC MAIN commitmail json YAML

freeradius: Updated to 3.0.16

2018.01.11 Version 3.0.16 has been released.
The focus of this release is stability.

Feature Improvements
* rlm_python now supports multiple lists. From #2031.
* Add trust router re-keying. From #2007.
* Add support for Samba / AD LDAP schema See doc/schemas/ldap/samba/README.txt
  and doc/schemas/ldap/samba/.
* Add "tls_min_version" and "tls_max_version" to EAP module for Debian OpenSSL
  issues.
* Better documentation for client certificates in PEAP and TTLS: it usually
  doesn't work. Fixes #2068.
* Distinguish login failure from AD unavailable. Fixes #2069.
* Update RH spec files. Fixes #2070.
* Run Post-Proxy-Type if all home servers are dead Fixes #2072.
* Print offending IP addresses when EAP sessions come from two upstream home
  servers, and rate-limit the messages.
* Minor packaging updates.
* Better documentation for rlm_rest.
* EAP-FAST now has it's own "cipher_list", so that it is easier to configure.
* EAP-FAST now forcibly disables TLS1.2, until such time as we implement
  the new keying mechanism from TLS1.2.
* Add documentation for allow_expired_crl.
* Update Debian logrotation. #2093 and #2101.
* DHCP relay can now drop responses. #2095.
* rlm_sqlippool can now assign Delegated-IPv6-Prefix It also now can assign
  any IPv4 or IPv6 address Based on patches from maximumG. #2094 See
  raddb/mods-available/sqlippool for changes.
* radeapclient can now use EAP-SIM-Ki to dynamically create the necessary
  triplets.
* Explain why many LDAP connections are closed Fixes #1969.
* Debian build / package issues fixed by Matthew Newton.
* dictionary.patton updates from Brice Schaffner. Fixes #2137.
* Added scripts to build "inner-server.pem", and updated mods-config/inner-eap
  and certs/README to match.
* Added provisions for using an external CA. See raddb/certs/.
* Include dhcpclient binary in freeradius-dhcp debian packge.

Bug Fixes
* Bind the lifetime of program name and python path to the module FR-AD-002
  (redone).
* Pass correct statement length into sqlite3_prepare[_v2] FR-AD-003 (redone).
* Allow 100-Continue responses with additional headers in rlm_rest.
* fix corner case where detail files were not being locked correctly.
* Fix (SQL-Group == "%{...}") checks, and same for LDAP-Group Fixes #1947.
* Clean up exfile code. Which should help to avoid issues with reading / writing
  100's of detail files.
* Fix build for winbind. Patch from Alex Clouter.
* Fix checkrad for Mikrotik. Patch from Muchael Ducharme.
* Fix home server stats lookup. Patch from Phil Mayers.
* Add libjson-c3 as an optional dependency.
* Require LTB OpenLDAP on CentOS / Redhat, to avoid linking against NSS,
  which breaks the server. Fixes #2040.
* rlm_python fixes. Fixes #2041.
* Typos in "man" pages. Fixes #2045.
* Expand "next" in %{%{...}:-%{...}}. Fixes #2048.
* Don't add TLS attributes twice. Fixes #2050.
* Fix memory allocation in rlm_rest. Fixes #2051.
* Update trustrouter for new API. Fixes #2059.
* Fix SQLite issues on FreeBSD. Fixes #2060.
* Don't do debug logging of bad passwords. Fixes #2064.
* More graceful handling of "die" in rlm_perl. Fixes #2073.
* Fix occasional crash when using cisco_accounting_username_bug = yes.
* EAP-FAST fixes from Isaac Boukris #2078, #2076, and #2082, #2126.
* DHCP fixes, relay, #2092, add run-time check, #2028.
* Decode multiple RADIUS packets at a time in highly loaded RadSec connections. Patch from Jan Tomasek. #2106.
* TunnelPassword is not "single value" in LDAP schema Fixes #2061.
* sql log now opens the expanded filename, not the input one This was
  a regression introduced in 3.0.15.
* Remove unnecessary UNIQUE constrain in Oracle schemas.
* Fix SSL thread and locking issues when modules also use SSL Fixes #2125 and
  #2129.
* Re-add dhcpclient "raw packet" changes. Patches from Nicolas Chaigne and
  Matthew Newton. Fixes #2155.

(nonaka)

2018-02-28 08:02:13 UTC MAIN commitmail json YAML

doc: Updated devel/talloc to 2.1.11nb1

(nonaka)

2018-02-28 08:00:47 UTC MAIN commitmail json YAML

devel/talloc: resolve conflict with samba-4.6.8nb4.

Bump PKGREVISION.

(nonaka)

2018-02-28 03:41:46 UTC MAIN commitmail json YAML

doc: Updated net/samba4 to 4.6.8nb4

(nonaka)

2018-02-28 03:38:49 UTC MAIN commitmail json YAML

net/samba4: use devel/talloc package instead of bundled library.

I'd like to install net/samba4 and net/freeradius on the same server.
But devel/talloc on which net/freeradius depends conflicts bundled talloc
library used in net/samba.
net/samba also should use devel/talloc package.

Bump PKGREVISION.

(nonaka)

2017-12-15 03:03:46 UTC MAIN commitmail json YAML

Updated sysutils/smartmontools to 6.6

(nonaka)

2017-12-15 03:02:10 UTC MAIN commitmail json YAML

Updated smartmontools to 6.6.

Date 2017-11-05
Summary: smartmontools release 6.6
-----------------------------------------------------------
- smartctl '-i' and '--identify': ATA ACS-4 and SATA 3.3 enhancements.
- smartctl: Control ATA write cache through SCT Feature Control
  with '-s wcache-sct,ata|on|off[,p]' and '-g wcache-sct'.
- smartctl: Print ATA Pending Defects log with '-l defects'.
- smartctl '-s wcreorder,on|off': New persistent flag ',p'.
- smartctl '-s standby': Prevent temporary drive spinup.
- smartctl '-n POWERMODE': New parameter to set exit status.
- smartctl '-g security': ATA Security Level check fixed.
- smartctl '-l scttemp*': Print minimum supported ERC Time Limit.
- smartctl '-q noserial': Now also suppresses "SAS address" output.
- smartctl '-i': Print IEEE EUI-64 of NVMe namespace.
- smartctl '-c': Print NVMe 1.3 feature flags.
- smartctl '-A': Print NVMe 1.3 thermal temperature transition
  statistic.
- smartctl '-g/s dsn': Get/set ATA DSN.
- smartd: Uses also device identify information to detect for duplicate
  devices.
- smartd '-e dsn' directive: Set ATA DSN.
- smartd: Improved SCSI/SAS temperature logging.
- smartd: Silence emails and log messages on open errors of
  '-d removable' devices.
- smartd: Exit on device open error unless '-q never' or '-d removable'
  is specified (regression).
- update-smart-drivedb: Now authenticates downloaded file with GnuPG.
- update-smart-drivedb: New options '--trunk', '--no-verify' and
  '--export-key'.
- Device type '-d intelliprop,N' for IntelliProp controllers.
- SCSI: Default timeout increased to 1 minute.
- configure: New options '--with-gnupg', '--with-scriptpath' and
  '--with-update-smart-drivedb=X.Y'
- configure: Checks for C++11 support option and requires
  '--with[out]-cxx11-option' if option unknown or no C++11 support.
- HDD, SSD and USB additions to drive database.
- New smartmontools-* mailing list addresses.
- Man page formatting reworked.
- Linux: Uses SG_IO V4 API if supported.
- Linux: Devices behind hpsa driver are no longer detected as regular
  SCSI devices.
- Darwin: Initial NVMe support based on undocumented API.
- FreeBSD: Fix panic on INVARIANTS enabled kernel.
- FreeBSD: Improve ATA SMART STATUS check for legacy controllers.
- FreeBSD: Compile fix for FreeBSD-11 and newer.
- NetBSD: NVMe support.
- NetBSD: Full 28-bit ATA support.
- NetBSD: Compile fix.
- NetBSD: Use a raw disk device file.
- OpenBSD: Compile fix.
- OS/2: Support for the OS2AHCI driver, updating source code,
  adding autoscan support, adding self-test support.
- Windows: Support for Windows 10 NVMe driver (stornvme.sys).
- Windows: Fix CSMI access for IRST driver 15.2.
- Windows smartd: Ability to run PowerShell scripts with '-M exec'.
- Windows smartd: New PowerShell script to send smartd warning emails
  without external tools.
- Windows package: Now provides PDF man pages.

(nonaka)

2017-05-31 04:01:27 UTC MAIN commitmail json YAML

Updated misc/iwatch to 1.0.4.

(nonaka)

2017-05-31 03:59:45 UTC MAIN commitmail json YAML

Update iwatch to 1.0.4.

* Support decimal franction for the interval prefix
* Suport highlighting by changing color and attributes
* Fix English from Preben Guldberg
* Improve manage from Preben Guldberg

(nonaka)

2017-02-18 05:59:23 UTC MAIN commitmail json YAML

2016-12-03 04:08:53 UTC MAIN commitmail json YAML

2016-11-05 12:42:25 UTC MAIN commitmail json YAML

Updated fonts/koruri-ttf to 20161105

(nonaka)

2016-11-05 12:40:54 UTC MAIN commitmail json YAML

Update koruri-ttf to 20161105.

20161105:
* M+ OUTLINE FONTS has been updated to TESTFLIGHT 062 (2016.09.30).

(nonaka)

2016-09-01 17:33:28 UTC MAIN commitmail json YAML

Add dependency to databases/py-sqlite3.

(nonaka)

2016-08-27 11:57:00 UTC MAIN commitmail json YAML

2016-08-27 11:56:00 UTC MAIN commitmail json YAML

Added devel/dumpet version 2.1

(nonaka)

2016-08-27 11:53:39 UTC MAIN commitmail json YAML

2016-08-18 06:10:54 UTC MAIN commitmail json YAML

Updated security/keychain to 2.8.2

(nonaka)

2016-08-18 06:09:01 UTC MAIN commitmail json YAML

Update security/keychain to 2.8.2.

* keychain 2.8.2 (06 Nov 2015)

  Summary: Support new ssh features, bug fix release.

  Support for new hash algorithms (Ben Boeckel)

  Remove bashisms (Daniel Hertz)

  Various optimizations (Daniel Hahler)

  --timeout option now gets passed to agent, doc fixes (Andrew Bezella, Emil
  Lundberg)

  RPM, Makefile fixes (Mike Frysinger)

* keychain 2.8.1 (29 May 2015)

  Summary: POSIX compatibility and bug fix release.

  Only set PATH to a standard value if PATH is not set. Otherwise, do not
  modify.

  Makefile Cygwin and RPM spec fixes (thanks Luke Bakken and Ricardo Silva)

  Confhost fixes. Deprecate in_path. Use command -v instead.

  Find_pids: Modify "ps" call to work with non-GNU ps. (Bryan Drewery)

  Re-introduce POSIX compatibility (remove shopt.) (vaeth)

* keychain 2.8.0 (21 Mar 2015)

  Support for OpenSSH 6.8 fingerprints.
  Support for GnuPG 2.1.0.

  Handle private keys that are symlinks, even if the associated public key is
  in the target directory rather than alongside the symlink.

  Allow private keys to have extensions, such as foo.priv. When looking for
  matching public keys, look for foo.priv.pub, but also strip extension and
  look for foo.pub if foo.priv.pub doesn't exist.

  Initial support for --list/-l option to list SSH keys.

  Updated docs for fish shell usage.

* keychain 2.7.2_beta1 (07 July 2014)

  Various changes and updates:

  Fixes for fish from Marc Joliet.

  Keychain will default to start only ssh-agent unless GPG is explicitly
  updated using --agents.

  Write ~/.gpg-agent-info when launching gpg-agent - fix from Thomas Spura.

  Add support for injecting agents into systemd (Ben Boeckel)

  Add support for --query option (Ben Boeckel)

  Add --absolute flag, allowing user to set a full path without getting a
  .keychain suffix automatically appended.

  Add --confhost option to scan ~/.ssh/config file to locate private key
  path specified there.

(nonaka)

2016-08-04 14:30:08 UTC MAIN commitmail json YAML

PR/51360: handle ${X11BASE}/lib/pkgconfig.

bump PKGREVISION.

(nonaka)

2016-08-04 14:18:15 UTC MAIN commitmail json YAML

2016-07-10 04:07:08 UTC MAIN commitmail json YAML

Add dependency to archivers/py-czipfile.

(nonaka)

2016-06-03 00:14:48 UTC MAIN commitmail json YAML

PR/51210: Add BUILD_DEPENDS to devel/ocamlbuild.

(nonaka)

2016-05-08 11:24:27 UTC MAIN commitmail json YAML

Updated sysutils/smartmontools to 6.5

(nonaka)

2016-05-08 11:23:15 UTC MAIN commitmail json YAML

Updated smartmontools to 6.5.

Date 2016-05-07
Summary: smartmontools release 6.5
-----------------------------------------------------------
- Experimental support for NVMe devices on FreeBSD, Linux and Windows.
- smartctl '-i', '-c', '-H' and '-l error': NVMe support.
- smartctl '-l nvmelog': New option for NVMe.
- smartd.conf '-H', '-l error' and '-W': NVMe support.
- Optional NVMe device scanning support on Linux and Windows.
- configure option '--with-nvme-devicescan' to include NVMe in
  default device scanning result.
- Device scanning now allows to specify multiple '-d TYPE' options.
- ATA: Added new POWER MODE values introduced in ATA ACS-2.
- ATA: SCT commands are no longer issued if ATA Security is locked.
- SCSI: LB provisioning improvements.
- SCSI: Fixed GLTSD bit set/cleared info messages.
- SCSI: Solid State media log page is no longer checked for tapes.
- SCSI: Improved handling when no tape cartridge in drive.
- SCSI: Workaround for buggy Seagate firmware.
- SAT: Improved heuristics to detect bogus sense data from SAT layer.
- smartd: Fixed crash on missing argument to '-s' directive.
- update-smart-drivedb: Now uses HTTPS for download by default.
- update-smart-drivedb: New options to select URL and download tool.
- update-smart-drivedb: New download tool 'svn'.
- configure option '--without-update-smart-drivedb' to disable
  update-smart-drivedb script.
- configure options '--disable-drivedb', '--enable-savestates',
  '--enable-attributelog' and '--with-docdir' are no longer supported.
- autoconf < 2.60 and automake < 1.10 are no longer supported.
- Drive database file now also includes the DEFAULT setting
  for each attribute.
- HDD, SSD and USB additions to drive database.
- Darwin: New support files for package installer.
  New makefile target 'install-darwin' builds DMG image.
- Solaris: Auto detection of SATA devices behind SAT layer.
- Solaris SPARC: Legacy ATA support disabled by default.
  New configure option '--with-solaris-sparc-ata' enables it.
  File os_solaris_ata.s is no longer included in source tarball.
- Windows: Auto detection of USB devices specified by drive letter.
- Windows: Device scanning does no longer ignore unknown USB devices.
- Windows: Prevent drive spin up by '-n standby' check.
- Windows: New application manifests indicating Win 10 support.
- Windows smartd: '-m [sys]msgbox' is no longer supported.
- Windows installer: Defaults to 64-bit version on 64-bit Windows.
- Various code changes suggested by Clang Static Analyser and Cppcheck.

(nonaka)

2016-05-06 12:11:13 UTC MAIN commitmail json YAML

Updated fonts/koruri-ttf to 20160506

(nonaka)

2016-05-06 12:10:03 UTC MAIN commitmail json YAML

Update koruri-ttf to 20160506.

20160506:
* M+ OUTLINE FONTS has been updated to TESTFLIGHT 061 (2016.04.12).

(nonaka)

2016-05-06 09:05:46 UTC MAIN commitmail json YAML

2016-05-06 09:04:27 UTC MAIN commitmail json YAML

Added misc/iwatch version 1.0.3

(nonaka)

2016-05-06 09:02:36 UTC MAIN commitmail json YAML

PR/51117: Import iwatch 1.0.3 as misc/iwatch.

iwatch is a program to watch the given command's output periodically and
watch the output change.

reviewed by wiz@.

(nonaka)

2016-05-03 14:53:14 UTC MAIN commitmail json YAML

2016-05-02 15:49:39 UTC MAIN commitmail json YAML

Add ohruri-ttf

(nonaka)

2016-05-02 15:48:43 UTC MAIN commitmail json YAML

Added fonts/ohruri-ttf version 20150606

(nonaka)

2016-05-02 15:46:28 UTC MAIN commitmail json YAML

PR/51110: Import ohruri-ttf-20150606 as fonts/ohruri-ttf.

Ohruri Japanese TrueType fonts.
It is based on M+ Font, Source Han Sans and Open Sans Font (alphanumeric).

reviewed by wiz@.

(nonaka)

2016-02-05 09:13:04 UTC MAIN commitmail json YAML

Updated security/keepassx to 2.0.2

(nonaka)

2016-02-05 09:08:56 UTC MAIN commitmail json YAML

PR/50771: Update security/keepassx to 2.0.2.

2.0.1:
- Flush temporary file before opening attachment. [#390]
- Disable password generator when showing entry in history mode. [#422]
- Strip invalid XML chars when writing databases. [#392]
- Add repair function to fix databases with invalid XML chars. [#392]
- Display custom icons scaled. [#322]
- Allow opening databases that have no password and keyfile. [#391]
- Fix crash when importing .kdb files with invalid icon ids. [#425]
- Update translations.

2.0.2:
- Fix regression in database writer that caused it to strip certain special
  characters (characters from Unicode plane > 0).
- Fix bug in repair function that caused it to strip non-ASCII characters.

(nonaka)

2015-12-08 14:13:10 UTC MAIN commitmail json YAML

Updated devel/py-subprocess32 to 3.2.7

(nonaka)

2015-12-08 14:12:03 UTC MAIN commitmail json YAML

Updated devel/py-subprocess32 to 3.2.7

-----------------
2015-11-15 3.2.7
-----------------

* Issue #6973: When we know a subprocess.Popen process has died, do
  not allow the send_signal(), terminate(), or kill() methods to do
  anything as they could potentially signal a different process.
* Issue #23564: Fixed a partially broken sanity check in the _posixsubprocess
  internals regarding how fds_to_pass were passed to the child.  The bug had
  no actual impact as subprocess32.py already avoided it.

-----------------
2015-11-14 3.2.7rc2
-----------------

* Moved the repository from code.google.com to github.
* Added a _WAIT_TIMEOUT to satisfy the unsupported people entirely on
  their own trying to use this on Windows.
* Similarly: Updated setup.py to not build the extension on non-posix.

-----------------
2014-06-01 3.2.7rc1
-----------------

* Issue #21618: The subprocess module could fail to close open fds that were
  inherited by the calling process and already higher than POSIX resource
  limits would otherwise allow.  On systems with a functioning /proc/self/fd
  or /dev/fd interface the max is now ignored and all fds are closed.

(nonaka)

2015-10-21 03:31:35 UTC MAIN commitmail json YAML

Updated fonts/koruri-ttf to 20151021

(nonaka)

2015-10-21 03:24:20 UTC MAIN commitmail json YAML

Update koruri-ttf to 20151021.

20151021:
* M+ OUTLINE FONTS has been updated to CVS HEAD (2015.10.21).

(nonaka)

2015-09-04 14:23:49 UTC MAIN commitmail json YAML

Don't change DISTNAME, make extract fails. Use PKGNAME.

(nonaka)

2015-09-04 12:07:39 UTC MAIN commitmail json YAML

2015-08-03 14:08:41 UTC MAIN commitmail json YAML

Updated graphics/py-mcomix to 1.01

(nonaka)

2015-08-03 14:06:56 UTC MAIN commitmail json YAML

PR/50114: Update py-mcomix to 1.01.

- Keyboard shortcuts can now be edited from MComix' preference dialog
  in a new tab "Shortcuts". (by Valentin Gologuzov)
  Please not that the arrow keys, Backspace and Escape cannot be bound
  to actions right now, unless you're manually editing the config file.

- During database upgrade, MComix did not consider that books in the
  "Last read" database might no longer exist, leading to program crash.
  This has been fixed.

- Adding a collection with a numeric name to the library made the library
  unusable. This has been fixed.

- Fixed win32 builds missing the 'calendar' module.

- Fixed bookmarks not being displayed in the Ubuntu Unity global menu.

- Fixed 'Continue reading' not working when files are opened from
  the command line (by Boris Bogar).

- Improved page extraction and caching algorithm, leading to much better
  responsiveness, especially for viewing large archives. (by Benoit Pierre)

- MComix will now always hide the mouse cursor after a period of
  inactivity, even when not in fullscreen mode. (by Benoit Pierre)

- The ALT+Left and ALT+Right keys will now either advance one page,
  or go back one page, depending on the user being in manga mode.

- CTRL plus mouse wheel will now zoom in/out one level.

- Manual zooming will now use a logarithmic scale instead of a linear
  spline.

- The library will now use natural sorting for "Sort by name" and
  "Sort by path" instead of alphanumeric sorting, bringing it in line
  with most other sorting done by MComix.

- Adding a book to a collection with the same book already existing
  in another collection did not immediately show the book in the
  library main view when the new collection was already selected.

- MComix can now use the '7z' executable to read .tar.xz and .tar.lzma
  archives.

- ZIP archives using BZIP2 compression will now fall back to external
  unzip/7z instead of failing (by Awad Mackie).

- MComix can now read PDF files using tools provided by mupdf,
  namely mutool and mudraw. (by Benoit Pierre)

- Double page mode will not implicitly resize images anymore.

- The smart scrolling algorithm has been improved.

- Some issues with the magnifying glass have been fixed.

- Some new variables have been introduced that you can use when running
  external commands. See the documentation for details:
  https://sourceforge.net/p/mcomix/wiki/External_Commands

- MComix will now use the current GTK theme's icons for
  Next/Previous buttons.

- Added AppData meta information for software repositories.

- Updated traditional Chinese translation (by Wayne Su).

(nonaka)

2015-07-01 05:25:15 UTC MAIN commitmail json YAML

Updated fonts/koruri-ttf to 20150701

(nonaka)

2015-07-01 05:22:03 UTC MAIN commitmail json YAML

Update koruri-ttf to 20150701.

20150701:
* M+ OUTLINE FONTS has been updated to TESTFLIGHT 060.

(nonaka)

2014-12-24 13:08:05 UTC MAIN commitmail json YAML

Updated fonts/koruri-ttf to 20141224.

(nonaka)

2014-12-24 13:06:38 UTC MAIN commitmail json YAML

Update koruri-ttf to 20141224.

20141224:
* M+ OUTLINE FONTS has been updated to TESTFLIGHT 059 (2014.11.26).

(nonaka)

2014-09-04 12:48:17 UTC MAIN commitmail json YAML

Updated fonts/koruri-ttf to 20140904.

(nonaka)

2014-09-04 12:47:15 UTC MAIN commitmail json YAML

Update koruri-ttf to 20140904.

20140904:
* M+ OUTLINE FONTS has been updated to CVS HEAD (2014.09.04).

(nonaka)

2014-06-12 23:42:44 UTC MAIN commitmail json YAML

Updated fonts/koruri-ttf to 20140524.

(nonaka)

2014-06-12 23:38:57 UTC MAIN commitmail json YAML

Update koruri-ttf to 20140524.

20140524:
* Support for vertical writing in the Windows environment.

(nonaka)

2014-05-10 15:19:40 UTC MAIN commitmail json YAML

Updated fonts/koruri-ttf to 20140510

(nonaka)

2014-05-10 15:17:22 UTC MAIN commitmail json YAML

Update koruri-ttf to 20140510.

20140510:
* Fixed the problem that Koruri-Light.ttf is not a valid font file in the Windows environment.

(nonaka)

2014-05-03 12:23:56 UTC MAIN commitmail json YAML

Updated misc/vimpager to 1.8.8

(nonaka)

2014-05-03 12:22:08 UTC MAIN commitmail json YAML

Update vimpager to 1.8.8.
PR pkg/48781 by me.

Version 1.8.8
* don't clobber user's PATH (mayersj1: Steve Mayer) #77

Version 1.8.7
* use more lines for fallback man page detection, misc. code cleanups (eworm-de: Christian Hesse)

Version 1.8.6
* allow _vimrc on non-windows (mortonfox: Morton Fox)

Version 1.8.5
* fix up arrow binding again, broken in 1.8.4

Version 1.8.4
* disable help screen 'h' binding, cursor moves left instead (Github issue #71)

Version 1.8.3
* reexec self under bash or ksh when available, especially on Solaris (Github issue #63)
* add vim command -c option (aroig: Abdo Roig-Maranges)
* allow ~/.vim/vimpagerrc as conf file (lucc: Lucas Hoffmann)

(nonaka)

2010-08-29 11:02:41 UTC MAIN commitmail json YAML

Updated devel/ply to 3.3

(nonaka)

2010-08-29 11:00:31 UTC MAIN commitmail json YAML

Update ply to version 3.3.

Version 3.3
-----------------------------
08/25/09: beazley
          Fixed issue 15 related to the set_lineno() method in yacc.  Reported by
  mdsherry.

08/25/09: beazley
          Fixed a bug related to regular expression compilation flags not being
          properly stored in lextab.py files created by the lexer when running
          in optimize mode.  Reported by Bruce Frederiksen.

Version 3.2
-----------------------------
03/24/09: beazley
          Added an extra check to not print duplicated warning messages
          about reduce/reduce conflicts.

03/24/09: beazley
          Switched PLY over to a BSD-license.

03/23/09: beazley
          Performance optimization.  Discovered a few places to make
          speedups in LR table generation.

03/23/09: beazley
          New warning message.  PLY now warns about rules never
          reduced due to reduce/reduce conflicts.  Suggested by
          Bruce Frederiksen.

03/23/09: beazley
          Some clean-up of warning messages related to reduce/reduce errors.

03/23/09: beazley
          Added a new picklefile option to yacc() to write the parsing
          tables to a filename using the pickle module.  Here is how
          it works:

              yacc(picklefile="parsetab.p")

          This option can be used if the normal parsetab.py file is
          extremely large.  For example, on jython, it is impossible
          to read parsing tables if the parsetab.py exceeds a certain
          threshold.

          The filename supplied to the picklefile option is opened
          relative to the current working directory of the Python
          interpreter.  If you need to refer to the file elsewhere,
          you will need to supply an absolute or relative path.

          For maximum portability, the pickle file is written
          using protocol 0.

03/13/09: beazley
          Fixed a bug in parser.out generation where the rule numbers
          where off by one.

03/13/09: beazley
          Fixed a string formatting bug with one of the error messages.
          Reported by Richard Reitmeyer

Version 3.1
-----------------------------
02/28/09: beazley
          Fixed broken start argument to yacc().  PLY-3.0 broke this
          feature by accident.

02/28/09: beazley
          Fixed debugging output. yacc() no longer reports shift/reduce
          or reduce/reduce conflicts if debugging is turned off.  This
          restores similar behavior in PLY-2.5.  Reported by Andrew Waters.

Version 3.0
-----------------------------
02/03/09: beazley
          Fixed missing lexer attribute on certain tokens when
          invoking the parser p_error() function.  Reported by
          Bart Whiteley.

02/02/09: beazley
          The lex() command now does all error-reporting and diagonistics
          using the logging module interface.  Pass in a Logger object
          using the errorlog parameter to specify a different logger.

02/02/09: beazley
          Refactored ply.lex to use a more object-oriented and organized
          approach to collecting lexer information.

02/01/09: beazley
          Removed the nowarn option from lex().  All output is controlled
          by passing in a logger object.  Just pass in a logger with a high
          level setting to suppress output.  This argument was never
          documented to begin with so hopefully no one was relying upon it.

02/01/09: beazley
          Discovered and removed a dead if-statement in the lexer.  This
          resulted in a 6-7% speedup in lexing when I tested it.

01/13/09: beazley
          Minor change to the procedure for signalling a syntax error in a
          production rule.  A normal SyntaxError exception should be raised
          instead of yacc.SyntaxError.

01/13/09: beazley
          Added a new method p.set_lineno(n,lineno) that can be used to set the
          line number of symbol n in grammar rules.  This simplifies manual
          tracking of line numbers.

01/11/09: beazley
          Vastly improved debugging support for yacc.parse().  Instead of passing
          debug as an integer, you can supply a Logging object (see the logging
          module). Messages will be generated at the ERROR, INFO, and DEBUG
  logging levels, each level providing progressively more information.
          The debugging trace also shows states, grammar rule, values passed
          into grammar rules, and the result of each reduction.

01/09/09: beazley
          The yacc() command now does all error-reporting and diagnostics using
          the interface of the logging module.  Use the errorlog parameter to
          specify a logging object for error messages.  Use the debuglog parameter
          to specify a logging object for the 'parser.out' output.

01/09/09: beazley
          *HUGE* refactoring of the the ply.yacc() implementation.  The high-level
  user interface is backwards compatible, but the internals are completely
          reorganized into classes.  No more global variables.    The internals
          are also more extensible.  For example, you can use the classes to
          construct a LALR(1) parser in an entirely different manner than
          what is currently the case.  Documentation is forthcoming.

01/07/09: beazley
          Various cleanup and refactoring of yacc internals.

01/06/09: beazley
          Fixed a bug with precedence assignment.  yacc was assigning the precedence
          each rule based on the left-most token, when in fact, it should have been
          using the right-most token.  Reported by Bruce Frederiksen.

11/27/08: beazley
          Numerous changes to support Python 3.0 including removal of deprecated
          statements (e.g., has_key) and the additional of compatibility code
          to emulate features from Python 2 that have been removed, but which
          are needed.  Fixed the unit testing suite to work with Python 3.0.
          The code should be backwards compatible with Python 2.

11/26/08: beazley
          Loosened the rules on what kind of objects can be passed in as the
          "module" parameter to lex() and yacc().  Previously, you could only use
          a module or an instance.  Now, PLY just uses dir() to get a list of
          symbols on whatever the object is without regard for its type.

11/26/08: beazley
          Changed all except: statements to be compatible with Python2.x/3.x syntax.

11/26/08: beazley
          Changed all raise Exception, value statements to raise Exception(value) for
          forward compatibility.

11/26/08: beazley
          Removed all print statements from lex and yacc, using sys.stdout and sys.stderr
          directly.  Preparation for Python 3.0 support.

11/04/08: beazley
          Fixed a bug with referring to symbols on the the parsing stack using negative
          indices.

05/29/08: beazley
          Completely revamped the testing system to use the unittest module for everything.
          Added additional tests to cover new errors/warnings.

Version 2.5
-----------------------------
05/28/08: beazley
          Fixed a bug with writing lex-tables in optimized mode and start states.
          Reported by Kevin Henry.

Version 2.4
-----------------------------
05/04/08: beazley
          A version number is now embedded in the table file signature so that
          yacc can more gracefully accomodate changes to the output format
          in the future.

05/04/08: beazley
          Removed undocumented .pushback() method on grammar productions.  I'm
          not sure this ever worked and can't recall ever using it.  Might have
          been an abandoned idea that never really got fleshed out.  This
          feature was never described or tested so removing it is hopefully
          harmless.

05/04/08: beazley
          Added extra error checking to yacc() to detect precedence rules defined
          for undefined terminal symbols.  This allows yacc() to detect a potential
          problem that can be really tricky to debug if no warning message or error
          message is generated about it.

05/04/08: beazley
          lex() now has an outputdir that can specify the output directory for
          tables when running in optimize mode.  For example:

            lexer = lex.lex(optimize=True, lextab="ltab", outputdir="foo/bar")

          The behavior of specifying a table module and output directory are
          more aligned with the behavior of yacc().

05/04/08: beazley
          [Issue 9]
          Fixed filename bug in when specifying the modulename in lex() and yacc().
          If you specified options such as the following:

            parser = yacc.yacc(tabmodule="foo.bar.parsetab",outputdir="foo/bar")

          yacc would create a file "foo.bar.parsetab.py" in the given directory.
          Now, it simply generates a file "parsetab.py" in that directory.
          Bug reported by cptbinho.

05/04/08: beazley
          Slight modification to lex() and yacc() to allow their table files
  to be loaded from a previously loaded module.  This might make
  it easier to load the parsing tables from a complicated package
          structure.  For example:

      import foo.bar.spam.parsetab as parsetab
              parser = yacc.yacc(tabmodule=parsetab)

          Note:  lex and yacc will never regenerate the table file if used
          in the form---you will get a warning message instead.
          This idea suggested by Brian Clapper.

04/28/08: beazley
          Fixed a big with p_error() functions being picked up correctly
          when running in yacc(optimize=1) mode.  Patch contributed by
          Bart Whiteley.

02/28/08: beazley
          Fixed a bug with 'nonassoc' precedence rules.  Basically the
          non-precedence was being ignored and not producing the correct
          run-time behavior in the parser.

02/16/08: beazley
          Slight relaxation of what the input() method to a lexer will
          accept as a string.  Instead of testing the input to see
          if the input is a string or unicode string, it checks to see
          if the input object looks like it contains string data.
          This change makes it possible to pass string-like objects
          in as input.  For example, the object returned by mmap.

              import mmap, os
              data = mmap.mmap(os.open(filename,os.O_RDONLY),
                              os.path.getsize(filename),
                              access=mmap.ACCESS_READ)
              lexer.input(data)

11/29/07: beazley
          Modification of ply.lex to allow token functions to aliased.
          This is subtle, but it makes it easier to create libraries and
          to reuse token specifications.  For example, suppose you defined
          a function like this:

              def number(t):
                    r'\d+'
                    t.value = int(t.value)
                    return t

          This change would allow you to define a token rule as follows:

              t_NUMBER = number

          In this case, the token type will be set to 'NUMBER' and use
          the associated number() function to process tokens.

11/28/07: beazley
          Slight modification to lex and yacc to grab symbols from both
          the local and global dictionaries of the caller.  This
          modification allows lexers and parsers to be defined using
          inner functions and closures.

11/28/07: beazley
          Performance optimization:  The lexer.lexmatch and t.lexer
          attributes are no longer set for lexer tokens that are not
          defined by functions.  The only normal use of these attributes
          would be in lexer rules that need to perform some kind of
          special processing.  Thus, it doesn't make any sense to set
          them on every token.

          *** POTENTIAL INCOMPATIBILITY ***  This might break code
          that is mucking around with internal lexer state in some
          sort of magical way.

11/27/07: beazley
          Added the ability to put the parser into error-handling mode
          from within a normal production.  To do this, simply raise
          a yacc.SyntaxError exception like this:

          def p_some_production(p):
              'some_production : prod1 prod2'
              ...
              raise yacc.SyntaxError      # Signal an error

          A number of things happen after this occurs:

          - The last symbol shifted onto the symbol stack is discarded
            and parser state backed up to what it was before the
            the rule reduction.

          - The current lookahead symbol is saved and replaced by
            the 'error' symbol.

          - The parser enters error recovery mode where it tries
            to either reduce the 'error' rule or it starts
            discarding items off of the stack until the parser
            resets.

          When an error is manually set, the parser does *not* call
          the p_error() function (if any is defined).
          *** NEW FEATURE *** Suggested on the mailing list

11/27/07: beazley
          Fixed structure bug in examples/ansic.  Reported by Dion Blazakis.

11/27/07: beazley
          Fixed a bug in the lexer related to start conditions and ignored
          token rules.  If a rule was defined that changed state, but
          returned no token, the lexer could be left in an inconsistent
          state.  Reported by

11/27/07: beazley
          Modified setup.py to support Python Eggs.  Patch contributed by
          Simon Cross.

11/09/07: beazely
          Fixed a bug in error handling in yacc.  If a syntax error occurred and the
          parser rolled the entire parse stack back, the parser would be left in in
          inconsistent state that would cause it to trigger incorrect actions on
          subsequent input.  Reported by Ton Biegstraaten, Justin King, and others.

11/09/07: beazley
          Fixed a bug when passing empty input strings to yacc.parse().  This
          would result in an error message about "No input given".  Reported
          by Andrew Dalke.

Version 2.3
-----------------------------
02/20/07: beazley
          Fixed a bug with character literals if the literal '.' appeared as the
          last symbol of a grammar rule.  Reported by Ales Smrcka.

02/19/07: beazley
          Warning messages are now redirected to stderr instead of being printed
          to standard output.

02/19/07: beazley
          Added a warning message to lex.py if it detects a literal backslash
          character inside the t_ignore declaration.  This is to help
          problems that might occur if someone accidentally defines t_ignore
          as a Python raw string.  For example:

              t_ignore = r' \t'

          The idea for this is from an email I received from David Cimimi who
          reported bizarre behavior in lexing as a result of defining t_ignore
          as a raw string by accident.

02/18/07: beazley
          Performance improvements.  Made some changes to the internal
          table organization and LR parser to improve parsing performance.

02/18/07: beazley
          Automatic tracking of line number and position information must now be
          enabled by a special flag to parse().  For example:

              yacc.parse(data,tracking=True)

          In many applications, it's just not that important to have the
          parser automatically track all line numbers.  By making this an
          optional feature, it allows the parser to run significantly faster
          (more than a 20% speed increase in many cases).    Note: positional
          information is always available for raw tokens---this change only
          applies to positional information associated with nonterminal
          grammar symbols.
          *** POTENTIAL INCOMPATIBILITY ***

02/18/07: beazley
          Yacc no longer supports extended slices of grammar productions.
          However, it does support regular slices.  For example:

          def p_foo(p):
              '''foo: a b c d e'''
              p[0] = p[1:3]

          This change is a performance improvement to the parser--it streamlines
          normal access to the grammar values since slices are now handled in
          a __getslice__() method as opposed to __getitem__().

02/12/07: beazley
          Fixed a bug in the handling of token names when combined with
          start conditions.  Bug reported by Todd O'Bryan.

Version 2.2
------------------------------
11/01/06: beazley
          Added lexpos() and lexspan() methods to grammar symbols.  These
          mirror the same functionality of lineno() and linespan().  For
          example:

          def p_expr(p):
              'expr : expr PLUS expr'
              p.lexpos(1)    # Lexing position of left-hand-expression
              p.lexpos(1)    # Lexing position of PLUS
              start,end = p.lexspan(3)  # Lexing range of right hand expression

11/01/06: beazley
          Minor change to error handling.  The recommended way to skip characters
          in the input is to use t.lexer.skip() as shown here:

            def t_error(t):
                print "Illegal character '%s'" % t.value[0]
                t.lexer.skip(1)

          The old approach of just using t.skip(1) will still work, but won't
          be documented.

10/31/06: beazley
          Discarded tokens can now be specified as simple strings instead of
          functions.  To do this, simply include the text "ignore_" in the
          token declaration.  For example:

              t_ignore_cppcomment = r'//.*'

          Previously, this had to be done with a function.  For example:

              def t_ignore_cppcomment(t):
                  r'//.*'
                  pass

          If start conditions/states are being used, state names should appear
          before the "ignore_" text.

10/19/06: beazley
          The Lex module now provides support for flex-style start conditions
          as described at http://www.gnu.org/software/flex/manual/html_chapter/flex_11.html.
          Please refer to this document to understand this change note.  Refer to
          the PLY documentation for PLY-specific explanation of how this works.

          To use start conditions, you first need to declare a set of states in
          your lexer file:

          states = (
                    ('foo','exclusive'),
                    ('bar','inclusive')
          )

          This serves the same role as the %s and %x specifiers in flex.

          One a state has been declared, tokens for that state can be
          declared by defining rules of the form t_state_TOK.  For example:

            t_PLUS = '\+'          # Rule defined in INITIAL state
            t_foo_NUM = '\d+'      # Rule defined in foo state
            t_bar_NUM = '\d+'      # Rule defined in bar state

            t_foo_bar_NUM = '\d+'  # Rule defined in both foo and bar
            t_ANY_NUM = '\d+'      # Rule defined in all states

          In addition to defining tokens for each state, the t_ignore and t_error
          specifications can be customized for specific states.  For example:

            t_foo_ignore = " "    # Ignored characters for foo state
            def t_bar_error(t):
                # Handle errors in bar state

          With token rules, the following methods can be used to change states

            def t_TOKNAME(t):
                t.lexer.begin('foo')        # Begin state 'foo'
                t.lexer.push_state('foo')  # Begin state 'foo', push old state
                                            # onto a stack
                t.lexer.pop_state()        # Restore previous state
                t.lexer.current_state()    # Returns name of current state

          These methods mirror the BEGIN(), yy_push_state(), yy_pop_state(), and
          yy_top_state() functions in flex.

          The use of start states can be used as one way to write sub-lexers.
          For example, the lexer or parser might instruct the lexer to start
          generating a different set of tokens depending on the context.

          example/yply/ylex.py shows the use of start states to grab C/C++
          code fragments out of traditional yacc specification files.

          *** NEW FEATURE *** Suggested by Daniel Larraz with whom I also
          discussed various aspects of the design.

10/19/06: beazley
          Minor change to the way in which yacc.py was reporting shift/reduce
          conflicts.  Although the underlying LALR(1) algorithm was correct,
          PLY was under-reporting the number of conflicts compared to yacc/bison
          when precedence rules were in effect.  This change should make PLY
          report the same number of conflicts as yacc.

10/19/06: beazley
          Modified yacc so that grammar rules could also include the '-'
          character.  For example:

            def p_expr_list(p):
                'expression-list : expression-list expression'

          Suggested by Oldrich Jedlicka.

10/18/06: beazley
          Attribute lexer.lexmatch added so that token rules can access the re
          match object that was generated.  For example:

          def t_FOO(t):
              r'some regex'
              m = t.lexer.lexmatch
              # Do something with m

          This may be useful if you want to access named groups specified within
          the regex for a specific token. Suggested by Oldrich Jedlicka.

10/16/06: beazley
          Changed the error message that results if an illegal character
          is encountered and no default error function is defined in lex.
          The exception is now more informative about the actual cause of
          the error.

Version 2.1
------------------------------
10/02/06: beazley
          The last Lexer object built by lex() can be found in lex.lexer.
          The last Parser object built  by yacc() can be found in yacc.parser.

10/02/06: beazley
          New example added:  examples/yply

          This example uses PLY to convert Unix-yacc specification files to
          PLY programs with the same grammar.  This may be useful if you
          want to convert a grammar from bison/yacc to use with PLY.

10/02/06: beazley
          Added support for a start symbol to be specified in the yacc
          input file itself.  Just do this:

              start = 'name'

          where 'name' matches some grammar rule.  For example:

              def p_name(p):
                  'name : A B C'
                  ...

          This mirrors the functionality of the yacc %start specifier.

09/30/06: beazley
          Some new examples added.:

          examples/GardenSnake : A simple indentation based language similar
                                to Python.  Shows how you might handle
                                whitespace.  Contributed by Andrew Dalke.

          examples/BASIC      : An implementation of 1964 Dartmouth BASIC.
                                Contributed by Dave against his better
                                judgement.

09/28/06: beazley
          Minor patch to allow named groups to be used in lex regular
          expression rules.  For example:

              t_QSTRING = r'''(?P<quote>['"]).*?(?P=quote)'''

          Patch submitted by Adam Ring.

09/28/06: beazley
          LALR(1) is now the default parsing method.  To use SLR, use
          yacc.yacc(method="SLR").  Note: there is no performance impact
          on parsing when using LALR(1) instead of SLR. However, constructing
          the parsing tables will take a little longer.

09/26/06: beazley
          Change to line number tracking.  To modify line numbers, modify
          the line number of the lexer itself.  For example:

          def t_NEWLINE(t):
              r'\n'
              t.lexer.lineno += 1

          This modification is both cleanup and a performance optimization.
          In past versions, lex was monitoring every token for changes in
          the line number.  This extra processing is unnecessary for a vast
          majority of tokens. Thus, this new approach cleans it up a bit.

          *** POTENTIAL INCOMPATIBILITY ***
          You will need to change code in your lexer that updates the line
          number. For example, "t.lineno += 1" becomes "t.lexer.lineno += 1"

09/26/06: beazley
          Added the lexing position to tokens as an attribute lexpos. This
          is the raw index into the input text at which a token appears.
          This information can be used to compute column numbers and other
          details (e.g., scan backwards from lexpos to the first newline
          to get a column position).

09/25/06: beazley
          Changed the name of the __copy__() method on the Lexer class
          to clone().  This is used to clone a Lexer object (e.g., if
          you're running different lexers at the same time).

09/21/06: beazley
          Limitations related to the use of the re module have been eliminated.
          Several users reported problems with regular expressions exceeding
          more than 100 named groups. To solve this, lex.py is now capable
          of automatically splitting its master regular regular expression into
          smaller expressions as needed.  This should, in theory, make it
          possible to specify an arbitrarily large number of tokens.

09/21/06: beazley
          Improved error checking in lex.py.  Rules that match the empty string
          are now rejected (otherwise they cause the lexer to enter an infinite
          loop).  An extra check for rules containing '#' has also been added.
          Since lex compiles regular expressions in verbose mode, '#' is interpreted
          as a regex comment, it is critical to use '\#' instead.

09/18/06: beazley
          Added a @TOKEN decorator function to lex.py that can be used to
          define token rules where the documentation string might be computed
          in some way.

          digit            = r'([0-9])'
          nondigit        = r'([_A-Za-z])'
          identifier      = r'(' + nondigit + r'(' + digit + r'|' + nondigit + r')*)'

          from ply.lex import TOKEN

          @TOKEN(identifier)
          def t_ID(t):
              # Do whatever

          The @TOKEN decorator merely sets the documentation string of the
          associated token function as needed for lex to work.

          Note: An alternative solution is the following:

          def t_ID(t):
              # Do whatever

          t_ID.__doc__ = identifier

          Note: Decorators require the use of Python 2.4 or later.  If compatibility
          with old versions is needed, use the latter solution.

          The need for this feature was suggested by Cem Karan.

09/14/06: beazley
          Support for single-character literal tokens has been added to yacc.
          These literals must be enclosed in quotes.  For example:

          def p_expr(p):
              "expr : expr '+' expr"
              ...

          def p_expr(p):
              'expr : expr "-" expr'
              ...

          In addition to this, it is necessary to tell the lexer module about
          literal characters.  This is done by defining the variable 'literals'
          as a list of characters.  This should  be defined in the module that
          invokes the lex.lex() function.  For example:

            literals = ['+','-','*','/','(',')','=']

          or simply

            literals = '+=*/()='

          It is important to note that literals can only be a single character.
          When the lexer fails to match a token using its normal regular expression
          rules, it will check the current character against the literal list.
          If found, it will be returned with a token type set to match the literal
          character.  Otherwise, an illegal character will be signalled.

09/14/06: beazley
          Modified PLY to install itself as a proper Python package called 'ply'.
          This will make it a little more friendly to other modules.  This
          changes the usage of PLY only slightly.  Just do this to import the
          modules

                import ply.lex as lex
                import ply.yacc as yacc

          Alternatively, you can do this:

                from ply import *

          Which imports both the lex and yacc modules.
          Change suggested by Lee June.

09/13/06: beazley
          Changed the handling of negative indices when used in production rules.
          A negative production index now accesses already parsed symbols on the
          parsing stack.  For example,

              def p_foo(p):
                  "foo: A B C D"
                  print p[1]      # Value of 'A' symbol
                  print p[2]      # Value of 'B' symbol
                  print p[-1]      # Value of whatever symbol appears before A
                                    # on the parsing stack.

                  p[0] = some_val  # Sets the value of the 'foo' grammer symbol

          This behavior makes it easier to work with embedded actions within the
          parsing rules. For example, in C-yacc, it is possible to write code like
          this:

              bar:  A { printf("seen an A = %d\n", $1); } B { do_stuff; }

          In this example, the printf() code executes immediately after A has been
          parsed.  Within the embedded action code, $1 refers to the A symbol on
          the stack.

          To perform this equivalent action in PLY, you need to write a pair
          of rules like this:

              def p_bar(p):
                    "bar : A seen_A B"
                    do_stuff

              def p_seen_A(p):
                    "seen_A :"
                    print "seen an A =", p[-1]

          The second rule "seen_A" is merely a empty production which should be
          reduced as soon as A is parsed in the "bar" rule above.  The use
          of the negative index p[-1] is used to access whatever symbol appeared
          before the seen_A symbol.

          This feature also makes it possible to support inherited attributes.
          For example:

              def p_decl(p):
                    "decl : scope name"

              def p_scope(p):
                    """scope : GLOBAL
                              | LOCAL"""
                  p[0] = p[1]

              def p_name(p):
                    "name : ID"
                    if p[-1] == "GLOBAL":
                          # ...
                    else if p[-1] == "LOCAL":
                          #...

          In this case, the name rule is inheriting an attribute from the
          scope declaration that precedes it.

          *** POTENTIAL INCOMPATIBILITY ***
          If you are currently using negative indices within existing grammar rules,
          your code will break.  This should be extremely rare if non-existent in
          most cases.  The argument to various grammar rules is not usually not
          processed in the same way as a list of items.

Version 2.0
------------------------------
09/07/06: beazley
          Major cleanup and refactoring of the LR table generation code.  Both SLR
          and LALR(1) table generation is now performed by the same code base with
          only minor extensions for extra LALR(1) processing.

09/07/06: beazley
          Completely reimplemented the entire LALR(1) parsing engine to use the
          DeRemer and Pennello algorithm for calculating lookahead sets.  This
          significantly improves the performance of generating LALR(1) tables
          and has the added feature of actually working correctly!  If you
          experienced weird behavior with LALR(1) in prior releases, this should
          hopefully resolve all of those problems.  Many thanks to
          Andrew Waters and Markus Schoepflin for submitting bug reports
          and helping me test out the revised LALR(1) support.

Version 1.8
------------------------------
08/02/06: beazley
          Fixed a problem related to the handling of default actions in LALR(1)
          parsing.  If you experienced subtle and/or bizarre behavior when trying
          to use the LALR(1) engine, this may correct those problems.  Patch
          contributed by Russ Cox.  Note: This patch has been superceded by
          revisions for LALR(1) parsing in Ply-2.0.

08/02/06: beazley
          Added support for slicing of productions in yacc.
          Patch contributed by Patrick Mezard.

Version 1.7
------------------------------
03/02/06: beazley
          Fixed infinite recursion problem ReduceToTerminals() function that
          would sometimes come up in LALR(1) table generation.  Reported by
          Markus Schoepflin.

03/01/06: beazley
          Added "reflags" argument to lex().  For example:

              lex.lex(reflags=re.UNICODE)

          This can be used to specify optional flags to the re.compile() function
          used inside the lexer.  This may be necessary for special situations such
          as processing Unicode (e.g., if you want escapes like \w and \b to consult
          the Unicode character property database).  The need for this suggested by
          Andreas Jung.

03/01/06: beazley
          Fixed a bug with an uninitialized variable on repeated instantiations of parser
          objects when the write_tables=0 argument was used.  Reported by Michael Brown.

03/01/06: beazley
          Modified lex.py to accept Unicode strings both as the regular expressions for
          tokens and as input. Hopefully this is the only change needed for Unicode support.
          Patch contributed by Johan Dahl.

03/01/06: beazley
          Modified the class-based interface to work with new-style or old-style classes.
          Patch contributed by Michael Brown (although I tweaked it slightly so it would work
          with older versions of Python).

Version 1.6
------------------------------
05/27/05: beazley
          Incorporated patch contributed by Christopher Stawarz to fix an extremely
          devious bug in LALR(1) parser generation.  This patch should fix problems
          numerous people reported with LALR parsing.

05/27/05: beazley
          Fixed problem with lex.py copy constructor.  Reported by Dave Aitel, Aaron Lav,
          and Thad Austin.

05/27/05: beazley
          Added outputdir option to yacc()  to control output directory. Contributed
          by Christopher Stawarz.

05/27/05: beazley
          Added rununit.py test script to run tests using the Python unittest module.
          Contributed by Miki Tebeka.

Version 1.5
------------------------------
05/26/04: beazley
          Major enhancement. LALR(1) parsing support is now working.
          This feature was implemented by Elias Ioup (ezioup@alumni.uchicago.edu)
          and optimized by David Beazley. To use LALR(1) parsing do
          the following:

              yacc.yacc(method="LALR")

          Computing LALR(1) parsing tables takes about twice as long as
          the default SLR method.  However, LALR(1) allows you to handle
          more complex grammars.  For example, the ANSI C grammar
          (in example/ansic) has 13 shift-reduce conflicts with SLR, but
          only has 1 shift-reduce conflict with LALR(1).

05/20/04: beazley
          Added a __len__ method to parser production lists.  Can
          be used in parser rules like this:

            def p_somerule(p):
                """a : B C D
                      | E F"
                if (len(p) == 3):
                    # Must have been first rule
                elif (len(p) == 2):
                    # Must be second rule

          Suggested by Joshua Gerth and others.

(nonaka)