\hypertarget{md_sfcode_node_modules_dashdash_CHANGES_autotoc_md7793}{}\doxysection{not yet released}\label{md_sfcode_node_modules_dashdash_CHANGES_autotoc_md7793}
(nothing yet)\hypertarget{md_sfcode_node_modules_dashdash_CHANGES_autotoc_md7794}{}\doxysection{1.\+14.\+1}\label{md_sfcode_node_modules_dashdash_CHANGES_autotoc_md7794}

\begin{DoxyItemize}
\item \mbox{[}issue \#30\mbox{]} Change the output used by dashdash\textquotesingle{}s Bash completion support to indicate \char`\"{}there are no completions for this argument\char`\"{} to cope with different sorting rules on different Bash/platforms. For example\+: \begin{DoxyVerb}  $ triton -v -p test2 package get <TAB>          # before
  ##-no -tritonpackage- completions-##

  $ triton -v -p test2 package get <TAB>          # after
  ##-no-completion- -results-##
\end{DoxyVerb}
 
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_dashdash_CHANGES_autotoc_md7795}{}\doxysection{1.\+14.\+0}\label{md_sfcode_node_modules_dashdash_CHANGES_autotoc_md7795}

\begin{DoxyItemize}
\item New {\ttfamily synopsis\+From\+Opt($<$option spec$>$)} function. This will be used by \href{https://github.com/trentm/node-cmdln}{\texttt{ node-\/cmdln}} to put together a synopsis of options for a command. Some examples\+: \begin{DoxyVerb}  > synopsisFromOpt({names: ['help', 'h'], type: 'bool'});
  '[ --help | -h ]'
  > synopsisFromOpt({name: 'file', type: 'string', helpArg: 'FILE'});
  '[ --file=FILE ]'
\end{DoxyVerb}

\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_dashdash_CHANGES_autotoc_md7796}{}\doxysection{1.\+13.\+1}\label{md_sfcode_node_modules_dashdash_CHANGES_autotoc_md7796}

\begin{DoxyItemize}
\item \mbox{[}issue \#20\mbox{]} {\ttfamily bash\+Completion\+Spec\+From\+Options} breaks on an options array with an empty-\/string group.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_dashdash_CHANGES_autotoc_md7797}{}\doxysection{1.\+13.\+0}\label{md_sfcode_node_modules_dashdash_CHANGES_autotoc_md7797}

\begin{DoxyItemize}
\item Update assert-\/plus dep to 1.\+x to get recent fixes (particularly for {\ttfamily assert.\+optional$\ast$}).
\item Drop testing (and official support in packages.\+json\+::engines) for node 0.\+8.\+x. Add testing against node 5.\+x and 4.\+x with {\ttfamily make testall}.
\item \mbox{[}pull \#16\mbox{]} Change the {\ttfamily positive\+Integer} type to NOT accept zero (0). For those who might need the old behaviour, see \char`\"{}examples/custom-\/option-\/int\+Gte\+Zero.\+js\char`\"{}. (By Dave Pacheco.)
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_dashdash_CHANGES_autotoc_md7798}{}\doxysection{1.\+12.\+2}\label{md_sfcode_node_modules_dashdash_CHANGES_autotoc_md7798}

\begin{DoxyItemize}
\item Bash completion\+: Add {\ttfamily argtypes} to specify the types of positional args. E.\+g. this would allow you to have an {\ttfamily ssh} command with `argtypes = \mbox{[}\textquotesingle{}host', \textquotesingle{}cmd\textquotesingle{}\mbox{]}{\ttfamily for bash completion. You then have to provide Bash functions to handle completing those types via the}spec\+Extra\`{} arg. See \char`\"{}\mbox{[}examples/ddcompletion.\+js\mbox{]}(examples/ddcompletion.\+js)\char`\"{} for an example.
\item Bash completion\+: Tweak so that options or only offered as completions when there is a leading \textquotesingle{}-\/\textquotesingle{}. E.\+g. {\ttfamily mytool $<$TAB$>$} does NOT offer options, {\ttfamily mytool -\/$<$TAB$>$} {\itshape does}. Without this, a tool with options would never be able to fallback to Bash\textquotesingle{}s \char`\"{}default\char`\"{} completion. For example {\ttfamily ls $<$TAB$>$} wouldn\textquotesingle{}t result in filename completion. Now it will.
\item Bash completion\+: A workaround for not being able to explicitly have {\itshape no} completion results. Because dashdash\textquotesingle{}s completion uses {\ttfamily complete -\/o default}, we fallback to Bash\textquotesingle{}s \char`\"{}default\char`\"{} completion (typically for filename completion). Before this change, an attempt to explicitly say \char`\"{}there are   no completions that match\char`\"{} would unintentionally trigger filename completion. Instead as a workaround we return\+: \begin{DoxyVerb}  $ ddcompletion --none <TAB>         # the 'none' argtype
  ##-no           completions-##

  $ ddcompletion                      # a custom 'fruit' argtype
  apple   banana  orange
  $ ddcompletion z
  ##-no           -fruit-         completions-##
\end{DoxyVerb}
 This is a bit of a hack, but IMO a better experience than the surprise of matching a local filename beginning with \textquotesingle{}z\textquotesingle{}, which isn\textquotesingle{}t, in this case, a \char`\"{}fruit\char`\"{}.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_dashdash_CHANGES_autotoc_md7799}{}\doxysection{1.\+12.\+1}\label{md_sfcode_node_modules_dashdash_CHANGES_autotoc_md7799}

\begin{DoxyItemize}
\item Bash completion\+: Document {\ttfamily $<$option spec$>$.completion\+Type}. Add {\ttfamily include\+Hidden} option to {\ttfamily bash\+Completion\+Spec\+From\+Options()}. Add support for dealing with hidden subcmds.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_dashdash_CHANGES_autotoc_md7800}{}\doxysection{1.\+12.\+0}\label{md_sfcode_node_modules_dashdash_CHANGES_autotoc_md7800}

