This issue was related to Lua not handling coroutines iterators right, the function being recursive generated multiple coroutine iterators and they didn't resume right. The solution is to make the first loop non-recursive and create a secondary loop where the recursive function is called.
Declaration and assignment must be separate statements when the
assignment value is provided by a command substitution;
as the 'local' builtin does not propagate the exit code from
the command substitution. #24
Makefile:
- short help was not properly created
love-release.sh:
- script aborts if GNU getopt is not found
- add GNU readlink as dependency, will check for greadlink too
README.md:
- add GNU readlink as dependency
Changed `sed -r` to `sed -E`. OSX does not support `sed -r` while
FreeBSD does. GNU sed seems to support `sed -E` even if it is not
in the man page.
Changed install command.
- dot files are now properly excluded when zipping
- add PROJECT_DIR variable
- add new deps exit in module_exit
- an optional error message can be passed to module_exit
- escaped characters will now be interpreted in error messages
- fix in compare_version
Options can now be prefixed to be used only for the module the prefix
corresponds to. For example `--author` will set the author's name for
the whole project, but `--Wauthor` will set it for Windows only and
`--Dauthor` for Debian only.
If a module requires new options, they will be automatically prefixed at
compilation.
Most of the modules options have been renamed for consistency.
The `read_option` function was added to parse the default options.
It can use a prefix to parse the options for a module.
Each module now has a specific directory in the cache to allow
per-module cache cleaning.
Modules options have been capitalized.
"project's name" was renamed to "project's title".
Many options to set global variables were added.
"--clean" option was reimplemented.
Short options are stored in the OPTIONS variable, and longs in
LONG_OPTIONS. Modules scripts need to add theses to be able to use
options. Theses lines are then parsed by sed at make-time and added to
the corresponding variable in the main script.
init_module now requires a third argument corresponding to the option
that will trigger the execution of the module.
Files can also be passed by argument to zip. They are stored in the
FILES array.
check_deps:
- add dependency check for GNU getopt,
- echo errors to stderr
gen_version now returns 0 on success and 1 on failure.
Add short_help function. Shown if -h options is passed, or on parsing
options failure.
exit_module:
- add 'options' exit value if there is an error while parsing the
options,
- add 'version' exit value if there is an error while generating
LÖVE version from user input.
dump_var shows files to zip.
Script will now exit if it has not been embedded nor installed.
Fix bugs with default module.