Commit Graph

6 Commits

Author SHA1 Message Date
Timothy Sample 3d3375e066 Fix pathname expansion.
The old implementation had several bugs, prompting this complete
rewrite.

* gash/compat/srfi-43.scm (vector-empty?): New procedure.
* gash/pattern.scm (pattern-null?): New procedure.
* gash/word.scm (qword->pattern-string): New procedure.
(qword->pattern): Rewrite using 'qword->pattern-string'.
(find-files): New procedure.
(expand-pathnames): Rewrite using 'find-files' and add a docstring.
* tests/unit/word.scm: Add tests.
(mock): New syntax.
(make-pure-scandir): New procedure.
(with-mocked-files): New syntax.
2019-12-09 13:23:54 -05:00
Timothy Sample cf6a886f61 Swap semantics of ':+' and '+'.
These were mixed up, with ':+' behaving like '+' and vice versa.

* gash/word.scm (word->qword): Swap implementations of '<sh-ref-and>'
and '<sh-ref-and*>'.
* tests/unit/word.scm: Swap tests.
2019-12-09 13:04:20 -05:00
Timothy Sample 7a0f4fbae2 Handle nested lists when removing quotes.
* gash/word.scm (remove-quotes): Handle nested lists.
(split-fields) <wedge-apart-quote>: Likewise.
* tests/unit/word.scm: Add test.
2019-11-24 17:40:05 -05:00
Timothy Sample 50473ac9d4 Add copyright sign to headers.
* gash/built-ins/*, gash/environment.scm, gash/eval.scm,
gash/lexer.scm, gash/parser.scm, gash/repl.scm, gash/word.scm,
tests/unit/*, tools/coverage.in: Add copyright sign to headers.
2019-05-20 01:18:22 -04:00
Timothy Sample 1bd92e2893 Remove (almost) all references to Geesh.
gash/environment.scm: Remove file.
geesh/*: Move these files into the 'gash' folder and replace all
instances of the word 'geesh'.
scripts/geesh.in: Remove file.
HACKING, INSTALL, Makefile.am, configure.ac, guix.scm,
tests/bootstrap/bash-without-bash.scm, tests/spec/Makefile.am,
tests/spec/check-spec, tests/spec/oil.scm, tests/unit/*,
tools/coverage.in: Replace all instances of the word 'geesh'.

Co-authored-by: Jan Nieuwenhuizen <janneke@gnu.org>
2019-05-20 01:17:40 -04:00
Timothy Sample 110167674e Reorganize tests
* tests/bash-without-bash.scm: Move this...
* tests/bootstrap/bash-without-bash.scm: ...here.
* tests/*.scm*: Move these...
* tests/unit: ...into this directory.
* configure.ac: Update paths.
* Makefile.am: Ditto.
* .gitignore: Ditto.
2018-12-12 14:23:09 -05:00