\begin{DoxyItemize}
\item Support for generating Bash completion files. See the \char`\"{}\+Bash completion\char`\"{} section of the README.\+md and \char`\"{}examples/ddcompletion.\+js\char`\"{} for an example.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_dashdash_CHANGES_autotoc_md7801}{}\doxysection{1.\+11.\+0}\label{md_sfcode_node_modules_dashdash_CHANGES_autotoc_md7801}

\begin{DoxyItemize}
\item Add the {\ttfamily array\+Flatten} boolean option to {\ttfamily dashdash.\+add\+Option\+Type} used for custom option types. This allows one to create an {\ttfamily array\+Of...} option type where each usage of the option can return multiple results. For example\+: \begin{DoxyVerb}  node mytool.js --foo a,b --foo c
\end{DoxyVerb}
 We could define an option type for {\ttfamily -\/-\/foo} such that `opts.\+foo = \mbox{[}\textquotesingle{}a', \textquotesingle{}b\textquotesingle{}, \textquotesingle{}c\textquotesingle{}\mbox{]}\`{}. See \char`\"{}\mbox{[}examples/custom-\/option-\/array\+Of\+Comma\+Sep\+String.\+js\mbox{]}(examples/custom-\/option-\/array\+Of\+Comma\+Sep\+String.\+js)\char`\"{} for an example.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_dashdash_CHANGES_autotoc_md7802}{}\doxysection{1.\+10.\+1}\label{md_sfcode_node_modules_dashdash_CHANGES_autotoc_md7802}

\begin{DoxyItemize}
\item Trim the published package to the minimal bits. Before\+: 24K tarball, 144K unpacked. After\+: 12K tarball, 48K unpacked. {\ttfamily npm} won\textquotesingle{}t let me drop the README.\+md. \+:)
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_dashdash_CHANGES_autotoc_md7803}{}\doxysection{1.\+10.\+0}\label{md_sfcode_node_modules_dashdash_CHANGES_autotoc_md7803}

