Commit Graph

281 Commits

Author SHA1 Message Date
Thomas Jensen
b90475eb2c
Remove preproc troubleshooting file parser.p #82
It was useful for checking what the pre-processor
did to the parser.c file, but as this invocation
caused problems on macos, we can leave it out.
2021-04-27 10:39:13 +02:00
Thomas Jensen
d1a1cf1580
Declare our src/Makefile as serial #79
because for some reason, make exhibits very strange behavior
when executing it in parallel jobs
2021-04-20 21:28:30 +02:00
Thomas Jensen
434d5971bf
Extract smaller functions from the main() function #78 2021-04-17 15:31:08 +02:00
Thomas Jensen
82bc084bad
Extract tag query functionality into its own, new 'query' module #78 2021-04-17 15:31:04 +02:00
Thomas Jensen
4d0dbcd59b
Rename global variable anz_designs to num_designs #78 2021-04-17 15:31:00 +02:00
Thomas Jensen
9d17203f50
Rename anz_lines field in input_t to num_lines #78 2021-04-17 15:30:56 +02:00
Thomas Jensen
a7227c8aa8
Extract reading of input lines into its own, new 'input' module #78 2021-04-17 15:30:51 +02:00
Thomas Jensen
fb010bc7d6
Remove lexer.l special around input_t in boxes.h #78 2021-04-17 15:30:47 +02:00
Thomas Jensen
aa36998f77
Rename ANZ_* constants in shape.h to NUM_* #78
This is more in keeping with English standards, and hopefully
improves maintainability a small bit.
2021-04-17 15:30:42 +02:00
Thomas Jensen
2cc2bc1021
Extract list_designs functionality into its own, new 'list' module #78 2021-04-17 15:30:37 +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
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
f147c8f6fc
Enable querying of the design list by tag #23 2021-04-11 20:27:15 +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
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
44f4c8adaa
Add support of alias names for designs #30 2021-03-30 20:34:20 +02: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
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
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
033c879ae6
Add helper function concat_strings_alloc() to tools module 2021-03-19 16:40:53 +01:00
Thomas Jensen
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
Thomas Jensen
58148de27f
Fix initialization of tabpos data in boxes.c 2021-03-19 16:40:00 +01:00
Thomas Jensen
e106e1412a
Fix bug where tabpos data was not properly initialized in tools/expand_tabs_into() 2021-03-14 12:25:29 +01:00
Thomas Jensen
e68de92a6f
Fix number of blank lines after title in box design list 2021-02-16 11:36:59 +01:00
Thomas Jensen
1fae201e47
Clean misc/getopt.o along with other object files 2021-02-16 10:51:46 +01:00
Thomas Jensen
2f8f463a46
Fix length argument to pcre2_substitute() 2021-02-15 21:10:57 +01:00
Thomas Jensen
b0d2dd835d
Add \E( as a possible start of an escape sequence 2021-02-15 21:10:57 +01:00
Thomas Jensen
352a7b6d5d
Add test cases for removal of colored boxes 2021-02-15 21:10:57 +01:00
Thomas Jensen
f60b9c5140
Update declared dependencies between files in src/Makefile #1 2021-02-15 21:10:55 +01:00
Thomas Jensen
fc7f881767
Explicitly set UTF-8 charset in unicode test cases
so that they don't fail on systems where UTF-8 is not properly set on the terminal #1
2021-02-15 21:10:54 +01:00
Thomas Jensen
7532faf755
Enable Windows build with new unicode-enabled version under MinGW #1 2021-02-15 21:10:54 +01:00