Thomas Jensen
9203a76ed6
Add 'vim-common' to Travis package list (provides xxd)
2021-04-17 15:30:36 +02:00
Thomas Jensen
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
Thomas Jensen
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
Thomas Jensen
139994f97f
Add option to override line terminators #60
2021-04-11 20:34:51 +02:00
Thomas Jensen
8a6d0d3315
Add and use bx_strndup() in 'tools' module for cross-platform compatibility
2021-04-11 20:34:51 +02:00
Thomas Jensen
f620c1b19b
Extract full_parse_required() in parsecode.c for maintainability
2021-04-11 20:34:51 +02:00
Thomas Jensen
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
Thomas Jensen
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
Thomas Jensen
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
Thomas Jensen
f93639f1e4
Add tests for tag handling #23
2021-04-11 20:27:17 +02:00
Thomas Jensen
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
Thomas Jensen
6039b059da
Review tag assignments in config file #23
2021-04-11 20:27:16 +02:00
Thomas Jensen
f147c8f6fc
Enable querying of the design list by tag #23
2021-04-11 20:27:15 +02:00
Thomas Jensen
95673257d9
Document new tag query option in man page #23
2021-04-06 22:13:41 +02:00
Thomas Jensen
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
Thomas Jensen
aab643acbc
Add array_contains0() and array_count0() function to tools module
2021-04-06 22:13:41 +02:00
Thomas Jensen
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
Thomas Jensen
e360bfde4e
Use pre-built flex and bison on Windows for MinGW
2021-04-06 22:13:40 +02:00
Thomas Jensen
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
Thomas Jensen
79ab9baa6d
Beautify config file a little
2021-04-06 22:13:39 +02:00
Thomas Jensen
419dbdf850
Update .gitignore
2021-04-06 22:13:39 +02:00
Thomas Jensen
418991143e
Add spell checking annotations to Vim syntax file
2021-04-06 22:13:39 +02:00
Thomas Jensen
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
Thomas Jensen
9e56dec538
Improve vim syntax file with support for different string delimiters #64
2021-04-06 22:13:38 +02:00
Thomas Jensen
a407f22913
Support aliases in vim syntax file #30
2021-04-06 22:13:38 +02:00
Thomas Jensen
0d2cb14b95
Add some defines for compilation on Windows
2021-04-06 22:13:38 +02:00
Thomas Jensen
08cf6a5396
Flush stderr after parsing
...
This helps test cases find consistent output on all platforms
2021-04-06 22:13:37 +02:00
Thomas Jensen
157f4a136b
Normalize leading line break in sample text
2021-04-06 22:13:37 +02:00
Thomas Jensen
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
Thomas Jensen
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
Thomas Jensen
5650f251fd
Add test cases for design alias names #30
2021-03-30 20:34:33 +02:00
Thomas Jensen
44f4c8adaa
Add support of alias names for designs #30
2021-03-30 20:34:20 +02:00
Thomas Jensen
4dcd1322a7
Support new keyword "parent" in Vim syntax file #5
2021-03-22 21:31:41 +01:00
Thomas Jensen
749033001f
Add more test cases for multiple config files #5
2021-03-22 21:31:34 +01:00
Thomas Jensen
97b62dd09a
Support multiple configuration files #5
...
Main implementation
2021-03-22 21:31:27 +01:00
Thomas Jensen
46aab3faa6
Add config file location to each design #5
2021-03-22 20:45:46 +01:00
Thomas Jensen
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
Thomas Jensen
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
Thomas Jensen
614ea31237
Add function array_contains() to 'tools' module
2021-03-22 20:45:45 +01:00
Thomas Jensen
5c7680fbdb
Increase LINE_MAX_BYTES from 4096 to 16382
2021-03-22 20:45:44 +01:00
Thomas Jensen
f27bac6465
Add and update some project settings
2021-03-22 20:45:38 +01:00
Thomas Jensen
97a2e2d76d
Add global_only argument to discover_config_file()
2021-03-19 16:41:36 +01:00
Thomas Jensen
365dcea348
Improve testrunner when BOXES env var already set
2021-03-19 16:40:55 +01:00
Thomas Jensen
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
Thomas Jensen
5cb5435119
Extract config file discovery code into new module 'discovery'
2021-03-19 16:40:54 +01:00
Thomas Jensen
6779b74e9a
Add docs on config file discovery to man page #69
2021-03-19 16:40:54 +01:00
Thomas Jensen
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
Thomas Jensen
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
Thomas Jensen
68098e4480
Add test cases and test runner improvements for testing #69
2021-03-19 16:40:53 +01:00
Thomas Jensen
033c879ae6
Add helper function concat_strings_alloc() to tools module
2021-03-19 16:40:53 +01:00