\begin{DoxyItemize}
\item \mbox{[}issue \#9\mbox{]} Support {\ttfamily include\+Default} in help config (similar to {\ttfamily include\+Env}) to have a note of an option\textquotesingle{}s default value, if any, in help output.
\item \mbox{[}issue \#11\mbox{]} Fix option group breakage introduced in v1.\+9.\+0.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_dashdash_CHANGES_autotoc_md7804}{}\doxysection{1.\+9.\+0}\label{md_sfcode_node_modules_dashdash_CHANGES_autotoc_md7804}

\begin{DoxyItemize}
\item \mbox{[}issue \#10\mbox{]} Custom option types added with {\ttfamily add\+Option\+Type} can specify a \char`\"{}default\char`\"{} value. See \char`\"{}examples/custom-\/option-\/fruit.\+js\char`\"{}.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_dashdash_CHANGES_autotoc_md7805}{}\doxysection{1.\+8.\+0}\label{md_sfcode_node_modules_dashdash_CHANGES_autotoc_md7805}

\begin{DoxyItemize}
\item Support {\ttfamily hidden\+: true} in an option spec to have help output exclude this option.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_dashdash_CHANGES_autotoc_md7806}{}\doxysection{1.\+7.\+3}\label{md_sfcode_node_modules_dashdash_CHANGES_autotoc_md7806}

\begin{DoxyItemize}
\item \mbox{[}issue \#8\mbox{]} Fix parsing of a short option group when one of the option takes an argument. For example, consider {\ttfamily tail} with a {\ttfamily -\/f} boolean option and a {\ttfamily -\/n} option that takes a number argument. This should parse\+: \begin{DoxyVerb}  tail -fn5
\end{DoxyVerb}
 Before this change, that would not parse correctly. It is suspected that this was introduced in version 1.\+4.\+0 (with commit 656fa8bc71c372ebddad0a7026bd71611e2ec99a).
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_dashdash_CHANGES_autotoc_md7807}{}\doxysection{1.\+7.\+2}\label{md_sfcode_node_modules_dashdash_CHANGES_autotoc_md7807}

\begin{DoxyItemize}
\item Known issues\+: \#8
\item Exclude \textquotesingle{}tools/\textquotesingle{} dir in packages published to npm.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_dashdash_CHANGES_autotoc_md7808}{}\doxysection{1.\+7.\+1}\label{md_sfcode_node_modules_dashdash_CHANGES_autotoc_md7808}

\begin{DoxyItemize}
\item Known issues\+: \#8
\item Support an option group {\itshape empty string} value\+: \begin{DoxyVerb}  ...
  { group: '' },
  ...
\end{DoxyVerb}
 to render as a blank line in option help. This can help separate loosely related sets of options without resorting to a title for option groups.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_dashdash_CHANGES_autotoc_md7809}{}\doxysection{1.\+7.\+0}\label{md_sfcode_node_modules_dashdash_CHANGES_autotoc_md7809}

\begin{DoxyItemize}
\item Known issues\+: \#8
\item \mbox{[}pull \#7\mbox{]} Support for {\ttfamily $<$parser$>$.help(\{help\+Wrap\+: false, ...\})} option to be able to fully control the formatting for option help (by Patrick Mooney) {\ttfamily help\+Wrap\+: false} can also be set on individual options in the option objects, e.\+g.\+: \begin{DoxyVerb}  var options = [
      {
        names: ['foo'],
        type: 'string',
        helpWrap: false,
        help: 'long help with\n  newlines' +
          '\n  spaces\n  and such\nwill render correctly'
      },
      ...
  ];
\end{DoxyVerb}

\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_dashdash_CHANGES_autotoc_md7810}{}\doxysection{1.\+6.\+0}\label{md_sfcode_node_modules_dashdash_CHANGES_autotoc_md7810}

\begin{DoxyItemize}
\item Known issues\+: \#8
\item \mbox{[}pull \#6\mbox{]} Support headings between groups of options (by Joshua M. Clulow) so that this code\+: \begin{DoxyVerb}  var options = [
      { group: 'Armament Options' },
      { names: [ 'weapon', 'w' ], type: 'string' },
      { group: 'General Options' },
      { names: [ 'help', 'h' ], type: 'bool' }
  ];
  ...
\end{DoxyVerb}
 will give you this help output\+: \begin{DoxyVerb}  ...
    Armament Options:
      -w, --weapon

    General Options:
      -h, --help
  ...
\end{DoxyVerb}

\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_dashdash_CHANGES_autotoc_md7811}{}\doxysection{1.\+5.\+0}\label{md_sfcode_node_modules_dashdash_CHANGES_autotoc_md7811}

