* Add r_io_map macros throughout code base
* Update string NULL-checking with renamed functions r_str_get() and r_str_getf()
* Change string NULL-checks throughout code base to use functions
* Add r_str_get_fail() to specify a custom string to return if NULL-check fails
* Mark JSON to be updated with PJ with "TODO PJ"
* Incidental style updates such as missing spaces
* Do not check with r_return_ if the convention is present
Let's just assume the NULL default in such a case, so that architectures
for which we don't have a defined calling convention can still be
processed somehow by the analysis code. It won't be precise, but it's
better than nothing.
Also add a warning message so users are aware when the calling
convention is not defined.
* Fix oob-read when # is at the end of the cmd string
* Do not set TMPDIR when the new value is the empty string
When TMPDIR is set to empty value, clang+ld behaves in weird ways and
you cannot compile files from within the r2 shell (e.g. when using #!c
or #!cpipe)
* Use meson and add -lasan to pkgconfig files when sanitizer are used
Before this patch, if you temporarily change the same variable two
times, the second time it will store the new value, which may be
restored later instead of the actual original one.
* Use TSSymbol instead of comparing type strings
This patch uses ts_node_symbol instead of ts_node_type to check whether
a node is of a given type. Since TSSymbol is just an integer, the check
will be much faster. Also, it allows to store commands handler in an
hashtable, instead of having if-cascade.
* Make sure r_config_hold works even when keys do not exist or are freed
* Add support for all _tmp_commands
* Make sure to always reuse the same TSLanguage
* Update both tree-sitter and radare2-shell-parser
This way we use TSLanguage version 11, which fixes some problems with
TSSymbols.
* Compute is_last_cmd on each single command and fix logging
is_last_cmd should be set on a per-command basis, so if you analyze
things like `pd 3; .; .; .;` the `.` refers to `pd 3`.
This also fixes logging, so when an invalid command is parsed, it is
still available in the history.
* Add comment about directly using r2-shell-parser in r_core_cmd_lines
r_core_cmd_lines tries to parse the input and split it in lines, but at
least in theory, we don't need it as the new parser can already handle
full scripts.
* Allow other tasks to run between commands even in the new parser
* Update radare2-shell-parser
See discussion at https://github.com/radareorg/radare2/pull/15681 .
Unfortunately the change cannot be done for non-int vars only, because
right now vars are not statically typed, so a var that is initially
CN_INT can then become CN_STR if you set a string.
Changing vars to assign them a static type when they are created would
require a much bigger change and discussion.
* meson: Explicit is better than implicit
* meson: Fix deprecated warnings in Meson 0.49.0
* meson: Do not need separate array for installed files
libr/socket/meson.build:30: DEPRECATION: Library r_socket was passed to
the "libraries" keyword argument of a previous call to generate() method
instead of first positional argument. Adding r_socket to "Requires" field,
but this is a deprecated behaviour that will change in a future version
of Meson. Please report the issue if this warning cannot be avoided in
your case.