Commit Graph

60 Commits

Author SHA1 Message Date
Vincent Herbet
ab854ec035 Improve UTF-8 support in some natives (bug 6475) (#407)
* Compile as static library, update AMBuildScript and link to core

* Update VS project files to include the library

* Add UTF-8 Rewind library (v1.5.1) to third_party directory

* Update ACKNOWLEDGEMENTS.txt

* Move AMXX buffer in its own function

* Move constants from string.inc to string_const.inc and update project files

* Move stocks from string.inc to string_stocks.inc and update project files

* Improve UTF-8 support in containi() and update documentation

* Improve UTF-8 support in strcmp() and update documentation

* Improve UTF-8 support in strfind() and update documentation

Worth to be noted that this native with ignorecase set was not working properly. So broken that no one reported the issue.
This adds also a safety check for "pos" parameter to not go < 0.

* Improve UTF-8 support in strncmp() and update documentation

* Improve UTF-8 support in equali() and update documentation

* Add an option to some UTF-8 Rewind functions for avoiding invalid data to be replaced

By default it replaces any invalid byte or sequence of bytes by 0xFFFD (3 bytes). It can be problematic when the input buffer is not changed (from a plugin) and that some natives need to calculate a position from the converted string. With such replacement, the position is displaced due the final string length being larger.

This compiles the library as C++, because I added some silly param with a default default value which is not supported by C.

* Improve UTF-8 support in replace_string/ex() and update documentation

* Add is_string_category() and update documentation

* Update a little testsuite plugin (and fix linux compilation)

* Add mb_strotolower/upper() and update documentation

* Add mb_ucfirst() and update documentation

* Add mb_strtotile() and update documentation

* Improve UTF-8 support in get_players() and find_player() with name/case insenstive flags set

* Fix KliPPy's complain
2017-08-05 10:32:16 +02:00
Vincent Herbet
1dc1f1b9c4 Introduce Trie Iterators (#413)
* TrieIter: Add possibility to obtain a new'd HashTable iterator

* TrieIter: Add CellTrieIter and storage

* TrieIter: Implement TrieIterCreate

* TrieIter: Implement TrieIterEnded

* TrieIter: Implement TrieIterMore

* TrieIter: Implement TrieIterGetKey

* TrieIter: Implement TrieIterGetSize

* TrieIter: Implement TrieIterGetCell

* TrieIter: Implement TrieIterGetString

* TrieIter: Implement TrieIterGetArray

* TrieIter: Implement TrieIterDestroy

* TrieIter: Invalidate any mutating change that is key addition or key removal

* TrieIter: Clean up the handles at map change

* TrieITer; Add iter tests to trietest.sma

* TrieIter: Fix linux compilation

* TrieIter: Rename TrieIterMore to TrieIterNext

* TrieIter: Adjust documentation

* TrieITer; Adjust trietest.sma

* TrieIter: Create a custom StringHashMap class instead

+ used a copy of |iterator| instead of dynamic allocation
+ initialized vars directly in constructor
+ added a nested iteration test
2017-08-01 15:05:27 +02:00
KliPPy
2863455185 Add menu pagination callback (#420)
* Add menu pagination callback

* Update test plugin
2017-04-04 10:29:18 +02:00
KliPPy
828e74e6c3 Add RequestFrame() native (#412)
* Add RequestFrame() native

* Change underlying container from CQueue to ke::Deque

* CFrameAction: Fix PackageScript and MSVC project, wrap CFrameAction in AutoPtr
2017-02-23 12:55:53 +01:00
Karol Szuster
53f9144fc3 Values by reference in forwards 2016-04-05 18:51:18 +02:00
Valentin Grünbacher
081b683e03 Update datapack test plugin 2015-03-30 04:14:55 +02:00
Arkshine
48d6a3354a Normalize all the line endings 2015-03-10 16:51:45 +01:00
HttrckCldHKS
38db4d3ae0 Updating hahsers INC files and Acknowledgements
INC files have been updated changing the information, adding new
details.
Acknowledgements file includes now Hashing Librarying license.
Spacing consistency has been fixed in CPP Hashing files.
Testsuite plug-in has been rewritten, now using Server Commands.
2015-02-16 16:30:45 +02:00
HttrckCldHKS
c071f53f2c Add new hashers and new natives
Replace the only hasher called MD5 with the ones listed below.

(+) CRC32, MD5, SHA1, SHA256, SHA3 224 BIT, SHA3 256 BIT, SHA3 384 BIT,
SHA3 512 BIT, Keccak 224 BIT, Keccak 256 BIT, Keccak 384 BIT and Keccak
512 BIT.

Add the natives listed below.

(+) hash_string(const string[], hashType:type, output[], const
outputSize)
(+) hash_file(const fileName, hashType:type, output[], const outputSize)
(+) is_arkshine_a_doctor() :  Hidden native, but a sign of recompense
for him being very active since 1.8.3 version of AMX Mod X
(+) get_system_endianness() :  Checks if the system is currently Big
Endian or Little Endian.

Add the following Enum.

(+) hashType {}
(+) sysEndianness {}

Deprecate the following natives.

(-) amx_md5()
(-) amx_md5_file()

It has been tested on Windows and Linux. The sanity checks seems to be
properly working, so no worries about them.

These are useful if people are using Sockets, cURLs or MySQLs in order
to compare hashes of different files On-line for further investigation.
You are not able to check if the files are older or newer, but you can
see if the content is different (Hash Checksum mismatch).

I'm glad I did this. Thanks to
2015-02-16 14:39:45 +02:00
Arkshine
2d07189e38 Fix few issues. 2014-08-06 09:17:53 +02:00
Arkshine
b97093a778 Add more debug in plugin. 2014-08-06 09:17:51 +02:00
Arkshine
037af0aec2 Split INI/SMC API. 2014-08-06 09:17:47 +02:00
Arkshine
0cf5a2e12f Expose ParseFile_INI to API.
Some minor changes have been made in parser:

- Added ReadINI_ParseStart and ReadINI_ParseEnd call.
- Function returns SMCResult instead of bool. To avoid unecessary complexity and duplicating natives, this feels more appropriate to let these functions to share some SMCResult and SMCParse constants. Since properly documented, this should be ok.
- Made sure curtok is set to 0 when ptr_val is null, otherwise unexpected value would be passed into the forward.
2014-08-06 09:17:45 +02:00
Arkshine
9af7931a79 Introduce TextParser API. 2014-08-06 09:17:43 +02:00
Scott Ehlert
f787db1be5 Update license headers for plugins and includes. 2014-08-04 13:18:41 -05:00
Arkshine
e7b7506efa Introduce API to create Stack structures 2014-08-01 23:14:44 +02:00
Arkshine
42fa547cb4 Improve CellArray. 2014-07-25 21:28:23 +02:00
Arkshine
752f95e913 Regex: Fix plugin title. 2014-07-18 13:50:41 +02:00
Arkshine
939a724b1a Regex: Add regex_replace native. 2014-07-17 11:21:06 +02:00
Arkshine
9ac3763267 Add iterators natives 2014-05-03 23:21:56 +02:00
Arkshine
b6cd247d12 Add new 'replace' and 'size' paramaters in some natives.
Fix some typos
Update the test plugin
2014-05-03 22:36:40 +02:00
Arkshine
f3bce9ecfd Add TrieGetSize native. 2014-05-03 16:09:31 +02:00
Arkshine
a86ca1491f Add new string natives/stocks, make some UTF-8 safe (bug 6110, r=ds) 2014-04-30 09:33:03 +02:00
Arkshine
f78fda6d9c Add new CellArray natives: Clone/Resize/FindString/FindValue (bug 6104, r=ds) 2014-04-15 10:34:48 +02:00
Arkshine
8a1464ac41 Introduce DataPacks (bug 5885, r=ds) 2014-04-11 22:57:42 +02:00
David Anderson
aa46469878 Add new variants of strbreak, which is too broken to use. 2014-02-09 23:40:45 -08:00
Vincent Herbet
5a6d3fde61 Add ArraySortEx/SortADTArray natives and new sort method Sort_Random (bug 5494, r=Nextra)
Former-commit-id: 1ff337d9801e2fbd9ad210bc1285d31679b3029e
2013-08-05 16:56:59 +02:00
Steve Dudenhoeffer
53ed817183 Added amb1600: trie natives 2008-04-14 19:52:11 +00:00
Steve Dudenhoeffer
a726b796db cellarray test had old ArrayGetCell syntax, oops 2008-03-30 07:25:35 +00:00
David Anderson
36241e2905 updated revision numbers 2007-10-26 00:28:17 +00:00
David Anderson
82c3807bd5 implemented SQL_QuoteString and SQL_QuoteStringFmt
fixed sqlx test script not working on first load
2007-04-25 13:55:56 +00:00
David Anderson
c957a9db0f Added SQL_QuoteString to include/tests 2007-04-25 13:45:15 +00:00
Steve Dudenhoeffer
d563ecb060 Added pseudo dynamic array natives.
Changed some of the "..." tags to "any".
2007-04-24 16:38:36 +00:00
David Anderson
1ec4d9cc7d fixed amb18 and various associated menu re-entrancy bugs 2007-04-16 18:00:54 +00:00
David Anderson
de530e2ca3 fixed amb200, added native test suite 2007-04-16 17:08:15 +00:00
David Anderson
5d4669d52e implemented amb17
expanded menu tests
deprecated MEXIT_NORMAL, MPROP_ORDER, MPROP_PADMENU
fixed various bugs in PagekeyToItem
2007-04-16 06:58:28 +00:00
David Anderson
71065a65dd attempted merge at 1.77 back into trunk... Oh MY GOD 2007-03-09 03:04:40 +00:00
David Anderson
d6ed1a8d8a Fixed bug am48234 2006-12-19 02:24:09 +00:00
David Anderson
a63c728471 added two new tests to the menu test suite 2006-10-21 21:13:57 +00:00
David Anderson
3fa6cd3227 added a timeout test which does not work, thanks MySQL 2006-10-01 19:59:27 +00:00
David Anderson
fe1ebfe7bb fix for 45337 and some other little things 2006-10-01 19:46:56 +00:00
David Anderson
f3057efd7d updated the test suite 2006-10-01 18:36:15 +00:00
David Anderson
d95f794844 rewrote replace_all()
added replace_all() tests
2006-09-10 08:15:00 +00:00
David Anderson
3754604686 Fixed a serious bug in replace_all() that could make replaces fail or corrupt random data 2006-09-10 07:23:08 +00:00
David Anderson
77e4d85002 fixed up a callfunc issue and added copyback parameter 2006-09-10 02:30:10 +00:00
David Anderson
418efa4088 fixed bug am44544 (log forward broken) 2006-09-10 01:08:29 +00:00
David Anderson
df7ee94b83 Committed sorting natives as per request am23838 2006-08-20 04:46:34 +00:00
David Anderson
df5c6ccb95 added format test 2006-08-19 22:23:45 +00:00
David Anderson
b572cdff2f Updated SQLX test suite for plugin_end() bug 2006-08-19 19:39:57 +00:00
David Anderson
042b9f7f4b Fixed bug am42307 (nvault_open did not return -1 on failure) 2006-08-18 22:46:07 +00:00