\begin{DoxyItemize}
\item Known issues\+: \#8
\item Add support for adding custom option types. \char`\"{}examples/custom-\/option-\/duration.\+js\char`\"{} shows an example adding a \char`\"{}duration\char`\"{} option type. \begin{DoxyVerb}  $ node custom-option-duration.js -t 1h
  duration: 3600000 ms
  $ node custom-option-duration.js -t 1s
  duration: 1000 ms
  $ node custom-option-duration.js -t 5d
  duration: 432000000 ms
  $ node custom-option-duration.js -t bogus
  custom-option-duration.js: error: arg for "-t" is not a valid duration: "bogus"
\end{DoxyVerb}
 A custom option type is added via\+: \begin{DoxyVerb}  var dashdash = require('dashdash');
  dashdash.addOptionType({
      name: '...',
      takesArg: true,
      helpArg: '...',
      parseArg: function (option, optstr, arg) {
          ...
      }
  });
\end{DoxyVerb}

\item \mbox{[}issue \#4\mbox{]} Add {\ttfamily date} and {\ttfamily array\+Of\+Date} option types. They accept these date formats\+: epoch second times (e.\+g. 1396031701) and ISO 8601 format\+: {\ttfamily YYYY-\/\+MM-\/\+DD\mbox{[}THH\+:\+MM\+:SS\mbox{[}.sss\mbox{]}\mbox{[}Z\mbox{]}\mbox{]}} (e.\+g. \char`\"{}2014-\/03-\/28\char`\"{}, \char`\"{}2014-\/03-\/28\+T18\+:35\+:01.\+489\+Z\char`\"{}). See \char`\"{}examples/date.\+js\char`\"{} for an example usage. \begin{DoxyVerb}  $ node examples/date.js -s 2014-01-01 -e $(date +%s)
  start at 2014-01-01T00:00:00.000Z
  end at 2014-03-29T04:26:18.000Z
\end{DoxyVerb}

\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_dashdash_CHANGES_autotoc_md7812}{}\doxysection{1.\+4.\+0}\label{md_sfcode_node_modules_dashdash_CHANGES_autotoc_md7812}

\begin{DoxyItemize}
\item Known issues\+: \#8
\item \mbox{[}pull \#2, pull \#3\mbox{]} Add a {\ttfamily allow\+Unknown\+: true} option on {\ttfamily create\+Parser} to allow unknown options to be passed through as {\ttfamily opts.\+\_\+args} instead of parsing throwing an exception (by \href{https://github.com/isaacs}{\texttt{ https\+://github.\+com/isaacs}}).

See \textquotesingle{}allow\+Unknown\textquotesingle{} in the README for a subtle caveat.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_dashdash_CHANGES_autotoc_md7813}{}\doxysection{1.\+3.\+2}\label{md_sfcode_node_modules_dashdash_CHANGES_autotoc_md7813}

\begin{DoxyItemize}
\item Fix a subtlety where a {\itshape bool} option using both {\ttfamily env} and {\ttfamily default} didn\textquotesingle{}t work exactly correctly. If {\ttfamily default\+: false} then all was fine (by luck). However, if you had an option like this\+: \begin{DoxyVerb}  options: [ {
      names: ['verbose', 'v'],
      env: 'FOO_VERBOSE',
      'default': true,    // <--- this
      type: 'bool'
  } ],
\end{DoxyVerb}
 wanted {\ttfamily FOO\+\_\+\+VERBOSE=0} to make the option false, then you need the fix in this version of dashdash.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_dashdash_CHANGES_autotoc_md7814}{}\doxysection{1.\+3.\+1}\label{md_sfcode_node_modules_dashdash_CHANGES_autotoc_md7814}

\begin{DoxyItemize}
\item \mbox{[}issue \#1\mbox{]} Fix an envvar not winning over an option \textquotesingle{}default\textquotesingle{}. Previously an option with both {\ttfamily default} and {\ttfamily env} would never take a value from the environment variable. E.\+g. {\ttfamily FOO\+\_\+\+FILE} would never work here\+: \begin{DoxyVerb}  options: [ {
      names: ['file', 'f'],
      env: 'FOO_FILE',
      'default': 'default.file',
      type: 'string'
  } ],
\end{DoxyVerb}

\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_dashdash_CHANGES_autotoc_md7815}{}\doxysection{1.\+3.\+0}\label{md_sfcode_node_modules_dashdash_CHANGES_autotoc_md7815}

