* set `preserve_escapes` to 0 in guest/_c_base.pm so escapes are stripped in:
<pragma-> ,show testcargs
<candide> [global] testcargs: /code c11 printf("/say args: " ); while
(*++argv) printf("[%s] " , *argv);
<pragma-> ,testcargs foo\'bar baz\'qux
<candide> args: [foo\'bar] [baz\'qux]
to produce the desired output of:
<candide> args: [foo'bar] [baz'qux]
* set `keep_spaces` to 1 in host/_default.pm since it turns out that in some
languages unquoted spaces are significant, e.g. in `sh ${1% *}` to strip
text following two spaces. Without `keep_spaces` enabled, `sh ${1% *}`
becomes `sh ${1% *}` and strips all text following one space instead of two.
E.g.:
<pragma-> show testcargs
<PBot> [global] testcargs: /code c11 printf("/say args: " ); while (*++argv) printf("[%s] " , *argv);
<pragma-> testcargs 'hello''world' 'how are 'you today
<PBot> args: [helloworld] [how are you] [today]
Previously, adjacent 'foo''bar' would end up as 2 args like [foo] [bar]. Now
they are properly concatenated into one [foobar] argument.
This also fixes the cases of whitespace being inserted after quoted arguments.
general.debugcontext: filter out cmdlist and arglist
Core/Applets: log applet start/stop and duration
Core/ProcessManager: fix potential race-condition with $context object
Core/Interpreter:
* expand pronouns before command-substitution
* attempt to find current channel's factoid instance for metadata
* remove duplication of command history in command-substition
* terminate pipe/substitution processing when protecting self
Core/Factoids: limit -url contents to 250kb
Same-player ships will no longer be aligned end-to-end in the same orientation
to appear like one long ship.
There will no longer always be an even amount of horizontal and vertical ships
for each player.
This was way overdue. User passwords are no longer stored as cleartext.
When PBot is restarted after applying this commit, all stored passwords will
be converted to salted hash digests.
The `useradd`, `userset` and `my` commands will now hash passwords.
Why did it take me so long to finally get around to hashing passwords
properly, you might ask. The reason why this wasn't done sooner is because
all of my users used hostmask-based `autologin`. The passwords that PBot
randomly generated were ignored and never used.
I do regret that it took me so long to get around to this, for those of you
who might be using custom passwords instead of hostmask-based `autologin`.