Commit Graph

444 Commits

Author SHA1 Message Date
af6f123c99 Extract command line parsing functionality into its own, new 'cmdline' module #78
Also encapsulate this feature better, eliminate side effects,
and refactor into smaller functions.
2021-04-17 15:30:26 +02:00
6427d1efde Test cases for eol control option #60
This also adds the ability to testrunner.sh to pipe the output
through xxd for binary comparisons.
2021-04-11 20:34:52 +02:00
139994f97f Add option to override line terminators #60 2021-04-11 20:34:51 +02:00
8a6d0d3315 Add and use bx_strndup() in 'tools' module for cross-platform compatibility 2021-04-11 20:34:51 +02:00
f620c1b19b Extract full_parse_required() in parsecode.c for maintainability 2021-04-11 20:34:51 +02:00
04283eb697 Remove undocumented contentpos feature
It is no longer needed, as we have MBCS support for input now.
2021-04-11 20:34:50 +02:00
09d5ebcbb4 Untangle -l and -q options #23
Both are now used stand-alone for their respective purposes.
2021-04-11 20:34:41 +02:00
76880f1c3c Extract parser.y's C code into new parsecode module
We took the larger pieces only, with the aim of making parser.y more
readable and making it easier to understand the syntax rules.
Also, some IDEs (such as CLion and vscode) don't support yacc/bison
syntax to the full extent, so we have better IDE support in a C file.
2021-04-11 20:27:17 +02:00
f93639f1e4 Add tests for tag handling #23 2021-04-11 20:27:17 +02:00
542e6bd4dd Update box design 'right', undeprecate
I still don't like it, but it shows a particular kind of box that has only a
right side, which is good on a technical level.
2021-04-11 20:27:17 +02:00
6039b059da Review tag assignments in config file #23 2021-04-11 20:27:16 +02:00
f147c8f6fc Enable querying of the design list by tag #23 2021-04-11 20:27:15 +02:00
95673257d9 Document new tag query option in man page #23 2021-04-06 22:13:41 +02:00
27adf5b6ba Add argument to -q option for tag queries #23
-q is no longer undocumented,
but can officially be used in combination with -l
2021-04-06 22:13:41 +02:00
aab643acbc Add array_contains0() and array_count0() function to tools module 2021-04-06 22:13:41 +02:00
b51724f3b1 Handle tags as a real list in memory and config file #23
The previous keyword-based syntax remains supported for
forwards compatibility reasons.
2021-04-06 22:13:40 +02:00
e360bfde4e Use pre-built flex and bison on Windows for MinGW 2021-04-06 22:13:40 +02:00
b01fdcecf5 Prepare config file for some alias names #30
They are not activated yet because some people periodically update
their box design configs from the boxes master branch on GitHub.
If we activated the alias names, and the user still has pre-2.1.0
boxes, the file would parse as broken. As soon as we think that
everybody has access to boxes v2.1.0, we will activate the aliases.
Of course you can already do this in your local config at any time
if you already have boxes v2.1.0.
2021-04-06 22:13:40 +02:00
79ab9baa6d Beautify config file a little 2021-04-06 22:13:39 +02:00
419dbdf850 Update .gitignore 2021-04-06 22:13:39 +02:00
418991143e Add spell checking annotations to Vim syntax file 2021-04-06 22:13:39 +02:00
53d8b3ce05 Improve Vim syntax file DELIM statement #63
Where DELIM is used to change the escape character
for strings, Vim now colors the strings correctly.
2021-04-06 22:13:39 +02:00
9e56dec538 Improve vim syntax file with support for different string delimiters #64 2021-04-06 22:13:38 +02:00
a407f22913 Support aliases in vim syntax file #30 2021-04-06 22:13:38 +02:00
0d2cb14b95 Add some defines for compilation on Windows 2021-04-06 22:13:38 +02:00
08cf6a5396 Flush stderr after parsing
This helps test cases find consistent output on all platforms
2021-04-06 22:13:37 +02:00
157f4a136b Normalize leading line break in sample text 2021-04-06 22:13:37 +02:00
f6913d6684 Change order of includes in discovery module
This helps avoid a conflict between windows.h and unistd.h
2021-04-06 22:13:37 +02:00
5a47af57ae Remove boxes.spec, which had become outdated #76
A better example of an RPM spec file can be found in Fedora package
https://src.fedoraproject.org/rpms/boxes/blob/rawhide/f/boxes.spec
2021-04-06 22:12:42 +02:00
5650f251fd Add test cases for design alias names #30 2021-03-30 20:34:33 +02:00
44f4c8adaa Add support of alias names for designs #30 2021-03-30 20:34:20 +02:00
4dcd1322a7 Support new keyword "parent" in Vim syntax file #5 2021-03-22 21:31:41 +01:00
749033001f Add more test cases for multiple config files #5 2021-03-22 21:31:34 +01:00
97b62dd09a Support multiple configuration files #5
Main implementation
2021-03-22 21:31:27 +01:00
46aab3faa6 Add config file location to each design #5 2021-03-22 20:45:46 +01:00
9315e62528 Add 'parent' keyword to parser/lexer #5
Also major parser/lexer rework to support being called multiple
times.  Switch to reentrant and parameterizable parser.
2021-03-22 20:45:45 +01:00
425d354bc0 Move generated boxes.h to 'out/'
Also rename boxes.h.in to boxes.in.h to make file type detection easier
2021-03-22 20:45:45 +01:00
614ea31237 Add function array_contains() to 'tools' module 2021-03-22 20:45:45 +01:00
5c7680fbdb Increase LINE_MAX_BYTES from 4096 to 16382 2021-03-22 20:45:44 +01:00
f27bac6465 Add and update some project settings 2021-03-22 20:45:38 +01:00
97a2e2d76d Add global_only argument to discover_config_file() 2021-03-19 16:41:36 +01:00
365dcea348 Improve testrunner when BOXES env var already set 2021-03-19 16:40:55 +01:00
278246bde7 Move most generated files and binaries to 'out' dir
Better separation of sources and binaries
Fewer files in 'src' dir
2021-03-19 16:40:54 +01:00
5cb5435119 Extract config file discovery code into new module 'discovery' 2021-03-19 16:40:54 +01:00
6779b74e9a Add docs on config file discovery to man page #69 2021-03-19 16:40:54 +01:00
3f401a551a Remove skip-test feature from testrunner.sh
It was quite cool, but we don't need it right now.
2021-03-19 16:40:54 +01:00
d952bd6eea Unify config file search order Linux/Unix and Windows #69
This means we have some XDG support on Windows, too,
although some global locations like /etc/xdg are unlikely to exist.
2021-03-19 16:40:53 +01:00
68098e4480 Add test cases and test runner improvements for testing #69 2021-03-19 16:40:53 +01:00
033c879ae6 Add helper function concat_strings_alloc() to tools module 2021-03-19 16:40:53 +01:00
877336a114 Add support for XDG base directories #69
for config file discovery. Also, the config file is searched in
more places, and can have more names. Details in issue comments.
2021-03-19 16:40:53 +01:00