\begin{DoxyItemize}
\item \mbox{[}Backward incompatible change for boolean envvars\mbox{]} Change the interpretation of environment variables for boolean options to consider \textquotesingle{}0\textquotesingle{} to be false. Previous to this {\itshape any} value to the envvar was considered true -- which was quite misleading. Example\+: \begin{DoxyVerb}  $ FOO_VERBOSE=0 node examples/foo.js
  # opts: { verbose: [ false ],
    _order: [ { key: 'verbose', value: false, from: 'env' } ],
    _args: [] }
  # args: []
\end{DoxyVerb}

\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_dashdash_CHANGES_autotoc_md7816}{}\doxysection{1.\+2.\+1}\label{md_sfcode_node_modules_dashdash_CHANGES_autotoc_md7816}

\begin{DoxyItemize}
\item Fix for {\ttfamily parse.\+help(\{include\+Env\+: true, ...\})} handling to ensure that an option with an {\ttfamily env} {\bfseries{but no {\ttfamily help}}} still has the \char`\"{}\+Environment\+: ...\char`\"{} output. E.\+g.\+: \begin{DoxyVerb}  { names: ['foo'], type: 'string', env: 'FOO' }

  ...

  --foo=ARG      Environment: FOO=ARG
\end{DoxyVerb}

\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_dashdash_CHANGES_autotoc_md7817}{}\doxysection{1.\+2.\+0}\label{md_sfcode_node_modules_dashdash_CHANGES_autotoc_md7817}

\begin{DoxyItemize}
\item Transform the option key on the {\ttfamily opts} object returned from {\ttfamily $<$parser$>$.parse()} for convenience. Currently this is just {\ttfamily s/-\//\+\_\+/g}, e.\+g. \textquotesingle{}--dry-\/run\textquotesingle{} -\/$>$ {\ttfamily opts.\+dry\+\_\+run}. This allow one to use hyphen in option names (common) but not have to do silly things like {\ttfamily opt\mbox{[}\char`\"{}dry-\/run\char`\"{}\mbox{]}} to access the parsed results.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_dashdash_CHANGES_autotoc_md7818}{}\doxysection{1.\+1.\+0}\label{md_sfcode_node_modules_dashdash_CHANGES_autotoc_md7818}

\begin{DoxyItemize}
\item Environment variable integration. Envvars can be associated with an option, then option processing will fallback to using that envvar if defined and if the option isn\textquotesingle{}t specified in argv. See the \char`\"{}\+Environment variable   integration\char`\"{} section in the README.
\item Change the {\ttfamily $<$parser$>$.parse()} signature to take a single object with keys for arguments. The old signature is still supported.
\item {\ttfamily dashdash.\+create\+Parser(\+CONFIG)} alternative to {\ttfamily new dashdash.\+Parser(\+CONFIG)} a la many node-\/land APIs.
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_dashdash_CHANGES_autotoc_md7819}{}\doxysection{1.\+0.\+2}\label{md_sfcode_node_modules_dashdash_CHANGES_autotoc_md7819}

\begin{DoxyItemize}
\item Add \char`\"{}positive\+Integer\char`\"{} and \char`\"{}array\+Of\+Positive\+Integer\char`\"{} option types that only accept positive integers.
\item Add \char`\"{}integer\char`\"{} and \char`\"{}array\+Of\+Integer\char`\"{} option types that accepts only integers. Note that, for better or worse, these do NOT accept\+: \char`\"{}0x42\char`\"{} (hex), \char`\"{}1e2\char`\"{} (with exponent) or \char`\"{}1.\char`\"{}, \char`\"{}3.\+0\char`\"{} (floats).
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_dashdash_CHANGES_autotoc_md7820}{}\doxysection{1.\+0.\+1}\label{md_sfcode_node_modules_dashdash_CHANGES_autotoc_md7820}

\begin{DoxyItemize}
\item Fix not modifying the given option spec objects (which breaks creating a Parser with them more than once).
\end{DoxyItemize}\hypertarget{md_sfcode_node_modules_dashdash_CHANGES_autotoc_md7821}{}\doxysection{1.\+0.\+0}\label{md_sfcode_node_modules_dashdash_CHANGES_autotoc_md7821}
First release. 