From 539ebb44044e22fc0cd200a091c55370419fd88f Mon Sep 17 00:00:00 2001 From: sparky4 Date: Thu, 1 Oct 2015 13:56:58 -0500 Subject: [PATCH] cleaned --- 16.exe | Bin 54500 -> 54500 bytes 16.map | 2 +- 16/00jsmn00.7z | Bin 0 -> 111066 bytes README.md | 39 +- TODO.md | 43 ++ bakapi.map | 2 +- doc/TODO | 19 - {src/lib => doc}/cguide3.zip | Bin exmmtest.map | 2 +- fmemtest.map | 2 +- fontgfx.map | 2 +- maptest.map | 2 +- palettec.map | 2 +- pcxtest.map | 2 +- pcxtest2.map | 2 +- scroll.exe | Bin 77362 -> 77362 bytes scroll.map | 2 +- src/lib/00jsmn00/.hg/00changelog.i | Bin 57 -> 0 bytes src/lib/00jsmn00/.hg/branch | 1 - src/lib/00jsmn00/.hg/cache/branch2-served | 5 - src/lib/00jsmn00/.hg/dirstate | Bin 257 -> 0 bytes src/lib/00jsmn00/.hg/hgrc | 2 - src/lib/00jsmn00/.hg/requires | 4 - src/lib/00jsmn00/.hg/store/00changelog.i | Bin 18398 -> 0 bytes src/lib/00jsmn00/.hg/store/00manifest.i | Bin 15706 -> 0 bytes .../00jsmn00/.hg/store/data/_l_i_c_e_n_s_e.i | Bin 693 -> 0 bytes src/lib/00jsmn00/.hg/store/data/_makefile.i | Bin 2014 -> 0 bytes .../00jsmn00/.hg/store/data/_r_e_a_d_m_e.i | Bin 4776 -> 0 bytes .../00jsmn00/.hg/store/data/_r_e_a_d_m_e.md.i | Bin 3801 -> 0 bytes src/lib/00jsmn00/.hg/store/data/demo.c.i | Bin 5011 -> 0 bytes .../.hg/store/data/example/jsondump.c.i | Bin 970 -> 0 bytes .../.hg/store/data/example/simple.c.i | Bin 992 -> 0 bytes src/lib/00jsmn00/.hg/store/data/jsmn.c.i | Bin 16870 -> 0 bytes src/lib/00jsmn00/.hg/store/data/jsmn.h.i | Bin 5615 -> 0 bytes .../00jsmn00/.hg/store/data/jsmn__test.c.i | Bin 9439 -> 0 bytes src/lib/00jsmn00/.hg/store/data/test.sh.i | Bin 1520 -> 0 bytes src/lib/00jsmn00/.hg/store/fncache | 11 - src/lib/00jsmn00/.hg/store/phaseroots | 0 src/lib/00jsmn00/.hg/store/undo | Bin 251 -> 0 bytes src/lib/00jsmn00/.hg/store/undo.phaseroots | 0 src/lib/00jsmn00/.hg/undo.bookmarks | 0 src/lib/00jsmn00/.hg/undo.branch | 1 - src/lib/00jsmn00/.hg/undo.desc | 3 - src/lib/00jsmn00/.hg/undo.dirstate | 0 src/lib/00jsmn00/LICENSE | 20 - src/lib/00jsmn00/Makefile | 35 - src/lib/00jsmn00/README.md | 167 ----- src/lib/00jsmn00/example/JSONDUMP.EXE | Bin 12186 -> 0 bytes src/lib/00jsmn00/example/MAPTEST.EXE | Bin 14266 -> 0 bytes src/lib/00jsmn00/example/MAPTEST2.EXE | Bin 15196 -> 0 bytes src/lib/00jsmn00/example/SIMPLE.EXE | Bin 10506 -> 0 bytes src/lib/00jsmn00/example/jsondump | Bin 10160 -> 0 bytes src/lib/00jsmn00/example/jsondump.c | 124 ---- src/lib/00jsmn00/example/maptest | Bin 10128 -> 0 bytes src/lib/00jsmn00/example/maptest.c | 122 ---- src/lib/00jsmn00/example/maptest2 | Bin 10845 -> 0 bytes src/lib/00jsmn00/example/maptest2.c | 170 ----- src/lib/00jsmn00/example/simple.c | 75 --- src/lib/00jsmn00/farjsmn.c | 317 --------- src/lib/00jsmn00/farjsmn.h | 77 --- src/lib/00jsmn00/jsmn.c | 311 --------- src/lib/00jsmn00/jsmn.h | 75 --- src/lib/00jsmn00/jsmn_test | Bin 22084 -> 0 bytes src/lib/00jsmn00/jsmn_test.c | 608 ------------------ test.map | 2 +- test2.map | 2 +- vgmtest.map | 2 +- 67 files changed, 57 insertions(+), 2198 deletions(-) create mode 100755 16/00jsmn00.7z create mode 100755 TODO.md delete mode 100755 doc/TODO rename {src/lib => doc}/cguide3.zip (100%) delete mode 100755 src/lib/00jsmn00/.hg/00changelog.i delete mode 100755 src/lib/00jsmn00/.hg/branch delete mode 100755 src/lib/00jsmn00/.hg/cache/branch2-served delete mode 100755 src/lib/00jsmn00/.hg/dirstate delete mode 100755 src/lib/00jsmn00/.hg/hgrc delete mode 100755 src/lib/00jsmn00/.hg/requires delete mode 100755 src/lib/00jsmn00/.hg/store/00changelog.i delete mode 100755 src/lib/00jsmn00/.hg/store/00manifest.i delete mode 100755 src/lib/00jsmn00/.hg/store/data/_l_i_c_e_n_s_e.i delete mode 100755 src/lib/00jsmn00/.hg/store/data/_makefile.i delete mode 100755 src/lib/00jsmn00/.hg/store/data/_r_e_a_d_m_e.i delete mode 100755 src/lib/00jsmn00/.hg/store/data/_r_e_a_d_m_e.md.i delete mode 100755 src/lib/00jsmn00/.hg/store/data/demo.c.i delete mode 100755 src/lib/00jsmn00/.hg/store/data/example/jsondump.c.i delete mode 100755 src/lib/00jsmn00/.hg/store/data/example/simple.c.i delete mode 100755 src/lib/00jsmn00/.hg/store/data/jsmn.c.i delete mode 100755 src/lib/00jsmn00/.hg/store/data/jsmn.h.i delete mode 100755 src/lib/00jsmn00/.hg/store/data/jsmn__test.c.i delete mode 100755 src/lib/00jsmn00/.hg/store/data/test.sh.i delete mode 100755 src/lib/00jsmn00/.hg/store/fncache delete mode 100755 src/lib/00jsmn00/.hg/store/phaseroots delete mode 100755 src/lib/00jsmn00/.hg/store/undo delete mode 100755 src/lib/00jsmn00/.hg/store/undo.phaseroots delete mode 100755 src/lib/00jsmn00/.hg/undo.bookmarks delete mode 100755 src/lib/00jsmn00/.hg/undo.branch delete mode 100755 src/lib/00jsmn00/.hg/undo.desc delete mode 100755 src/lib/00jsmn00/.hg/undo.dirstate delete mode 100755 src/lib/00jsmn00/LICENSE delete mode 100755 src/lib/00jsmn00/Makefile delete mode 100755 src/lib/00jsmn00/README.md delete mode 100755 src/lib/00jsmn00/example/JSONDUMP.EXE delete mode 100755 src/lib/00jsmn00/example/MAPTEST.EXE delete mode 100755 src/lib/00jsmn00/example/MAPTEST2.EXE delete mode 100755 src/lib/00jsmn00/example/SIMPLE.EXE delete mode 100755 src/lib/00jsmn00/example/jsondump delete mode 100755 src/lib/00jsmn00/example/jsondump.c delete mode 100755 src/lib/00jsmn00/example/maptest delete mode 100755 src/lib/00jsmn00/example/maptest.c delete mode 100755 src/lib/00jsmn00/example/maptest2 delete mode 100755 src/lib/00jsmn00/example/maptest2.c delete mode 100755 src/lib/00jsmn00/example/simple.c delete mode 100755 src/lib/00jsmn00/farjsmn.c delete mode 100755 src/lib/00jsmn00/farjsmn.h delete mode 100755 src/lib/00jsmn00/jsmn.c delete mode 100755 src/lib/00jsmn00/jsmn.h delete mode 100755 src/lib/00jsmn00/jsmn_test delete mode 100755 src/lib/00jsmn00/jsmn_test.c diff --git a/16.exe b/16.exe index 338b53aa74be5881b2af5a32e1ded98200606b8b..8723f6ed47061c186f8367b116c646a1efd65d7a 100755 GIT binary patch delta 59 zcmaE|lKII><_-NE3T3H9#hLke3aZ6i4F1U_3JQh_Mh1qa3Wmm3re;>A7Ms^|Ff+2v PW(eTh(Z6{Ir_N~rP`MJm delta 59 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⁡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 literal 0 HcmV?d00001 diff --git a/README.md b/README.md index b2a727b7..d0f38be2 100755 --- a/README.md +++ b/README.md @@ -11,44 +11,7 @@ Open watcom to compile the code of project 16 16/modex16/ = pngwen's code archived~ src/ = source of project~ doc/ = documentation of the project~ -doc/faq.txt = frequently asked questions file! - -### TODO not in particular order~: - -+ DONE 1. SCROLLING!!!!!!! -+ 2. Fix pngwen's pcx rendering code it dose not render large relolution pcx files well at all! almost done -+ 3. tweak animation frame perloop and make the dpad controls a case switch (look at commander keen code?) and vsync horizontal animation -+ DONE 4. movement and player movement when reaching edge of map -+ DONE 5. sprite rendering -+ 6. text box rendering -+ semi done 7. text rendering -+ DONE! YAY! 8. map loading -+ DONE! YAY! wwww 9. map rendering~ -+ 10. map and item interation -+ 11. item inventory~ -+ ==working on extending== DONE! but needs work! 12. Memory management (EMS + XMS) done but not tested... -+ 13. case switch with keyboard code (when your holding 2 arrow keys and a key is released the keyboard controller dose not read input from the port anymore for some weired reason) -+ 14. masking layer! (i think this is not easy to accomplish!) -+ DONE 15. 8088 detection to turn off vsync! - -+ ==working== 16. (very important!) optoimize draw row and draw col - -+ not needed ... really... 17. merge map system and interperator from verge 2 -+ 18. save feature! -+ 19. (also important) interperator! and possibly custom map system -+ 20. (also important) lua scripting system! -+ 21. extend the map system! -+ DONE! 22. opl2/3 audio!!!! - -DONE! use IN_ReadControl!! - -+ 23. engine core! -+ ==working== 24. (MOST important!) FUCKING MASSIVE DATA MANAGEMENT!!! related to 12. -SEMI DONE~ + 25. MUSIC PLAYBACK!!!! WWWW - -get dos_sj.rar -It may be very useful to us... - +doc/faq.txt = frequently asked questions file! ### To compile: diff --git a/TODO.md b/TODO.md new file mode 100755 index 00000000..d44cc431 --- /dev/null +++ b/TODO.md @@ -0,0 +1,43 @@ +### TODO not in particular order~: +What needs to be done ++ DONE 1. SCROLLING!!!!!!! ++ 2. Fix pngwen's pcx rendering code it dose not render large relolution pcx files well at all! almost done ++ 3. tweak animation frame perloop and make the dpad controls a case switch (look at commander keen code?) and vsync horizontal animation ++ DONE 4. movement and player movement when reaching edge of map ++ DONE 5. sprite rendering ++ 6. text box rendering ++ semi done 7. text rendering ++ DONE! YAY! 8. map loading ++ DONE! YAY! wwww 9. map rendering~ ++ 10. map and item interation ++ 11. item inventory~ ++ ==working on extending== DONE! but needs work! 12. Memory management (EMS + XMS) done but not tested... ++ 13. case switch with keyboard code (when your holding 2 arrow keys and a key is released the keyboard controller dose not read input from the port anymore for some weired reason) ++ 14. masking layer! (i think this is not easy to accomplish!) ++ DONE 15. 8088 detection to turn off vsync! + ++ ==working== 16. (very important!) optoimize draw row and draw col + ++ not needed ... really... 17. merge map system and interperator from verge 2 ++ 18. save feature! ++ 19. (also important) interperator! and possibly custom map system ++ 20. (also important) lua scripting system! ++ 21. extend the map system! ++ DONE! 22. opl2/3 audio!!!! + +DONE! use IN_ReadControl!! + ++ 23. engine core! ++ ==working== 24. (MOST important!) FUCKING MASSIVE DATA MANAGEMENT!!! related to 12. +SEMI DONE~ + 25. MUSIC PLAYBACK!!!! WWWW ++ 26. basic SFX from opl2 + pc speaker! ++ 27. clean up repository after event 1. + ++ 30. script system for text and interaction ++ 9000. fix any bugs found ++ 9001. make the game wwww + + + +get dos_sj.rar +It may be very useful to us... diff --git a/bakapi.map b/bakapi.map index 52684745..0123fe07 100755 --- a/bakapi.map +++ b/bakapi.map @@ -1,7 +1,7 @@ Open Watcom Linker Version 2.0 beta Sep 21 2015 09:27:06 (32-bit) Copyright (c) 2002-2015 The Open Watcom Contributors. All Rights Reserved. Portions Copyright (c) 1985-2002 Sybase, Inc. All Rights Reserved. -Created on: 15/10/01 13:49:51 +Created on: 15/10/01 13:56:58 Executable Image: bakapi.exe creating a DOS executable diff --git a/doc/TODO b/doc/TODO deleted file mode 100755 index 1f2a6776..00000000 --- a/doc/TODO +++ /dev/null @@ -1,19 +0,0 @@ -16/ is an experimental branch of project 16 - -What needs to be done -1. Map/event system and movement -Look at the game Pokemon Crystal and Ib for an example of what I mean -2. sprite loading and rendering! properly -3. font and text box rendering and system -4. map rendering -5. map and item interaction -6. fix any bugs found -7. script system for text and interaction - -8. clean up repository after event 1. - -9. basic sounds from opl2 + pc speaker! -10. make the game wwww - - - diff --git a/src/lib/cguide3.zip b/doc/cguide3.zip similarity index 100% rename from src/lib/cguide3.zip rename to doc/cguide3.zip diff --git a/exmmtest.map b/exmmtest.map index c6276fea..961a9038 100755 --- a/exmmtest.map +++ b/exmmtest.map @@ -1,7 +1,7 @@ Open Watcom Linker Version 2.0 beta Sep 21 2015 09:27:06 (32-bit) Copyright (c) 2002-2015 The Open Watcom Contributors. All Rights Reserved. Portions Copyright (c) 1985-2002 Sybase, Inc. All Rights Reserved. -Created on: 15/10/01 13:49:51 +Created on: 15/10/01 13:56:58 Executable Image: exmmtest.exe creating a DOS executable diff --git a/fmemtest.map b/fmemtest.map index 042c8829..5bd65856 100755 --- a/fmemtest.map +++ b/fmemtest.map @@ -1,7 +1,7 @@ Open Watcom Linker Version 2.0 beta Sep 21 2015 09:27:06 (32-bit) Copyright (c) 2002-2015 The Open Watcom Contributors. All Rights Reserved. Portions Copyright (c) 1985-2002 Sybase, Inc. All Rights Reserved. -Created on: 15/10/01 13:49:51 +Created on: 15/10/01 13:56:58 Executable Image: fmemtest.exe creating a DOS executable diff --git a/fontgfx.map b/fontgfx.map index 1f10da82..d5c7bd0e 100755 --- a/fontgfx.map +++ b/fontgfx.map @@ -1,7 +1,7 @@ Open Watcom Linker Version 2.0 beta Sep 21 2015 09:27:06 (32-bit) Copyright (c) 2002-2015 The Open Watcom Contributors. All Rights Reserved. Portions Copyright (c) 1985-2002 Sybase, Inc. All Rights Reserved. -Created on: 15/10/01 13:49:51 +Created on: 15/10/01 13:56:58 Executable Image: fontgfx.exe creating a DOS executable diff --git a/maptest.map b/maptest.map index 1c11826f..b4935795 100755 --- a/maptest.map +++ b/maptest.map @@ -1,7 +1,7 @@ Open Watcom Linker Version 2.0 beta Sep 21 2015 09:27:06 (32-bit) Copyright (c) 2002-2015 The Open Watcom Contributors. All Rights Reserved. Portions Copyright (c) 1985-2002 Sybase, Inc. All Rights Reserved. -Created on: 15/10/01 13:49:51 +Created on: 15/10/01 13:56:58 Executable Image: maptest.exe creating a DOS executable diff --git a/palettec.map b/palettec.map index ec898cba..4bd13f99 100755 --- a/palettec.map +++ b/palettec.map @@ -1,7 +1,7 @@ Open Watcom Linker Version 2.0 beta Sep 21 2015 09:27:06 (32-bit) Copyright (c) 2002-2015 The Open Watcom Contributors. All Rights Reserved. Portions Copyright (c) 1985-2002 Sybase, Inc. All Rights Reserved. -Created on: 15/10/01 13:49:51 +Created on: 15/10/01 13:56:58 Executable Image: palettec.exe creating a DOS executable diff --git a/pcxtest.map b/pcxtest.map index ad4f02e8..e43add29 100755 --- a/pcxtest.map +++ b/pcxtest.map @@ -1,7 +1,7 @@ Open Watcom Linker Version 2.0 beta Sep 21 2015 09:27:06 (32-bit) Copyright (c) 2002-2015 The Open Watcom Contributors. All Rights Reserved. Portions Copyright (c) 1985-2002 Sybase, Inc. All Rights Reserved. -Created on: 15/10/01 13:49:51 +Created on: 15/10/01 13:56:58 Executable Image: pcxtest.exe creating a DOS executable diff --git a/pcxtest2.map b/pcxtest2.map index cebc4f47..c237ce42 100755 --- a/pcxtest2.map +++ b/pcxtest2.map @@ -1,7 +1,7 @@ Open Watcom Linker Version 2.0 beta Sep 21 2015 09:27:06 (32-bit) Copyright (c) 2002-2015 The Open Watcom Contributors. All Rights Reserved. Portions Copyright (c) 1985-2002 Sybase, Inc. All Rights Reserved. -Created on: 15/10/01 13:49:51 +Created on: 15/10/01 13:56:58 Executable Image: pcxtest2.exe creating a DOS executable diff --git a/scroll.exe b/scroll.exe index cb2423343cba0e9d1b356577cfd1feb7e8d00c35..e0625aeb1dbde3a8babe770ad2a09d5259c56cbd 100755 GIT binary patch delta 80 zcmdmVhh@_pmJJE~+GVLl#hLke3aZ6i49OYUxrqe|`Pp0y{>dc@3Wf?s28N~zhQ?N= kW>%&ale_tEG1hEO6PU)%*3KBfx1*q$Nn$&b1fzi%05Pi=5dZ)H delta 61 zcmdmVhh@_pmJJE~BL2xG3JQh_Mh1qa3Wmm3CYDyFhLhv@B_{Xq-(;M)IZa?1J6i!` R0N;+*W+sX4OcIO+VgOel5#ay; diff --git a/scroll.map b/scroll.map index 561a5413..63bde439 100755 --- a/scroll.map +++ b/scroll.map @@ -1,7 +1,7 @@ Open Watcom Linker Version 2.0 beta Sep 21 2015 09:27:06 (32-bit) Copyright (c) 2002-2015 The Open Watcom Contributors. All Rights Reserved. Portions Copyright (c) 1985-2002 Sybase, Inc. All Rights Reserved. -Created on: 15/10/01 13:49:51 +Created on: 15/10/01 13:56:58 Executable Image: scroll.exe creating a DOS executable diff --git a/src/lib/00jsmn00/.hg/00changelog.i b/src/lib/00jsmn00/.hg/00changelog.i deleted file mode 100755 index d3a8311050e54c57c5be7cfe169e60a95768812c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 57 zcmWN_K?=Yi3KA8%D7|E;0{bUW1>9N1xq0y=sl_F5Ikp0* y92-bZF9WJYbUsv=GsxA^#n)9YHw7xgX$F-Mg4vc;oS&Ccnp*%jQ%(fM%wz!Cw_Fhb diff --git a/src/lib/00jsmn00/.hg/hgrc b/src/lib/00jsmn00/.hg/hgrc deleted file mode 100755 index 3535e612..00000000 --- a/src/lib/00jsmn00/.hg/hgrc +++ /dev/null @@ -1,2 +0,0 @@ -[paths] -default = http://bitbucket.org/zserge/jsmn diff --git a/src/lib/00jsmn00/.hg/requires b/src/lib/00jsmn00/.hg/requires deleted file mode 100755 index f634f664..00000000 --- a/src/lib/00jsmn00/.hg/requires +++ /dev/null @@ -1,4 +0,0 @@ -dotencode -fncache -revlogv1 -store diff --git a/src/lib/00jsmn00/.hg/store/00changelog.i b/src/lib/00jsmn00/.hg/store/00changelog.i deleted file mode 100755 index 2e012d4dda695a0e911aa0ca8fc38269e9698b42..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18398 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 GasMBm>7xq( diff --git a/src/lib/00jsmn00/.hg/store/data/_l_i_c_e_n_s_e.i b/src/lib/00jsmn00/.hg/store/data/_l_i_c_e_n_s_e.i deleted file mode 100755 index fba581bda412eff57d951e3bffd50ee97e228ef4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 693 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
    G@vd!7 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 diff --git a/src/lib/00jsmn00/.hg/store/data/_r_e_a_d_m_e.md.i b/src/lib/00jsmn00/.hg/store/data/_r_e_a_d_m_e.md.i deleted file mode 100755 index af43bd6f830c06d7423b9c2449f097f21d204bbc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3801 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 diff --git a/src/lib/00jsmn00/.hg/store/data/demo.c.i b/src/lib/00jsmn00/.hg/store/data/demo.c.i deleted file mode 100755 index 0165bea62dad084f29bf21a12bf0009b0f441b55..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5011 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 Ot0yd6fCX`A@_zv3EKw~0 diff --git a/src/lib/00jsmn00/.hg/store/data/example/jsondump.c.i b/src/lib/00jsmn00/.hg/store/data/example/jsondump.c.i deleted file mode 100755 index 9359140b7a55658f263f8b94b5cbeeaa5d2e6a75..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 970 zcmV;*12y~r0RRC20000000W8u00}k#00000002?{|NsC0|NsAo*UrCzKZ}S5RT*!6 zxL6K>l~aNM00000000000001ZoV8YMPuoBY{@nZuuZWR0p{48_rATEeQxR=Zfl2H| zRY)#0ZE_b~E)s0wzt6r)niRw)u}uOIU+l-e$B!L$BJRg|z~DGjK_oiM6Kkh_6i0W@ z&t$~!x6hcAd^@z+>2z0F!aK{RWp&#Yv|-4BJ$OkPGY}z2<^_lY=U1~Sgi<6x`8jwz zfD|(*dKswEd!eo{X=@pGPJ@vk}_O-A+4ex`5scIohWOEL@g6u{z4Gw>qK)%AQl z{j{B9kCN>D%Ph0g^U=ra?JVDTQzNWkpm}J7LV_J>3nDnyNs(nV9LIzjm$h+Oql@7j zpUI;H1~9;g>lXor;3=B^9O2%^ZD@BTyMj~ zbG$b*v)_A-o9Y1D`(LhX)kOYeSu_)g7jb(tA+m4&G7&D=L&|)`f`Wl^>d>6tTwLHu zF>k9ZX1wlnmxo_ZZ_cj9U%vM(t3gA$NIjV`32EQh<0p@Z5YSG_Y{LnB#dwv&%nbU&_ki)@Dza)k6dlaC_vh(bg%*qf zuC}5+*pkD$>Ro+jHp+=IZ(c7b=NqWe?5q^)2J6sZ>2hcQNpSl6fP9;sPjYiW;%{%m z1-aEb_A-Bo@p{kdP16P77nS?zBY`_6FMY$XFVbwuLin4CP>$X`&eKuR$x8VsR;t`B zQBYy-mh4_MbkhgDkw)|RY`&PzCZkD7eQjJekL`lJLha?1b++GVzDV~%_HU$dn@B@t sqj4|r9|cWM)!>?7svSqgrXBo)I>E2ofdPHCkxIRiM(R857fN5DzYH|b$N&HU diff --git a/src/lib/00jsmn00/.hg/store/data/example/simple.c.i b/src/lib/00jsmn00/.hg/store/data/example/simple.c.i deleted file mode 100755 index e3c61371ccd641b3607bc2b9939f6d4fb0817af0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 992 zcmV<610VbV0RRC20000000W=^00@2n00000002?{|NsC0|NsBWGCzZ&zdK#JqKAXs zw|H(h-wtB{00000000000001ZoW)h!Zrer>eI~zR%Akhsmpm0#6hOTN37Qyi5)_3c z7&N((Rwj3u-KAZ}(ZBc1uBcFLjXdT-+S}~xoO5P|&!ozVIv4c9x?Jkf_GSF6wPmE* zoa`l|(RgP|HQFX|JnqHRqXpSAEeaBUr)5-QfnU%z`r z^EgT#mq~4fStjSSOm=#!axIq00E;v)rQ-c{T3Eq5waj@volGW!r6Njjf0=BIt}Dw2 zSHYJJ_YuD+4z6l&6sC7F7nrX0$t;eoOP$O}DhKFViBFw&sJu1soB-UlqaKCfj12ytx2}!!Si4#=$m@q6mg6E2|Da zPyN>Ufb8J^Z+f2-A53Hflu|UA#nC=)R>SEm-p4TmEmNsFA#SYXEQ|&tBfVzzA!>D4 z2juQ*`uwNWjK)3sQy^g~kvUSDN{yUw+f)(Gn-pNhgDzq|x_%bx7ul}()pjIXf z8g^QHU0}t&{4DgkPz!78l9Ax2t6?GT1nQy?rC^FIvYqtJjzI(5@#QIf`9d7e$P53&LHLWG z-~9H=htsGo!tKDE;9#DJGdSguPB%xLY}QLME=W`Wk}j3lBl82bJ2 zEJt`q=o6OD+?8An$X7|yPMRnvTc!_$Ggd?8b%itmk89zwErp&!cWF@z|Nd8SL;47R zAbHfYo@Tt#pRPv8(&1qm@|Q0~QM&{5scqmniGYH~Jp@1~--6=1#8X((JeN*t1uh>@ zvLd@>f6QjU0cnNA(oljHClUguiElT_e=siiq3;9|jqfRl_bE~oD&?9ba=L(M0K|z* z8{xP~3xgi_gmABa{Z5cV*FHt%`|#{E!dKqzys4PbY{T0pRkygjT>N$L6QM^tscP}B zjuqZyW^M%6bZQJ3M16(iwg-Cl{O8MShw_@tXovD@@S+Q0qbang)g*fxSTnr-uK#@H zgFWIPd?AlCZ<+?aIX3oFZkzpp*oPyjKX1nXt7(hv$2MsnRnup1lRQDU&ww2wt Oza$g>ko*Jd3Vhx!yzE>6 diff --git a/src/lib/00jsmn00/.hg/store/data/jsmn.c.i b/src/lib/00jsmn00/.hg/store/data/jsmn.c.i deleted file mode 100755 index d037ee40979f55e1a84d64d105e08e4246787b63..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16870 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 O6i@I*spxY6js8Ej@pC=^ diff --git a/src/lib/00jsmn00/.hg/store/data/jsmn__test.c.i b/src/lib/00jsmn00/.hg/store/data/jsmn__test.c.i deleted file mode 100755 index 4a165463c165c3f90c26823c8b44c8bfa68a6930..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9439 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 diff --git a/src/lib/00jsmn00/.hg/store/data/test.sh.i b/src/lib/00jsmn00/.hg/store/data/test.sh.i deleted file mode 100755 index 7b9031c6238e3994a75727dfbf3563a226271bed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1520 zcmZQzWME_f17-mR2KLJkHiPJYD0mlZTU6cmY1;~ysk+sg)j~d5dL~dcV5(wHZK$vR zV*>%(>-&=orrye$J>}EJc0HMhz$LM7nSunxyCzKDapl3Ssc$!I(D`3`yim%~!=iMO z`TMhHq>tadC#CAtE0i|9C1-N(jwja|eS0IU1;n=OO!oToRMO+)frGlOa}&fG*uJ|T zRyJ-@ofQ2dUgmt-W#I&^=F5-e_b*dtj>wv+$eMY}kdu|);pyrY=?mNu#@Ur-Q3jpA z__%Ke&9Yxx`RW&Q#1pMjC+&#h%@@*A8yiJm`F&EdZwpS`a6f3~%-uCdr+&V*FX!kn z$3LH!MF->@tzE8qK6%=5sp#WA%TE2eaYcEuWxwJXGp^#POPCJj99E1^Ka;-s&P&l^ zrPLrh@w|W6Zp0c&daRY_5>{V&VE@_tNIs2kCwcoH?>O}8K?B(v>p1SMo4=?8@ z3453WnRc_sD?0tPK73t3_OQgR@(I5Dmb5A@3J;xt*XAc`GGT+e#9->x+iHFyKQ>Wz3S)YybG2XF!oR4 z%3Sa`aNC~i4(9XX7Vy?Aj9JiM{{0(&)>GyeFIjIn#Cx38YW%VI5F5W#;pUE0sg}+C zSzM|wSZi)LY(K~HZIbuO>@N&eX1WQ#+#dYhm6quIbf3`N)jczxn@j(Gano;gy!HG@ z*{z=!sVy?Un6sjA?jA>G+dQEaGP73ioT*;S{`pS+mbYi`iCud4O>**$;t#*h zZa>g-eYYHcd3*KYzYh=k`brh9|E;!g;d(EY4|{kU-(5~DENVNdens!*oO^K#d|xgr zeewCpJ?<;Zubs4gwKu>`-DKf<(@2+>OPHi@9c&3cnA#?FG_v-5y`t={3%erRo3bSz zeQpcfqhm2;Pw=tZ{Vm!b7X6rgMB5-{(v&NC#|qe|t>^s7Kby_650oiDISB|V85lU? z!7K&_F%S*PQaks~I`r|C$w6<<<2tDooTgD{-?c;4fT@Z($q5PbPcj_iv0W+3y7Htd z*Q?B*KVNaZ^6Yed#bsv36?gDo-N$uxdNEgH=6E@1sKinO(xvIgYNX$vw@+Q=w|W6xiWH zNeKyEsR;=mp6Yn%ZVbJ6;qrN{b7#B#JCT3>xTXX)H-+{{&W_$j8ONnd z{`{G<;fNB@=dF_#T?)}-2=JD10J(vM1MHFzpz~wFECvQ?Ak74Fe%8(pVg@gkdst0O zG*oN2D0f(J@?@wQD8(cMR0@hO56+_05?d7wJ^hr_+GbCBU3X4U4f^HsAphh9Nv_wHSS;5d$SCb25FiQ;Bcw{%p0!5fX qZu%PYz|Ou9-=+!)=<n6+@glU76m't', 'f' - boolean -* 'n' - null -* '-', '0'..'9' - number - -Token is an object of `jsmntok_t` type: - - typedef struct { - jsmntype_t type; // Token type - int start; // Token start position - int end; // Token end position - int size; // Number of child (nested) tokens - } jsmntok_t; - -**Note:** string tokens point to the first character after -the opening quote and the previous symbol before final quote. This was made -to simplify string extraction from JSON data. - -All job is done by `jsmn_parser` object. You can initialize a new parser using: - - jsmn_parser parser; - jsmntok_t tokens[10]; - - jsmn_init(&parser); - - // js - pointer to JSON string - // tokens - an array of tokens available - // 10 - number of tokens available - jsmn_parse(&parser, js, tokens, 10); - -This will create a parser, and then it tries to parse up to 10 JSON tokens from -the `js` string. - -A non-negative reutrn value of `jsmn_parse` is the number of tokens actually -used by the parser. -Passing NULL instead of the tokens array would not store parsing results, but -instead the function will return the value of tokens needed to parse the given -string. This can be useful if you don't know yet how many tokens to allocate. - -If something goes wrong, you will get an error. Error will be one of these: - -* `JSMN_ERROR_INVAL` - bad token, JSON string is corrupted -* `JSMN_ERROR_NOMEM` - not enough tokens, JSON string is too large -* `JSMN_ERROR_PART` - JSON string is too short, expecting more JSON data - -If you get `JSON_ERROR_NOMEM`, you can re-allocate more tokens and call -`jsmn_parse` once more. If you read json data from the stream, you can -periodically call `jsmn_parse` and check if return value is `JSON_ERROR_PART`. -You will get this error until you reach the end of JSON data. - -Other info ----------- - -This software is distributed under [MIT license](http://www.opensource.org/licenses/mit-license.php), - so feel free to integrate it in your commercial products. - -[1]: http://www.json.org/ -[2]: https://bitbucket.org/zserge/jsmn/wiki/Home -[3]: http://zserge.com/jsmn.html diff --git a/src/lib/00jsmn00/example/JSONDUMP.EXE b/src/lib/00jsmn00/example/JSONDUMP.EXE deleted file mode 100755 index dccede190f93eb135398bcd2eaf3030a6bbf4591..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12186 zcmdsddwdkt`S+RG*-JJTB1A5VVNqNO0h$PcOE!SA%z|PPh$LKt$VKQ+z$P;rZ9`bP zrOnAC`B{7UY46tBA3y3_(b6_RD@#_hL5dP$H3W(Xs54B&Ktd97*?GTbHc@Q*e%|-* zH+GTP!XsYQv^>mu$V@; zmTLQV!qPnN)Y8;|$GcOy&%0L2_Rf)}>8W0qbdNV#y33nTDtMiN+m-PQ+UvsCuF?cW zj8S2KOrK^5`fGcRNfVV42Ys7%sI!bcVR@+A&{LEor6iVpN?mDWg^eWIzII(n1CPyO zVH3Z)Fq#)rl4#R>DwwPDezCfHy?4slm=Ab`tgwEV&D4OI{>EBtG-Jf@%4zE8YsL7QUWYfu}E71WO;s@wVnPYRY5(s!a_j1Z+{K(XhD zy=8eyNuN?VV7bF&&itykz@GF#j(05iw3KrIm8t)lvp{<%CK2 z1GX*Kint-JZPXs-v~P1-j2IwbxAZ6@-Ze!WQ0oS1gmG%Wp>2uj^Yj^*QCTSD8itg} zM2_}wQDdPkIQT6&v7RG(f;NNG>PS6Ls_YEZ3K>)u@{8y~K^w;b^^M@*PT9&pEexoE zZO6|qdd;#YTrr(SS}t;(pLepe}^sN zqB(HvO#?@m0~3Ik`UUM}vPeH?1RV6LQqrpw_0e8+@8EaBJ1yD^gV^iPR$8&J_q6Q< zj}xz1l(hm|2Besm-tcnL<7@+1-m2Fu@p*#tcnQ4YWNo;`T=E$PP1=pXOrT#Jo#D5k$FOU6#UX~MaobIsN;EfRg=kzDSfpR57Gv7!0rN!j zmKB9G615W&_4DipG+K=#4K?v8&(y?G`aW$7dM)xqWsQ)DbAM7L7Eh}@a_FADYgET0&}1f1CuiS&Vu@>82A?qbfO(VH{+a7^nIFz^K$aE zdOyH^1Ta3^pp`M4aKPsHZ9BJTAM;$@Iih|s`eoMtfd09@uGYs-K%IF7u`&uq2 zVz<>ns5rniD0zKsS$7y*w0;Rj&10i(0<{zk41x5;0Kz67&p^OB{d=_wIjxL%d3js5 zVRmt>>nkfdn|-X-XLye8Og0yFo--HKUY`#{E$jn}yJ595T4GzppkFu48hNpd* zL9=OpogFr{VWj>}ULDO9E?s77>D}!~JbJ`F>m)`c$G)jy8hsNvemZ z5o31!a-wfLIF&n0_(L42{chKwIvE{%!aK*SW1#DenT7RRp=uX#1?tO|(3=j%#$OQm zwoqjsksqiJ4)sy=2{^Law~3M$PXG#Nn9l7&9YIMZ}zn2*z)*tN6pC`+aylnA}Oot{r1BgQM;^# z()tbm;mQweD&73#j`E3QX)%q~wAO_W8pe$9wcqzNFQ!fFRz{W<71Iy)oRMwW;dM9( zHEr}XZLDjceOUmaH|Pf$H#&bSS;rj&RVu92Y69Ghg1KT6$@Oo zIx@_zP`f~*IAIUwUN*{etrjvV2CC)SNNG+Zbb9tFP%_6hg$v{=vnDewnYpK1_693s zL|PAxb=``wTNtGN{*XMdy+_3X8`0mOv!-y$EH|eg&knQaOH(*KtSoU-pz_=(9f4hR z0?7d@Z2+Gp=A=yF%B_kd=s%@+)vu%PIR_^AF(%+N$)G3opVhbVk@~ZIWXL6OEL%$3 z=y9yM+i&A!i}n_wCwn$`n;0$HYeZQmKtmDq9E5@D0-Fc{=zKJ^5?X{K+XXF;NoLXp zoM2BwfX7Rqi{C5~ z?x8~kmuPuHb~u=CbLs80N&RkuHqYqx1Jh4vt9mH`D?Xt;05v8hapFJ*2qgAt*#IayKImf+E1HG6kRKXKzK3K5rqdS9q7SsokOiSB8`-RP_q#H>s7 zzTDdg(~wS5yb+HqkU8}m3fdlW|*zejw^If`^UZqib?yKYnY=0tX zZ_*0#2Fo#RP`|2vl9(OVFVk!2w>tH6?9jZALnC}~WTJHq#jou9PWXIZHe=@RZaLPu zZ-stdt0wtRZQAZCUN3FfvCXyMYYQ?nvuC-M$=jzrx^>$oSJ^XV(xz?GT?IQzrL8-* zm$??~c_fDTOWr{0r`I05B z^<`ySpV+=_({{dAz$OeGzXt8*iy=RxYBofLB_YFUSA6gL9YgM9x)Gcv2J2Y|3da zO@w}_pO;wkw)&r3O;~Abz8L=}TMowz3>SH&&C=?AaS>k^&TKvK(20pPAJ#>W>?YNZ z7=I)K`(2&Cua%8MSWAOjnTsXRxm&Of+t+!?@<8WrriAzHC;RdbWSyAk{`Et=yUP7A zue|HEl&+{tpGq>j|4KMTNOrk$vB#0SEBO0o%l8B;gj{)I=me*a&wX;Ud>g`qBmm^f zsntFq$>rTH+joC##6peMpqIQN_u*GQ^ol6r`5U>fu1&d0XFbW+*tYY^S>>%?7x6Cl zQ#{4m4t{1i(#B`LyPtIK3(Z{tN{p?ao&3@Yz9wZA|I!*fO8A!^!{c#&#%J}jl3&`0 z_sx90LDXYT^&8Ftw#~MI+PQ?(H5^PO^&Hpv>Ix}GX|2B#6#UCJp|D_C&AW9U9$E@t zGWWzprFFt8<=Vh2SYW^MPUhQ-56nL?5#7rZ5AuY)uPCS|%Ij1<2u zmm^XV8>*GUtFm!K@!7I2p>I-FaHH*A=t5KDS#e|wtfptqG?0`W+-UE^Cr5%y?A*bk zWZFVIXrG#wNE<>-p_>4-1HFR!{OE3<%_Uh5!LJnu5_~r33l{sVjNpV_&kje(mrFYe zHA+uH=OYNLX`R5%?J;Q!ZGtuNG?lJ{Mfng;gx?vuVJov7v=PtI@`se=4rQ&)(;Qez z!S7VXj>bpmaz{p!u`r35pOsKx?@)wCg0hRJBWMNB!bYD!Wf&|f^T82ZD8f_ttzwML zid7CRP+6OneM;Z!IcaM0b%Li;{uR>|%bg5Pf8Tf{MJeZjTG=Jg3PFE;cqa}JxfyFc zY3|}E44p+QC!s5Rx4=o)5uugDf)`@6lWXa=bMkh}7@C%|)+Sp_R6Gm~T`SOCyiyrs zQ()D7ieR~wRt|XHmvb#vSORLzDP{w9*^~gxOU%em$|<*%Idc4tfQ9-UXo4MKuTI)z zt|Crz?N@}RF?yXVwP@cUIpuu$FR@L0K93>Fx)j`@3G~tiPixsE zn3asy<_n(IKmmfgPQ|{LS;@x?=GoXM#kj~rvTovF$nVAfi`WPrXXB5*fn{<3o+3qdwT^sP7v4>1IE@Fr*a&v?3PLN7IT9iha^O8#qPiMf&$o$$69XuUn`}HdrkUO4~S+sluNrevDsX{2DKx)Or`u;-r z@IiMz*Zam)E|`+f!IiPW9y?w-&#x=N?(36?`sQ`CJiy)#T{m6F$uFJ*yLoEGVL~7b zUd=tnD-}ZHLMOo^)R+=oh-{Aj2WF6dPiorKSf75JM)j!agwjYeLS@?4a^c8SE~5=j zb^1A;gRd)PDzlY!e6`<>=wR=BS=j54oFL-yQ4i2g{XwPhg*H(08xv#|n#RM7=jHw9854B&=;OFU<%2ze}Lt)V*CwIa5;j z4OPJDyg&Gay|>n%gzsR!o%H||`nsI?h-Oqw?GWL;f@DVrLd!#V5MKWSoGypn3U+`s zYfJ}LT2k$^?{!Jey*9~KPh4utDD*(z<4g)rk}v_`;H62qWRiR@JWKE>lOlY+IEpqf z7jqPB?VfNYx_HJ&b+)0us*JC)!%IcNLo*FTDj1}sF}L)s7{=;DH~0H zmN}~WVHhd(aTY;aL7&wTBcC_y%7kjak#z}_0)fm8ns$o0i9TfWIOcS7@;sL6+Zn?! z=GdBk_+7clL>>to$W)LDk1{*%f6iw9r#%js3L4=Jzr$dOUx4X{AQIaQ{SSC-HozYm z3F*87)i#Z1d>dBorUeadj>T&825MSqKP+xG!7;s!S<}Q^xD20k<77$6LtzYLNqdfC zapVXDk&+ffWT_8F9Zq_V<_&}*mf*#hr?c#_!-hfMuM5LexRs>fM==`c_8bqagf`4L z4l8y?UD&OR$3YMEL))=w)9j*DiQ!;?C(D&t7kGrEGd+#v z4keAd=4mKjKsyzQH74EEI34o%PfbhX;jDZsi%Zd$0Gqa&g`S;yfqpZ>$^Q=Fs5rt1 z<~S0cIPhl{%&LFrp;%K6;@h$W#ph&^b9o9oa6`*$(|^i>;LnyRqgDRJPxz=!;&GM_ zUs1o2x(Z4L&K~4<9)aIuhUw|XmMZ51y5eBk%Et8+aP4YTDiZ9$z*ZsX^HqirDmyIexAbjH&i>`scf2@A1+Y*be4v zJJbrJQQ-9`bab_$cTF%^%G7Ecy=nJ=z3PNI{d!e1T<*i~u^H6e{cZm|L;068wDD5< zoF!bDmEk@yG?!IPHS{Z(XriHi8lMRBkVtTDDbAt=9_F%wzv;H(qQ$<2`7min@tB7h zS;Lku)l1wB-T@yWu3>oiHd~o~HPx>bIw7y`4I+eYIOWN25SyuRCMffuj8hw}$%frP z4%pAb=aLfu`w|>-`L1|(RlIi(J5@s7$|z&iFm1?T08^maa%|b6z`jB2dc%ky{Xde z)#3$rm0ka-R>ke*LjqsZs*J~3UKi8P!Gxf=aluXP+P93o^QBaLynrt^E#|eYhCX3$ zQ2KDF?X?lC)!l+aUo7CiO+lSDyLMBF?Wh>E->;g>6e3*S6%W)p~`cl^2{L@(uJ+) zGV;#p?V-v~NM*{QtS{O=(c7!V4sV(41J3#K_)w)vDks&6y|mvwgw}5kR`p9t-T+%@ zQ7^I;P9aoznN&`{3Dsr2-CHQNnHVnodkmqDxl^ROss(RW>DRoT^2|fMJ}KWl$H&RHnvFr|?CT`(u=ksi-&-zU6#+P3 zzpSU|F7Man3*zp4KFH~9fo^ZHG}4?n$ z^ieX8N}(;yY)TW9MB6HGw4iRQ545>7YL3WQhT> z4>chn%U>mk`rjJ`(k=D}LEozbIe}j3mOLi59DY6W%tj$gzuYKfGvTY?z#oCe^iK4r zqNi5os*o1Sk}aa%i*FIAv{wdVg7)77@cF=5hkR#n*SIWsJdRB!E99hP`cpIgBQyPJ znf}pmel46og>l-BpIfwzI*md}i%iGlr|NptpGt`49vH$ovH(e%b5Z|jrsR7S|7hw@qyCZ9pGy5H z)Q@msY)wg@_i_2IY99|h`)J7OQ0`FtD3o+7epF15itbhNL9=W6Bi`Uu8x=d8#JjOh#R5qP9be=0Y#kVQh9PEhl4aL@ybD1JEA#5F<0DmirCJ<7o)|x2{pa4T z^3RY|(AqJc*RJx~90BVX^)KttUBif9z({NdJb*=755Z;)_{t6gdr(>l0Zo;ip~`L| zLwR>GSACV@OG0kGr2RoILLW_Pv`;fZXJv;o#cQA$GH$oSNQzzN3o}o68P`OQYDNrJ z@ntOddHs2o>ZUC$an8KhKwiM#qDet@~xrDYeXJVhh%@)%}(bpd94YC zm-p@{6H(t^QvL`=yCmNiq{Ge_6In_h#}mc4c6Isy0uH>udlLJpFO_zneysK)71pc0 zaHBj0tacFXaYIXDg>!FN**CmTAzOG$EL345a$>j7BABdCAi<6NjW|d0QKmq%k0sUa zP>R|y4pXj5&mwb3ukVJ$2AgB4>7kUhgff;Mv@tbDEhrH}fOv@%1R%4^wt z`BaR<{;GWz5O(~~Zeq$VR*_>#9~-Ugg>KNMaoT9k`?UNBV*w}4#j)4|nvFDRmSob* z#%Lx@`ezPgp@A)~fr~r{`GrJ4gvE|jg8Kko8BALr)6xgMTcvLA6WINzL97_{ranXL zHAX)Rva^b9qBx-crre@kig{O*IlYA#w$RW%9YE7I!@EJgJ?cwE?CRs^%TrB4RWnw! zSJ^ch!$JNZOo)iAXE5+!wa(s@;A0dX67bgh6kDS2ILzW~fD z;#}P)e96^MdYODR0BglVz`$~c&klwvJDfXvu;PR_5eDKeiFDcUrD)}YrpTwn$tv3* z;9gk0?v_v24oYNF%aIl5v396x;_H&3Y@&K{v8!=EUmP zKhr;EptV*8_+Km;_Z%`#NHNmU0e)4)f-ELB4o27t_|hC)suEBOYSEE4wHzj?HLdab zPh!o_E&uu?6CPDaJR!Pb0MNQiP0a45lb8HL*W|1J#$j*E{R7n z!0*7714s;tt9E3;>~{Gw-q6E@8#;d0IX?RovJ$r;JG3X?hWzzRz2iXurb^dAsr~`| z3OyOmcY>C0zqkyEgk_LepyVP4xDykzE&&xn<&%(bDWRs#(=6N6rYmgsZ)cxTlRm|p zxmRO!4S&cW>~=;v*i^$Cqw9FusMN)?mqdD6AB5|vUnM^%crGz4@jVy5kB886(bBX6Kh10p4K!j# z(j%s>_l^r#7U)-n2N3-Bfapw|Sl0P0%Q{zGV&4G%Z`?jc1 z!F8;_KyBb)qgYR906w@=Dftr(^uYmC`mp`U%1I?M<4jH(E)cdV4cObvAN0)pe$UMR z>Y0fO4LX(6%DdWB0?|xUT9l(R&dfLl=yOUFgVtM=W+gh~*bD=0CzM{ZtpO=IgcT)! zs{VP5IsUj@Q*{Su^lb=$1wlGw_Xec%x`F$Jfmk)}77Q5TK$QUEwWGFf60boZL!02u zJs<>iI%Q->DsGi+P!c!*M!;zxq!rM+;yL2}$4 z(oYPboK(1Un5Q2qC9SMrQ4+(p#+2Hg`(AU;?C*oYW3aK3SoJT#;u715s`<{8P2?r^1U@imC?%s217cZyKCR_zGbTNfc44WV=$c-7&+}uF}2l*XC`#s4WFyu*U#5nXzQooz1 zFB*piNd0+&;#1Ui8A<)9?T7qtEZQEX6wC{7J4yPCa9!(x4Xn~%#?LVJ7&5Q)Okh3{ zURj28rCMenTn!=ev&FF>t=;HGLQ)#(t}f=>)%L7zD94$`f(7~~>C2V&P`iU6t>-qu zXE8IB^$vv#?9^xb}7n$S2uWOo%Y+L{2lRGv{&Y0ucR9d=yNABGl zon&+Aru7?H)7=}V{<~&*`=+O#GB0_!7Uqji0`PxD@-NpvT+$Ag3AbL_4 z**PS&?Y+ONeO{_ZYEF0ydqLhToH4_{&_US zb=28@&?L=vKUk6G&vkE;9(J#kT<%Au$$FaGDSgA8BHimwsu0}{|J}-1*4phvZhJ+N z;)zpnZ(N^ji29o~N2Cc#xt$)R-RcaZrb!;GHuO{_St*aZPN++boF*fgcCB1h-ppgO zSlDsP*A_;L;z}}YEuf;gI`^&BJ>;G!yD%Td6?2;OgKVZ|%=8{BvC`zdhW-a7ogSM* z+Ybmty&Bg~Yd<0G74qYXSdiQ2%cEjqEcb?rQU1y9ii#BfH{7yxk6V()YfFiHi{9&= zTH)|7aj%h{cCXMi_eA|uR}*&T&kj;w6nEh@%ehlfx6(aP zT7hF*q?K`lr?yV}CZ~O$)8fPc0VC4WjCj`-PfTqXpdofrdkt-4T%WB^!;H#YG2bwx zVT|QyFBdlES_1>$lZQ2OL{HMDaasdu+%6jO=toCM7LccF0E30+GPb_+ak^O4g(vj) z*&;5Q9q+oW<8ZTM62_%oQTrWvLO*Bt?ev;b-lvpBX`i}#;0I0H1nrdp>~(M}omkla zXj=$A$KMo`l_FaPxR{sTadXldwgD_}*_%RQp1^Eg!r5`MHdJCR`7E1R`k~%&+kA|M zzmEN&sp`jUHnvxjcEd3f=$9DI@LEx0*tB~SEe5GE=C(}@GdE=cYg~vupwP5g4TWO2>HcvfKdg=gATxVTJa5X#vetv_} z7%ju?13%H5D48l?)k<01yoO8JV30W;p2?iU^dvnKa0~JTWrdgxA=0MuVs58AVldk( z6!NM~tZ9;jM#F&AX`Cpk!}!t#3(a-x=t>n2OeBqyh}vs`nDO+fPaEnltTYU1QxlN| z?Om?Xj(b0gl&JZ(;JacY5fizoW-frb$5A(d<*?KYgI=Sd102D*PPUo%y(lT{=_6!e z;}d9i)5_ZQa~&-tgt$jf;@k z&oYW9TGO=cj*`ZeDER{`0sCs1Ts}vtY=L*K_j6KmVFv?tvVx=dwx5>d@4R)$x zGHlX6Hh&e(Ggx!QAJb}x_Cs>;t-&tySeJ}{?DA)#A3GQtY&3~ADr$TW!+c=D+5-op z{k)v-I+0kq5+t$Q=4}tqZmzB4V@n#T|26g!VuO1560mYMK8>f*`zPpaeOy0Uz_oZZ z&QLskj0MzYo2$v>qGezsvNK~D7s`9rH!}O(-p)Mhb6ll;XIq|i87Fa})Mbr5)`J{T zosLpz_1bSai~Z{>Hax$zasmMl(@?}~4M<55uPqJ3j&dkoyE@Ln*fAJ2WDAo7>9~VL zN;R7#L!`XIwcc^P9P_et*5T17X)C?1U%`c7-B@An$ttTnD)(^ZNM*YSNsw(r(e@Ns z%suS0;fPm(e*@22uX4j(Oe&`xFjH2xDfXg>I)aFUn#T))>(CRbrRdheb|TW#Kkdb7E=95 zpyH{T6LMG0k!@;Y5>cOW=pXCLgHc{uhLNSks8cb9IwFaBBAAADyn;)mcp}-JKI*wK zx`X!7GufUS^ca$7Xpd^(#HBGqbE}&D7X4~*o$fJQP5SrsZ?FZ^9wsfyVi@75+RD0J z9O{-`9=*FLrXNeeP)iEN?(vP|&*^b_sdXw&PZ;@X$%U$|g`e=8y{I9|4IFWx3 z70i*q5kapx1Qiy*PvA&_R%wJiF(ij`+Vg|SZ^X6LMvWm4+cE3+JmF;l?dVbcM<%Z* zeg_TLw&CbwIhT@FSk(h|EcIKirbvi~tR3I%5yvMsvEQB&CS*(7`5q#H93+;^4 zH<}!zRDqKmkoa=};*g`caYtLJ&zy{dc}F13wXlv!g1ivD!At}$?% zV{=9H^IuzJVu`;WU<;CMuCugLD>G=Py2D_LmbzO2k4pm2+6r8u(z>x&YK{SZKSw+0 zb@gd%On-k!bp^Xb8b+7L^Di5f`4)jpVoaHDB^7xsfMw90o>-ps8P1=t%qV9-CmZ_A z9RSlvtFil2>?&_$E%lSP$waV?mFVx#8P9Oaj1`=I%+Gd!k@4 zueAULodnVjWe}#Ad^&B0X2@;!^GNt_F!Wb`gSKa($#kwPx|j)wcCF`kBaigFwu&3Y zmBq3a^XP%Dg=m@QbyPgV`r*_IMI?sgWH|(?O~gg&C%oU1b2jjKoHZ+pF~Mg~VKVd4 zz$%VA|u_V=zOcWX==I z0^vMS&1GPuG<_dKkLS3P)Zd4xf>lr~1xOh4d1ZQCx>9{3C*pwwc{mtNk?#s_L-pjL zYE;&Vo}5ec;ruZ~o`{WM1!<54;NFjLM)H4Yi@;-QJ4+wc<{7oNIff^iSKcT8ixP=WwH`t8OzP+?NnCSU!hoHyNP`m#{6>%lTQ* zlJdN~}=Nz=R$eQgm5QF7itC(Bv-;+oaI^$$AdZCN|T>B@cNk;xC` zqya7$+>>ZR{7bD&duvLZ>@Nd ztlheWq&Ni9zuzk~96mTz42FgWE_P?qanEs?JIAf#gbx!X4eiQBls?ZX9qpGB|78Yd zZRCiYucY#1XH#}-UVFtbV3EdA!*?E4f6VP{QqHtrO#CMc2jd31ui=z4LTBc#bzDPJ zcIUn)k5AZnz9D>Q2dR6?c$>ubI(y!zmyH8hOLL|&3rnE0et>mYf5=I~V?D1u(DeFV z@_O;UoZ}NRf4hOptj&CuQ$BDD6-ye%JxH=6|4leWOmRB%vBwcRs`y7{%HIf7iTUz` z;BihLoB#XcMv zJo=YEilrqBcYe@t{y^67MlS#O1f_HQGUa+~4;I+3yq|q^-oAq46Hq;Q_cQkC`{o~?P|}DQI+uiw9nHADHAl8v}V=^%(R!0#1Q`Ypyro{X=G}M1ux{x-jJ5pc7vriDg-*k`(<&*t(PB$g%v#NR>T*8QCsaoMcF?I6!P* z$MQbQL>`SDbL1lfs_u_u9QbyM;O11K0y!HoT!=>td1CRzS$~QPo<%Kvshi@ zFrua#w_r7T4VK%8{@JY@R772h{-OS)DkTHv+wyrLALA^_J&HFTwh+c!LSukaGP?NQ z6BF88C%`=dIE?M3Tm28V%3lucVQsLwkH{O5Rrfk3xtU^&sG`ZRf%lz(4bknv>L|m6 zM+GDZOK?a){RWQmSUz|ya5O;Mk_)hJLGs|2mzY|`F!v9`uQm+;Cb0``{Hu?oph11PL$Q^(no0mL4Zk%Q;#DgF$XtmNUT_OL zq}9XUR-USqC4*rUk3${D_>*xb6a}=YQ{tJ0Wmhv9{(!EtIZHtMr2n+>ZX=^S+h9BcM_+l&W77@t?pSudkwut?+^F0(h(x=?r{C+6iEZDRE)cqzG-nc19l%h~CsVh8z$I)Gxm@ z%PjRPlJz}}7NQ=G0TTnTg>E@#kr+asB8*JH<2C?1IBj=!jtBX0Z8y?ZK*!wHidBG* z=jma^>j>Vo`h@*f0z33cWszN3Y0Yi-FQAa)X^IVnPtis8tX5-gGQ*lnflA(|aA%6j zcAgHWRXlU^7K&5`I;AoX3j_xVXaG6FX2o?&DEW}GG96aY?%XyLo~;sdd*pv-!e)_! zwbM@;Po*lAJcfoXOshowt)ZRRag*Dz);4n&hfOa{B?(^PBO)h#36E-dJa8dSd$^8> zjgz+sqiA~GN~yKr%K3r?eqUb0W?;E*L9wAEaNiCaS2zZ06y=yk3_(7sJzFjW2q+eG$dbWv8N z(#`@*%M9YV$uRjm(O!QaZO-lV!Icut>TJJ|+vzWXGqy*u?Pk#T8H0%&+oU)bdQ#TS zG1%Y_;qM|gg3pJE&)@LTwM6;|ta$H;U??rO#b2x4V;lgO`cJcOy57QeJvS9ln63a- zL0*wo^4b`K-3!=0D>#>di!lr%+u(D@px0Qd6(Y>gd^Cn-UQ z>?gv0;N+rJFKU}En_?fdJ8Uxyc9$r#CYmsreyDWU3J%Pi4xzScgks}5Ej-Dy zuHj@+u`P$ahKsk52|U^yY!+~oxy?S{X6OU;T_d-x;$Bd0RIqtm-lz&~*A<@C(q?wz zqhNKPf|~>_vzlSNn+8S6u5N}=lY+C>aBqLcz1A4L|vgZVaY{|`pP^6aKjl_GXw z0(!Fn?MAJrKHCd4;FJV#818jaA>jGo<%S^oasiwxp?$NN!h;-Mmx)!u*gx@~9K9!J7r?f!|;iOuR>63HQ}|lbMgJ*v4wm6kDle7FojG zWdm>R79|@h3W$CHAHwT@f{9~?WxtRGr3L}g{JKKhZl~nfZI!Hz#Hm&Yr~xT(Swu)L zP^T$yX;MC!BtHaH0wtAA;X3Xfk-#w{O;e{DRXnry)tQF=M`diS4K^X%E*gNBD5U|S zE9nf<2nPD_-rurBVX}SeRZt1jrr*IJ$`(`3~HG{7xC>U+K=KelX2Wb z{`io3Nqj}W!SoA5YHb|sy=p4(hGhxRBEkHX~J3a8-6|E_33!mT0S$@~+jOM@Vxf}pfUxU+ zA#AFxq3Ej83Y$@A`Jy+6R1Sft1-?PH6GM4i<#-=_0@kgEwMSkuGf)L--*N)-;qcp9&5-O-;a_%aaXkuAZHRquY(%T+|^xjHYWU)>Q; z6{JxRE6lvIt5rse$m`*qXVf}FzcJptj|@d5hBr?aqt_l+^LlFAVPzdm6)=Okqkqib z&rtc*3}Xao+@te3pM{Nmd~hy{nr7%%Fwq1<|2#1f<_QI6y$+x%0ER3qc~7@4E}K_4 zw-~|>Q3}(J0mcBlah<@CjR7{QDYioHPuII2Hy!0)f(_Gp^eeP2!7j(fL;AbQEVMnH)0B+{?Vq=Q!kzj% z0GEM@#_i$t*LI!c^WWfQE~MTyuxlbXgstS&Jv_FLyS-}^<)r+Yb{W{ zMjpEQCeqXGpFoR^2Nkl0D>F{=-1~v|3urnEm^0O=pE$@|BZ(UQ^C8L4BIE#f=hcq* z?tqlOm#00h6R<>ZaR+Z~CcCaTahDUuNeeFV$lN|iLV!zp9U?w~VAQ)f{f2fkwQ-UV zYRnYC&t;1PnQwA^?=*0M)HgXMC&9dS09n)P$+~aWQSul|t<_DB^D^>XW6C7kA`fm7u zUp2I;Hx>XmHrE~A2a~^or#5wbDiqQJfQ?2{2t9Qq(j1UjpoLu+5W5fjVh`bmaWlgt zwaqz~)E{4i^TsFQzLbzOtdg|Z0r z$Db2ieWPlZ1?g2%W@Lh&b*50?@d(KCTeRctq4aYnmExU z9Ze7iV3-kSz_guy6}g1dw6+z5`)p7{y#TLxQH(jT!=5vMpPmm}@pAzf)YD1JqKF-v z&k$DB7jy3Wq~W#A^`6e02rY^lWikDe`tnXitS`HPm=t8gQ4Ts6DY4Err`FR=%cBV5 zOoRigq|S2|=weJz6czWoD`Rz@GrQBIyX!m`GHY%6FSJ^2Hy;%Fot?_qh9+fITt5eh z0nfpOOls4S!!J`VE%Yvs%@LZu~eOaD!5ziUBG`hb0rC{|XQvE>PD08RS z<{YEwl72Z*ea$I<60AN)s?Q#9BI?|UDx>I}-W9C=j8vx{$hlSanch|B>2~|%LX24; zj}2C?uN{lTO4wF9BAqJ~2ljg9^AUp8 zU8FkWpVW2fmx9$-zP_|8dKcR#_-|6&+)MA*_X3idGR%zeF$3{Ti+8kBeT1Xo#FL|z zK>h>Ly$IChR7`c}R%Rc7F!EY^FGC=RIhQ8q5U$ySBhWvh9|SGDlCR8-Q!j*FRjw!O z#nY&Odx|`dB?$?*ACMk2M|uP!O*cof|NTgI{iEJh)<7|DM>yrSAptF`CLm0RsJnZk zZ=8F+ugpD9emYRa&5&mVs`%-0j`m$Zc1)>v)>rYBsi@j0m(n=KO4CQWC11MxdHKFa z3px2tvoJurwJ(YPo9^#QUW6g9dC-sr%Tjfx`#Jf7XGbxQDB2l+#JyM=;VzQf=*d8_ z!0WC0Ftb53)kussAb1BIvJs^#247Ma&$+|;MfhP7I%}xaUAfn` zf7PWryHm3AFQ9Qm8bG)^pNB>)kNFtto_yM(Ru{?jDbVm_mTMoau z^7IxlN59-6x)}3SaX255#`PZ5r=g}^=4#=m&oP~%$a^r9wkH-BwLip6&l+z>fP4Gs z9C<9RO|~~V+nbv0P0RL<$o8gZdoya9ss+xQdMk`)1)##}ia>%icw)8Hu?A1P-V@DK z?o{_#gJB*32)>O^^1Nx=@2dAl=LK&XQb!$-4nkQ>#uTUNdf1CshgxQAkia8KVBek# zdo!4j?^C=P)SFJdBd9lxdQ+(v=Hy*F%cF?7-&U8}yesVK zb`bYE-*R_}Z<%|pZ>f8Zv;=ySJ&@}{J+l>)Ve`Mq=`I~3@CipQv%FcXvygYfh-Eqb zEo9Q9J#`+$;!%aSgTHcbl79(rkk*C%ympP(9u={Uk^is`-8nQco?XPS9h?C)(rPd^ zD?kn*eV7W;QZQ(m?0|oo$PnH);7yj6DTT>!>6Ujr&V}gH$t||YX44t2rfko3&(h9tHWj&@>M!ir=ZFI@QMvhGJ6k?(_Zc7nN!yV)+} zJA>8Ni9Eakq1UENb~}H=YpqbcynCz9gNKy!E1yDdr&M^0bl4d?L>6Gh^*pS2y3{E# zpll?7Og;UyFpYM@gRS<#huNpSah*s+7Vi7VULJ1*v}v(jojxQS|$IW2>8 ze@A|b9RVlJ!nN24nvF1NmTc0@%4jA{`uh{eK>=G_GZ%Us{0oi%3wyfL2p(R#WgOb- zxHfLUy-A9=pT+J+4q(N26%aK%eMUwEWQTh`KFkx-U#k?fOL6xSpTk{>ZgUOo^B9UY z8}7C8-QmJC_%;gp0{KCcP<8Amx@v72jpHK!2PWi+);r+;t=lX88tO{WX2l_r%(nHO zE6U=yx}Jw5LB(R$v(9s+))t)gpg^Q6wIK$@rwWs}oJ-*Eb7u9`S}$jSl3C!q#L=uW zeR&Di0_{uX=_ZRHe$NPx(6(A|6I{Uft?K7_h4$)yg^x%34Er6bpM6t5XYQd(KWg~9 zK?p=~1dy-ndI@b+if*XCtp=Yj8Ute#0bpk`_e$Ly4$g>7b{MB zx4aKJGDo^>6sBsG118I-CdevV!Q|SQ0c=Vs!j#M*gBzkgDd_)#^<}kDbSWHw1cD&< z4}i76b+lFc)j(p`SR-hc#W5)?Xm_C@leHrUc5UIp)-4>1FX0*7KJNI0oJ%3o`Y|%D z^9Kylm`2onS6Rl$xWVHA%a1R>6uFge)3#q=PvnN)Zii?)Mw$z&_6c=@02K+-R$%_q zCiy-<@2MY|Y3U)nn+(%)U$?r^_HSP>tvUEE0IxfZ5Aiaf=?hqAmtnVdsvq(CxzdIC z7P1XwG(7cm=$_Xh}wDxNcgNTv+02m2kk zzD-p&bq^kBl!tmd9|tzjuaTdX{B&58#P?qK2|i-)MWJ;Ge%jf=G}Dl2>I{EywR^N* zn4@14AA@z$3)>PKTF9*I5gcS$*(WTI#=n^=1TJzppVLle=4!7AgNOA*se*^e{#d<# ze~YJ)P(MJDLn;3=^+%zh6+AkX?pNBB(6qC8>3B-tsWfA6(|^`G{U^QC|E+gAVjrkf zPAea14-%N`=}L!kc-q-%N6`A5(#l%v9ZI_ro_1uKfwJRDpIO$dR7YXVmH)Z!SJOEb zpzy?N?*Waz4;PUDD+=Q3CXDbe4MhI@@j5)ki5Z?)Egss*U5dwU5)aSFhB(gL18f9` zLxuyq>Q31TyBHyA!|yPF`9^@Qh>{sur)cyL^w$UUCi|SH{p=H_eZWQ_IjxTC#|MX; zRJvg3OwTLjoh%ek9>=yuRak%eqxRmJKfwWy!p6$ub-%$GkM&@+r?7#Je>~(+89m3W zWf2Y-oBHd-8J~fw?d=SnA#?ODoKH~a6~ufd^Nb&d7|V3-2R6jx^+mCrowOf7(#5Xm z80IA&#$v;tMc}rV@YZ1HwrD@)AQsffXK1DcisGF9RWO{{&cP7aAfDUfdj|4|o@{7B z3@uYh4tx@){z&dI|5AjBvW_9VcTYo8rZN`W4)!Aq#HNu8GT}XkD#i!Vz39%fcym3K zMMlune2*|Wx5Mvb{Se&HgZ)&)D8yPpPsiAYWOqhD|r-%+Ws^w@B#C*fBYk)f=rn*_16E^t(I0# zmDc;DDVtZnKpgk2V}A|@S$^NTmH2hs=X0zi%UKRt&+1LjuV3eswmM%}UEy2re6qB- z=us!ylj1ec;bE6^{dZn4-*-94rp>FLT~8)E%`e(adBEo&tJiJbv;~EavF}i!ylEYZ z7R@UhDv&UVZ@uJ0=}_`f2XQ(d7#!svACIvWt$zObt!r0H>zy0W-RYAm z({tZ?e)E>CFMPYgC&~WG@4Wck+usP7>EwSX`CkhF4sQF$liTxnT6|lbK!n?JJpO-X z|DXOdNstaou>A{PqrpGh@f$oz;<#Z}(PFXif{|*QWVLe!A!!&PGC4AN@6^3h(a-rF W%tzw9GM@dmnI&&KkxsuCCI1(-NK*R% diff --git a/src/lib/00jsmn00/example/MAPTEST2.EXE b/src/lib/00jsmn00/example/MAPTEST2.EXE deleted file mode 100755 index df045463757b24b4e9c512b18318774448d3465b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15196 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 diff --git a/src/lib/00jsmn00/example/SIMPLE.EXE b/src/lib/00jsmn00/example/SIMPLE.EXE deleted file mode 100755 index 77ee0f401cc91d2204f96d0a499d38233e5ef1d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10506 zcmdsddwf*Yz3U%-)mQhA^Bd zZB}-YqqfItZB?W_hvV^jz-n)R9tauD1T316Qw`CA0_xuE6a&E|B$L_ayY>X|(R=Uz zck;>Xwb$dfey{agzsEeh%EjGAL?V!9h-tpW6DJ`r+6i%!_-BfPkc0St8U1_$A%8Ij zp2BBvl#skSJJBxLRyJzDtkN5zb zwiT`n=hcZsd(*Z83oBFD#6@Dni@`#SxQO-}j4WS9KMQs6w2_`wMJmNqF)I>ykcPR| zD#y?2<=LLerOAOT&kp$qp0#qOXQn*GNcOnpyFEkY@t%ZI(c=o-sg7c^J#M`1EKN|Q z7!~)&j47sQ9N2wa9;+5Q=?U7Y%`kV@D}%$Pk)$T7g|W<2+DbE{-b|z&Yu6Pv@E{h5 zaoe3n@c%3Oxm6zAlKWXH^GPhbXPL2x#arvztbl-h!`vjU&SyB=U~ zQlK^dR>a;O3%mo=V)_u%Of*G(l8LtgeIS-sH=Jm8@rF$DmgLj-B2tVHwJ@qWvZY>s zu3FfqRz!unEaA+ld(yfq(?kIl{55G&a+yc2w8dcjhtsF#@2eq$!j3C zWqJWOD76jxL!ACkoE{@47}zZ@Wz4&xN>QzLfQFf*_M7^qm@(U!h8@-UVvcFbLzv3Z z9xh_ew+9D)stl>)h>@UA z;};wdcGs6rrQz1|Tvuo(Z^~mrJ4I6&Idg<;1A96K04y?}sr7Ah>2lE!78vg_B+gq4 zZ~xlDVb;O~z@{{vZIoG}AVdRZ;(RSWuPueNXCXZ1S-{rLgVI!H_3RZ>hp9kovMIc`Nh z4M$)yB0ipdfk&%xq+uo^95WNg=m)et=n<5$>KZW}=e}9{gv)AEh7Z0r30_|NjN4r= z3w5RmLs2(c)T+7sN0wOjU{{ArtdY94r_H(`$=mY`r@g|dsn2jVwcY(R%trDDo}*H9 zcm0lA^6GYzJnc9adRv5m^(-!jBjt|Zk?wv@PON(gWB&_dym9UbN3sLa9Z!G*J*{6b zP~0_uKD?jM6WUy}W+_Jt*s*n^QwWi0o*Lq#>8w%r7NBed6g&MuKSkK0Fk3W~*^>$1 zoqinC?`PB1Kumvy=zFatZEQ(9+adM4OFkyXy9}<*CcVWb<<)fp%w+=HgNI}Nys|3u zR2+3RBu29uc1)t3TyyIuwq#QCB4`OSpguki!cNDdt{UKs z>g!Jrp;2e!^0cSe6iL4j%dEF7;Hs6Y!_}$3;=|B92j zaMG%}yX}WLqJ7Ti%SG#ds4g&_Tp{sE^A)ZvT^h zxp?bTcV0=Uyt!nX-#xEn`;(=cH*S*M_spB<&VTaJB7gB@_k-KkPjzQz-GBd-dowcb zojPgKBzNwzMT^`;e*fl;+qM>OlieGN<>K{n@dlDxBD;&Xl_(oGxwjT?Eh&AHtS{L{ zhPnjOe{dyVd+czb7zz&yp6^VfqhI9Gsz*P^2_MIMYFpIv=zW<}TU##1|I&i9e#;Rh zM@`~Mb$xnMc1!6HaJ23gNA(HqpSkLKwY}wh{7(@M$4o4LmQ&k>wzNIZakcg7ZEr3- zIkx(2ZRF@KQuVO;7K!e6cfDStn1_H%Lz+4ZD9~ATz{7rslZ6Mmem|-H)&1nv#cyVu z9GmvaZ@9F|v==z_eUDJOqIUFTlHUDagj2<#Zg&o79KNfZzyChv?qIo?ql^umzFk^_^G#m2;=H^AxxpEEJC}6w=?{Pr6*G;XuPA2%Q-n#Z5y*ny%K#52==S*rJs24%{eE>V)$;yL7uSoio7~P4h0juMRu3tq8ySuD;)lTQjZ2GFH%E+C;Bt&oi4vU;}BhIzoGyH+`v~xuD+A}U-Y(hqGgZ+INF<4om*x)pnymi-hdmW-Y zG`PXhhgXgS7dg0t_ax9(+DZE~pFkTz6)_T@KszxiYELJ1d+lynIE0%@iY9pNwAnh# zE5n)f##c+!)I4ENt`M=G;fY)ORiF0IuvKB}l+kc#Hi4gFovYF2h%v_1e2_rHOpSbe znmPi8C}H<0px3c>b$E1|IR;ZSj=X!_QqyCjwfAF3y~5#p1sbbt+STtB{HeIB6k8~4 zH#%qfxYBNVrpm_|U+#)|1$jh`muITt)XL39kvAgM?OK&-TpeR!%&bowyv0jEuRN)h z#41~$F^9cu2W?mX!f)?Tc5{b?f;@WWBF=APuul%|Wz&*P;}SL+YZ_m~H^M&Q;H-~% zq6nGw;U#&0G3?6=9`w#%j5`E33D{GxJeYQ#>pfD>1(VKmBE$w>IQK3R))m4C)g=;b zS`vC5V6BNsGy)mlvuB||6`tB?xfq!*!UvwUP*BUo#`!LSN2oC=G9S*b@ke&rM{z)C z&w%kRjTjM&oiyA6&w{qMo;zC4O>ECRu8v+Pa4?;6x_Y0wj<51L4sm4P97WvclwGt< z>qvTlb{S{0`b&Fv_1k%WN9HL*gUu~uY^<{pV_#;yw%61r49jOm_!waHFHQ#>aYr6dS=*94|&8ns7^~ zqi}V2pC~&pFozh2@F2YLN9^b{+6K?+c6x^9MjPSdMx=IlGSbIQ_&SHhQX4JkgSTrr zx@&3{bDr9RXU6p^h$0Y9}@ZMHg!~Oy}B-DoZ07= z5vQC>qYnM2=Ds;{GG3m?TN+)?>zhqu%)X#}cChcjFxH#a+J}dTf4jcGtjUcH;?_;2 z?i%SSL^L#_O5KQHqzi)dxgcqRbWxBx1nCkj=$$B?>6Y4^^2nOPr$QAMNX4Y85f-H& zbDo)d!MGT#xa?Lw4ON^W6(1dP6AWU=%spdtgepEK6-kFOZuEU_bW};59>3xR%sI-a zP=!V+Ce%v3v_EYStj}7k85h*tC_}WM7e2B}3{_kt6;rY~x%$(P$L2+;N3sW)(*C0Uz#^31sAsesesPkjg2g^~OB}IHr zsJmyX@*ryx67)=xCtHy22c+p1BRF($Ixf#lgU^zcs$oZ8hb5SrUdeDfu)8Sjon%9@(Gb*`j=Jrk7K0 zvpR#cQ~!zt9`gJ|_Ib*b%MvEeF)kWOhTHSFa!%T{m=AJBd!XC1TpsSpRhsDs!Nme^ zG#NuYlG1?bf@mCOoxI!lW2jLuUX_ghz>#jGt=4e_sZ-=3p7F|1OyMNsOFWziZ_^bQ zT4Hb`KY;Mott58)cu_fvKHfO($xv*SzL7>V?Zjb*5wot=+DK-7Rx_lyG)B9mG#2+> zon!p{`UTA6P>1PPR#ICijwiyMv-(&{Xy{eax^>8E8mjK z)Rx0{mNLCj%rGuCikVFL$~nkKq%orlm;Led5$|xM0bYEh+FDc!ZobDT*?n_DcrS7h;5IA2FleFbZ*=dAfmkSmolbwQI z6s?tFHBw)idYkrFXDGtcV@#BvX8V$N-d+>vdoXm(lv}G(D2%kkY|P?h!-)8j3DMJ{ zgD{8Z!8@ue~&->dpksV{~4hErcM^(9dsE}q+~3;R5eD&woXJnZb!kj<&yrTU_< zq^hqEwqEu1s*Az1E5^f~68SXpHGlQ|SZ?vGkWYFxD38UL75$%==|^#k%X33EaS$#d zbbyOhd2f$Moi5_p;9u>@^RM#E_pkKKlULx5W+|8sj8{4$-b94C2RI|s00f>vh*^?^ zE7|Sk-MH>p#>RL9FUj(2RZ=wL0)~*C`kiO9@>~6frrv?|yndP2XNth%*6-k9xUU0# z9xFi(WPlr~2#U=*@RnH*=s|fU6f{|Jg(|v<0^@y^;Fzsay@?bVmX5hxm@Z9hbWE|P z&d97!m#%1 z5$Z51?qpObw}mRM5M@}c)R$SG#!lx;yxxS1m-m$TC8X*Wl|78rZrOW-b)bw15r+(N zq{mdLLz@~s%>3~VxOq}P^(NC!q=K~Gs4Dg9&tEG`f~cKDf7H|ySq{wO_dns;jxgbt zSg71ilp)<-L9|4lK!O|iYjKGzj#=GaSTTB+TF`+l55tpsydQ+orkdrpMxQv7^{nU* zmfxPI*cl=Z*eyg@CQAErAN3~cep8>!>zRDnWUK>yRbBy%9W_WzOx=mhiX!edWjn3t zg>BHMaC$1|`LXga69FgB!m-!{o(;EnmT2+J&UhwI__hQx(7}*v;KFmEzt9M%u+*7M zklOPo5L!`8A3fmNEO&c0g8EwrfHCc&eWuiFrd|ZwW3YEaq^R-xG67i%&kDcGlaFQd zP5p}~y0)60^~#+QZ!)}CFF!|_Y%!{eiK3&@q0<-+^1ow4p6ERTfmb{}`9)k;f<7w- zlVr`UkuIsrW7^MIjtm3K*~%*EQl%p_YpFowOO@dav+5Vig$Z271?cw~Yxv7bA7_G- z6QOx=(X5NXQMboc3%t))rdulFhPc6ab&XS-a}8R+^sW3i*89Fuv-B83a;eQCN=k}_Gb~0SHz|IBk`tGKksGw)c~mF3ju)x8BYy_ zDmq;|dVq1l+l9TjBQxZSrZ-718?aP9Db7~K4kg#`7ywafF1C!S1u>iu?Qxs&E8sV= znPQ1|02T;_JTL&&g4WR{{dWU#s(~YTw@_eKSkQ0BL}qJm9k?DJTA6*zAR(+x#*{4t zu`dgGiU!vEI47!(pp0*~0ag(*sFoK+()7ZS{qtI!h<=aAirjo>jlK?<)p%&TQ zR&0$@0`u}=cwz);{WW5@&&er;?0#f-ItzjjMPmy)FTaQQ3wc*?<8AoCi+Gd;4qNNq zqVLi^Y^II3(FV53P#j>k1^3~^7NZU4pc@gMwXufi;WIWh*TyFP8WW9Y5Gm5InfeKT z$Ru^iMDt!|FJ|gFp0?@vUoN2yH{P4|d0j1jGvac<5wq4@`IqHnhd1P+WcXunEAV`&q;48n!NZG_@8XtTua~F}Kb^=dvhQ_NiF7U>? znf2_sSL2O(b&-n#RMxf9VaUOC0m!o=Z2*B|vy(Kw%%;ks@d8ED_zGh(bD5sS2AnRN zwAuJA3n6c$Hwr8xCI2wfWMWm;LV%c_+S3L-f1bh!#>EI4v|kEVzQV~Ecg>LyfjFG< zEpY*ABb;a;eN1q89Zr~=PBV3hKzrj(+3N67xUZMB0|SVWe+&OXd(uRCrAWFT2z+Mi&A~1m{p7t(i6Q;V?#yAO;_WS$AgdQQGb z66k3B-?t9VB_yLJEfQeXoD@%{KG2OO)<%wJtAn-}=OOF{ZM+lS

    5|yB*DlV<=(m zM5~=-wF%n5CE`e6uWZp3hjHBUfE;d_UmaF`PVGEn@l^z`?rxvMp5R=)CB%UKSY)kzT&h~J@-)uZLRvn7OoOeUQB{$ zFXUE52*qjC9{dCv@~m-(J^Pvar> zoEMr_;H$+VfrhP6c-Z73&&Yr<&$ui;fatY{HZx8vVJVG;ET!>Y2YbilmzE2`^IXOk zv~4x=Q2Knwp#Ch#S5X=XL~8;E8>Koz18|~UYT=(~pbs9L+6U_IQJdB9w2!h=P|Ryn z8$jChU-nFYx@Y>Yd#2MAHmIIf-`6J-h&4rRRgX>kXxeeiKBG3V*+#3{qDH12pJt-( zq}prsHK-MRhzkn;RQ0njtrzCf%>R0B~{idKr? zU56?;E#5VVWRM8nq5(0a%cUUqQGT0ZM~WL}#SFMi#00~^R-8U_;)k^FDEyoE={5E^ zOZ(X)LVMvmgX6R!W}F-ZIU)a%>mog?7PiqsgzzztHKNr1%r9Dc?t2>Y9Rb1$V^uFf z#G@o&`ymKu{jQ9|1@sKd+=#nRLBub{McfWotfwv1PUaaMH;-~nMYOV+!XCUi_vF|a z)HZ`I<6BO(oWRP&_;p}W9@dKN&l^{-+W=OsgK+1lecCmc2*9Abg|TOs?-DB4q_A&9G`HLRYtq zfyIU4-b9;VFSD9T*TH6zg|6BC!a+O9I##w&UFKBR+Ot{$k5FW%lT`;gAEwKk z6PwKWiOj&Rq-VJIDAJyyx|65FXgM-jEPq51%0!UA3l8I$e}%f46l1%B4TIRKYg3S7 z+n3cG;Njw~6SKOMm)Ui*%*EyzAD9m(sbxGst2;&H0F5`UQ^JC}7U0@!QE?2WT+qu% z=n~&8a`IQG5EsUR=Mc+st=$ez*(QvjDcNi73bKg+#bYPBR-|Y^ZLtNg?o&nKHd+zQ z`asDMY|sg6%U;eF>_pLtg`ei)#OyM=-+f zRM4Lw*=2m$OCS@k&tZwWE{V3y!L}??nxB|?3eI3ppqDmewfQF?lAPGqaxSYakcZ-O zm+IKZ9FHHGxEy821Vp?G6~ltTfZvP%^NeL@N$v3MXeZ1}gQt zOk}c+|FG7k7>$hT`AMk7(ly{J*elX9UcbX+*1b_3eSyz3VF!i)vID;%0MN^9)*9x& z=3p|;rKhGmSsfK>OpSQ^kmU1TVPDsQ)!?RJ^z$89m_bK^97Zm4V|=0gHlES)W-az{mk#daSp#Zi`j$B?%k($ z@=6kI!tXDB%;O5OQr03lVw&3Xy~Y>Fzk|?a>Wmd4?DO=j#xkdx!d=N~D4R#SRGB$M ziC^oSinQ;yx*m!9P0DS|0m4`URBJW!ak`8=)M{rog@x2f=I&lnbdp~)D!QuCY0jD?V7vd5v&4{96JP&JZ=r&TTI z(yAO8-5D3O>E^t7#^E6{(IDb}f)^9kWG(Fg#r-*MP8IEB8xYCq2Zmn!(5m_hy zoVKky?(qft@!Ov_Y{qB7zFPyI7#~;mqMq<6^SfS!^NMO$wp|oTMRrcr(Nl$%PdJ=a zoLQ@zxnqN!6h0Pw7pA0|%v?9LH}&FWBYA3d81Qg1X=;YBDlFjeGubv|+h68Nv+-Lf zRswD{U~PoMB)PgRUgRB8-JEWJjze{xm2O$#_Rf0T*+cd`%hA+lImQ946+d^eoJCY@ zF8LjKT6b)P!KdH65xM`zhmfC+Q~brH<7T?YJzlbD+lG?jag*KSiZ*QBybXPi6>VV! z?{UiJ4S37U$jF%Na=XWEEG<#C`_Z%7TI^>_$~F}jZ?V=Y8#b4)Mqu-X;*xP|cMz#) z^OoWbZn?z0y{Ob*>|U6^ICrM|dmCJ2@uQEUOztlJ@ph|Pj^Yh)AyeGT@W70zll(4X z;ex&g7*5wafe@Sap!a%593}MmEZkiZbkfKq=(=DpLV z|6s;__h%J7x_(3PV;eVZe*8yUwr(rg{zR!?Rsv-|e)1=TjJxTqB;IWP-&@=_hI#V! zcb*`Uz3~xukTNB1VF>$P!eF{jp#49pN-r1y diff --git a/src/lib/00jsmn00/example/jsondump b/src/lib/00jsmn00/example/jsondump deleted file mode 100755 index bf6541f53b4a5b65daf2baaf0c963ccae1322480..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10160 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 -#include -#include -#include -#include "../jsmn.c" - -/* - * An example of reading JSON from stdin and printing its content to stdout. - * The output looks like YAML, but I'm not sure if it's really compatible. - */ -static int jsoneq(const char *json, jsmntok_t *tok, const char *s) { - if (tok->type == JSMN_STRING && (int) strlen(s) == tok->end - tok->start && - strncmp(json + tok->start, s, tok->end - tok->start) == 0) { - return 0; - } - return -1; -} - -static int dump(const char *js, jsmntok_t *t, size_t count, int indent) { - int i, j, k; - if (count == 0) { - return 0; - } - if (t->type == JSMN_PRIMITIVE) { - printf("%.*s", t->end - t->start, js+t->start); - return 1; - } else if (t->type == JSMN_STRING) { - if(jsoneq(js, t, "data") == 0 ) - { -// printf("[[[[%d|%d]]]]\n", &(t+1)->size, (t+1)->size); - printf("\n%.*s[xx[%d|%d]xx]\n", (t+1)->end - (t+1)->start, js+(t+1)->start, &(t+1)->size, (t+1)->size); - } - printf("'%.*s'", t->end - t->start, js+t->start); - return 1; - } else if (t->type == JSMN_OBJECT) { - printf("\n"); - j = 0; - for (i = 0; i < t->size; i++) { - for (k = 0; k < indent; k++) printf(" "); - j += dump(js, t+1+j, count-j, indent+1); - printf(": "); - j += dump(js, t+1+j, count-j, indent+1); - printf("\n"); - } - return j+1; - } else if (t->type == JSMN_ARRAY) { - j = 0; - printf("\n"); - for (i = 0; i < t->size; i++) { - for (k = 0; k < indent-1; k++) printf(" "); - printf(" - "); - j += dump(js, t+1+j, count-j, indent+1); - printf("\n"); - } - return j+1; - } - return 0; -} - -int main() { - int r; - int eof_expected = 0; - char *js = NULL; - size_t jslen = 0; - char buf[BUFSIZ]; - - jsmn_parser p; - jsmntok_t *tok; - size_t tokcount = 2; - - /* Prepare parser */ - jsmn_init(&p); - - /* Allocate some tokens as a start */ - tok = malloc(sizeof(*tok) * tokcount); - if (tok == NULL) { - fprintf(stderr, "malloc(): errno=%d\n", errno); - return 3; - } - - for (;;) { - /* Read another chunk */ - r = fread(buf, 1, sizeof(buf), stdin); - if (r < 0) { - fprintf(stderr, "fread(): %d, errno=%d\n", r, errno); - return 1; - } - if (r == 0) { - if (eof_expected != 0) { - return 0; - } else { - fprintf(stderr, "fread(): unexpected EOF\n"); - return 2; - } - } - - js = realloc(js, jslen + r + 1); - if (js == NULL) { - fprintf(stderr, "realloc(): errno=%d\n", errno); - return 3; - } - strncpy(js + jslen, buf, r); - jslen = jslen + r; - -again: - r = jsmn_parse(&p, js, jslen, tok, tokcount); - if (r < 0) { - if (r == JSMN_ERROR_NOMEM) { - tokcount = tokcount * 2; - tok = realloc(tok, sizeof(*tok) * tokcount); - if (tok == NULL) { - fprintf(stderr, "realloc(): errno=%d\n", errno); - return 3; - } - goto again; - } - } else { - dump(js, tok, p.toknext, 0); - eof_expected = 1; - } - } - - return 0; -} diff --git a/src/lib/00jsmn00/example/maptest b/src/lib/00jsmn00/example/maptest deleted file mode 100755 index a72fa7f9f215fdb940dac204d401a2f9b47f1db2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10128 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 P%k`a@k3CpMu=V{fZjlZ1 diff --git a/src/lib/00jsmn00/example/maptest.c b/src/lib/00jsmn00/example/maptest.c deleted file mode 100755 index 7cceabb8..00000000 --- a/src/lib/00jsmn00/example/maptest.c +++ /dev/null @@ -1,122 +0,0 @@ -#include -#include -#include -//#include -#include "../jsmn.c" - -//#define BUFSIZ 2048 - -/* - * A small example of jsmn parsing when JSON structure is known and number of - * tokens is predictable. - */ - -/*char *json_string = - "{\"user\": \"johndoe\", \"admin\": false, \"uid\": 1000,\n " - "\"groups\": [\"users\", \"wheel\", \"audio\", \"video\"]}";*/ - -long int filesize(FILE *fp) -{ - long int save_pos, size_of_file; - - save_pos = ftell(fp); - fseek(fp, 0L, SEEK_END); - size_of_file = ftell(fp); - fseek(fp, save_pos, SEEK_SET); - return(size_of_file); -} - -static int jsoneq(const char *json, jsmntok_t *tok, const char *s) { - if (tok->type == JSMN_STRING && (int) strlen(s) == tok->end - tok->start && - strncmp(json + tok->start, s, tok->end - tok->start) == 0) { - return 0; - } - return -1; -} - -int main() { - int i; - int r; - size_t z; - jsmn_parser p; - jsmntok_t t[(BUFSIZ/sizeof(jsmntok_t))*2]; /* We expect no more than 128 tokens */ - FILE *fh = fopen("../../../../data/test.map", "r"); - char *json_string = malloc(filesize(fh)); - - if(fh != NULL) - { - /*t = malloc(2048); - if (t == NULL) { - fprintf(stderr, "malloc(): errno=%d\n", errno); - return 3; - }*/ - //printf("\n%d\n\n", sizeof(*t)); - printf("\n%d", sizeof(*t)); - printf("\n%d", sizeof(t)); - printf("\n%d\n\n", sizeof(t)/sizeof(t[0])); - z = fread(json_string, 1, filesize(fh), fh); - //char json_s[2048]; - fclose(fh); fh = NULL; - printf("[%d]\n", z); - json_string[z] = '\0'; - // we can now close the file - //printf("]%s[\n", json_s); - //json_string=json_s; - //printf("[[%s]]\n", json_string); - - jsmn_init(&p); - r = jsmn_parse(&p, json_string, strlen(json_string), t, sizeof(t)/sizeof(t[0])); - //t[(BUFSIZ/sizeof(jsmntok_t))*2+1].type=JSMN_OBJECT; - printf("[\n%s\n]", json_string); - printf("[[%d]]\n",r); - if (r < 0) { - printf("Failed to parse JSON: %d\n", r); - return 1; - } - - /* Assume the top-level element is an object */ - if (r < 1 || t[0].type != JSMN_OBJECT) { - printf("Object expected\n"); - return 1; - } - - /* Loop over all keys of the root object */ - for (i = 1; i < r; i++) { - if (jsoneq(json_string, &t[i], "image") == 0) { - /* We may use strndup() to fetch string value */ - printf("- image: %.*s\n", t[i+1].end-t[i+1].start, - json_string + t[i+1].start); - i++; - } else if (jsoneq(json_string, &t[i], "admin") == 0) { - /* We may additionally check if the value is either "true" or "false" */ - printf("- Admin: %.*s\n", t[i+1].end-t[i+1].start, - json_string + t[i+1].start); - i++; - } else if (jsoneq(json_string, &t[i], "uid") == 0) { - /* We may want to do strtol() here to get numeric value */ - printf("- UID: %.*s\n", t[i+1].end-t[i+1].start, - json_string + t[i+1].start); - i++; - } else if (jsoneq(json_string, &t[i], "tilesets") == 0) { - int j; - printf("- tilesets:\n"); - if (t[i+1].type != JSMN_ARRAY) { - continue; /* We expect groups to be an array of strings */ - } - for (j = 0; j < t[i+1].size; j++) { - jsmntok_t *g = &t[i+j+2]; - printf(" * %.*s\n", g->end - g->start, json_string + g->start); - } - i += t[i+1].size + 1; - } else { - /*printf("Unexpected key: %.*s\n", t[i].end-t[i].start, - json_string + t[i].start);*/ - } - } - - //free(json_string); - } - if (fh != NULL) fclose(fh); - ////} - return 0; -} diff --git a/src/lib/00jsmn00/example/maptest2 b/src/lib/00jsmn00/example/maptest2 deleted file mode 100755 index abc5640f405dfdfdec94ce713a12ff4a0dc28cbb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10845 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 diff --git a/src/lib/00jsmn00/example/maptest2.c b/src/lib/00jsmn00/example/maptest2.c deleted file mode 100755 index 017fbf85..00000000 --- a/src/lib/00jsmn00/example/maptest2.c +++ /dev/null @@ -1,170 +0,0 @@ -#include -#include -#include -#include -#include "../jsmn.c" -#include "../../../lib/types.h" - -/* - * An example of reading JSON from stdin and printing its content to stdout. - * The output looks like YAML, but I'm not sure if it's really compatible. - */ - -char *js_sv; - -typedef struct { - //bitmap_t *data; - byte *data; - word tileHeight; - word tileWidth; - unsigned int rows; - unsigned int cols; -} tiles_t; - -typedef struct { - byte *data; - tiles_t *tiles; - int width; - int height; -} map_t; - -static int jsoneq(const char *json, jsmntok_t *tok, const char *s) { - if (tok->type == JSMN_STRING && (int) strlen(s) == tok->end - tok->start && - strncmp(json + tok->start, s, tok->end - tok->start) == 0) { - return 0; - } - return -1; -} - -static int dump(const char *js, jsmntok_t *t, size_t count, int indent, /*char *js_sv,*/ map_t *map) { - int i, j, k; - if (count == 0) { - return 0; - } - /* We may want to do strtol() here to get numeric value */ - if (t->type == JSMN_PRIMITIVE) { - if(js_sv == "height") - { - map->height = (int)strtol(js+t->start, (char **)js+t->end, 10); - printf("h:[%d]\n", map->height); - }else if(js_sv == "width") - { - map->width = (int)strtol(js+t->start, (char **)js+t->end, 10); - printf("w:[%d]\n", map->width); - } - return 1; - /* We may use strndup() to fetch string value */ - } else if (t->type == JSMN_STRING) { - //printf("'%.*s'", t->end - t->start, js+t->start); - if (jsoneq(js, t, "height") == 0 && indent==1) - { - js_sv="height";//strdup(js+t->start);//, t->end - t->start); - printf("%s\n", js_sv); - }else if (jsoneq(js, t, "width") == 0 && indent==1) - { - js_sv="width";//strdup(js+t->start);//, t->end - t->start); - printf("%s\n", js_sv); - }else js_sv=NULL; - return 1; - } else if (t->type == JSMN_OBJECT) { - //printf("\n"); - j = 0; - for (i = 0; i < t->size; i++) { - //for (k = 0; k < indent; k++) printf("\t"); - j += dump(js, t+1+j, count-j, indent+1, map); - //printf(": "); - j += dump(js, t+1+j, count-j, indent+1, map); - //printf("\n"); - } - return j+1; - } else if (t->type == JSMN_ARRAY) { - j = 0; - //printf("==\n"); - for (i = 0; i < t->size; i++) { - //for (k = 0; k < indent-1; k++) printf("\t"); - //printf("\t-"); - j += dump(js, t+1+j, count-j, indent+1, map); - //printf("==\n"); - } - return j+1; - } - return 0; -} - -int loadmap(char *mn, map_t *map) -{ - int r; - int eof_expected = 0; - char *js = NULL; - size_t jslen = 0; - char buf[BUFSIZ]; - - jsmn_parser p; - jsmntok_t *tok; - size_t tokcount = 2; - - FILE *fh = fopen(mn, "r"); - - /* Prepare parser */ - jsmn_init(&p); - - /* Allocate some tokens as a start */ - tok = malloc(sizeof(*tok) * tokcount); - if (tok == NULL) { - fprintf(stderr, "malloc(): errno=%d\n", errno); - return 3; - } - - for (;;) { - /* Read another chunk */ - r = fread(buf, 1, sizeof(buf), fh); - if (r < 0) { - fprintf(stderr, "fread(): %d, errno=%d\n", r, errno); - return 1; - } - if (r == 0) { - if (eof_expected != 0) { - return 0; - } else { - fprintf(stderr, "fread(): unexpected EOF\n"); - return 2; - } - } - - js = realloc(js, jslen + r + 1); - if (js == NULL) { - fprintf(stderr, "realloc(): errno=%d\n", errno); - return 3; - } - strncpy(js + jslen, buf, r); - jslen = jslen + r; - -again: - r = jsmn_parse(&p, js, jslen, tok, tokcount); - if (r < 0) { - if (r == JSMN_ERROR_NOMEM) { - tokcount = tokcount * 2; - tok = realloc(tok, sizeof(*tok) * tokcount); - if (tok == NULL) { - fprintf(stderr, "realloc(): errno=%d\n", errno); - return 3; - } - goto again; - } - } else { - dump(js, tok, p.toknext, 0, map); - //fprintf(stdout, "[[[[%d]]]]\n", sizeof(tok)); - //printf("[\n%d\n]", jslen); - eof_expected = 1; - } - } - - return 0; -} - -int main() -{ - map_t map; - loadmap("../../../../data/test.map", &map); - return 0; -} diff --git a/src/lib/00jsmn00/example/simple.c b/src/lib/00jsmn00/example/simple.c deleted file mode 100755 index ca2902b5..00000000 --- a/src/lib/00jsmn00/example/simple.c +++ /dev/null @@ -1,75 +0,0 @@ -#include -#include -#include "../jsmn.c" - -/* - * A small example of jsmn parsing when JSON structure is known and number of - * tokens is predictable. - */ - -const char *JSON_STRING = - "{\"user\": \"johndoe\", \"admin\": false, \"uid\": 1000,\n " - "\"groups\": [\"users\", \"wheel\", \"audio\", \"video\"]}"; - -static int jsoneq(const char *json, jsmntok_t *tok, const char *s) { - if (tok->type == JSMN_STRING && (int) strlen(s) == tok->end - tok->start && - strncmp(json + tok->start, s, tok->end - tok->start) == 0) { - return 0; - } - return -1; -} - -int main() { - int i; - int r; - jsmn_parser p; - jsmntok_t t[128]; /* We expect no more than 128 tokens */ - - jsmn_init(&p); - r = jsmn_parse(&p, JSON_STRING, strlen(JSON_STRING), t, sizeof(t)/sizeof(t[0])); - if (r < 0) { - printf("Failed to parse JSON: %d\n", r); - return 1; - } - - /* Assume the top-level element is an object */ - if (r < 1 || t[0].type != JSMN_OBJECT) { - printf("Object expected\n"); - return 1; - } - - /* Loop over all keys of the root object */ - for (i = 1; i < r; i++) { - if (jsoneq(JSON_STRING, &t[i], "user") == 0) { - /* We may use strndup() to fetch string value */ - printf("- User: %.*s\n", t[i+1].end-t[i+1].start, - JSON_STRING + t[i+1].start); - i++; - } else if (jsoneq(JSON_STRING, &t[i], "admin") == 0) { - /* We may additionally check if the value is either "true" or "false" */ - printf("- Admin: %.*s\n", t[i+1].end-t[i+1].start, - JSON_STRING + t[i+1].start); - i++; - } else if (jsoneq(JSON_STRING, &t[i], "uid") == 0) { - /* We may want to do strtol() here to get numeric value */ - printf("- UID: %.*s\n", t[i+1].end-t[i+1].start, - JSON_STRING + t[i+1].start); - i++; - } else if (jsoneq(JSON_STRING, &t[i], "groups") == 0) { - int j; - printf("- Groups:\n"); - if (t[i+1].type != JSMN_ARRAY) { - continue; /* We expect groups to be an array of strings */ - } - for (j = 0; j < t[i+1].size; j++) { - jsmntok_t *g = &t[i+j+2]; - printf(" * %.*s\n", g->end - g->start, JSON_STRING + g->start); - } - i += t[i+1].size + 1; - } else { - printf("Unexpected key: %.*s\n", t[i].end-t[i].start, - JSON_STRING + t[i].start); - } - } - return 0; -} diff --git a/src/lib/00jsmn00/farjsmn.c b/src/lib/00jsmn00/farjsmn.c deleted file mode 100755 index a2acc561..00000000 --- a/src/lib/00jsmn00/farjsmn.c +++ /dev/null @@ -1,317 +0,0 @@ -#include -#include //fprintf for noisy debugging wwww - -#include "farjsmn.h" - -/** - * Allocates a fresh unused token from the token pull. - */ -static jsmntok_t huge *jsmn_alloc_token(jsmn_parser huge *parser, - jsmntok_t huge *tokens, size_t num_tokens) { - jsmntok_t huge *tok; - if (parser->toknext >= num_tokens) { - return NULL; - } - tok = &tokens[parser->toknext++]; - tok->start = tok->end = -1; - tok->size = 0; -#ifdef JSMN_PARENT_LINKS - tok->parent = -1; -#endif - return tok; -} - -/** - * Fills token type and boundaries. - */ -static void jsmn_fill_token(jsmntok_t huge *token, jsmntype_t type, - int start, int end) { - token->type = type; - token->start = start; - token->end = end; - token->size = 0; -} - -/** - * Fills next available token with JSON primitive. - */ -static jsmnerr_t jsmn_parse_primitive(jsmn_parser huge *parser, const char huge *js, - size_t len, jsmntok_t huge *tokens, size_t num_tokens) { - jsmntok_t huge *token; - int start; - - start = parser->pos; - - for (; parser->pos < len && js[parser->pos] != '\0'; parser->pos++) { - switch (js[parser->pos]) { -#ifndef JSMN_STRICT - /* In strict mode primitive must be followed by "," or "}" or "]" */ - case ':': -#endif - case '\t' : case '\r' : case '\n' : case ' ' : - case ',' : case ']' : case '}' : - goto found; - } - if (js[parser->pos] < 32 || js[parser->pos] >= 127) { - parser->pos = start; - return JSMN_ERROR_INVAL; - } - } -#ifdef JSMN_STRICT - /* In strict mode primitive must be followed by a comma/object/array */ - parser->pos = start; - return JSMN_ERROR_PART; -#endif - -found: - if (tokens == NULL) { - parser->pos--; - return 0; - } - token = jsmn_alloc_token(parser, tokens, num_tokens); - if (token == NULL) { - parser->pos = start; - return JSMN_ERROR_NOMEM; - } - jsmn_fill_token(token, JSMN_PRIMITIVE, start, parser->pos); -#ifdef JSMN_PARENT_LINKS - token->parent = parser->toksuper; -#endif - parser->pos--; - return 0; -} - -/** - * Filsl next token with JSON string. - */ -static jsmnerr_t jsmn_parse_string(jsmn_parser huge *parser, const char huge *js, - size_t len, jsmntok_t huge *tokens, size_t num_tokens) { - jsmntok_t huge *token; - - int start = parser->pos; - - parser->pos++; - - /* Skip starting quote */ - for (; parser->pos < len && js[parser->pos] != '\0'; parser->pos++) { - char c = js[parser->pos]; - - /* Quote: end of string */ - if (c == '\"') { - if (tokens == NULL) { - return 0; - } - token = jsmn_alloc_token(parser, tokens, num_tokens); - if (token == NULL) { - parser->pos = start; - return JSMN_ERROR_NOMEM; - } - jsmn_fill_token(token, JSMN_STRING, start+1, parser->pos); -#ifdef JSMN_PARENT_LINKS - token->parent = parser->toksuper; -#endif - return 0; - } - - /* Backslash: Quoted symbol expected */ - if (c == '\\' && parser->pos + 1 < len) { - int i; - parser->pos++; - switch (js[parser->pos]) { - /* Allowed escaped symbols */ - case '\"': case '/' : case '\\' : case 'b' : - case 'f' : case 'r' : case 'n' : case 't' : - break; - /* Allows escaped symbol \uXXXX */ - case 'u': - parser->pos++; - for(i = 0; i < 4 && parser->pos < len && js[parser->pos] != '\0'; i++) { - /* If it isn't a hex character we have an error */ - if(!((js[parser->pos] >= 48 && js[parser->pos] <= 57) || /* 0-9 */ - (js[parser->pos] >= 65 && js[parser->pos] <= 70) || /* A-F */ - (js[parser->pos] >= 97 && js[parser->pos] <= 102))) { /* a-f */ - parser->pos = start; - return JSMN_ERROR_INVAL; - } - parser->pos++; - } - parser->pos--; - break; - /* Unexpected symbol */ - default: - parser->pos = start; - return JSMN_ERROR_INVAL; - } - } - } - parser->pos = start; - return JSMN_ERROR_PART; -} - -/** - * Parse JSON string and fill tokens. - */ -jsmnerr_t jsmn_parse(jsmn_parser huge *parser, const char huge *js, size_t len, - jsmntok_t huge *tokens, unsigned int num_tokens) { - jsmnerr_t r; - int i; - jsmntok_t huge *token; - int count = 0; - static unsigned long pee=0; - - for (; parser->pos < len && js[parser->pos] != '\0'; parser->pos++) { - char c; - jsmntype_t type; - -fprintf(stdout, "%lu %c count=%u i=%d nt=%u\n", pee, js[parser->pos], count, i, num_tokens); -//fprintf(stdout, "token->start=%d\n", token->start); -pee++; - - c = js[parser->pos]; - switch (c) { - case '{': case '[': - count++; - if (tokens == NULL) { - break; - } - token = jsmn_alloc_token(parser, tokens, num_tokens); - if (token == NULL) - return JSMN_ERROR_NOMEM; - if (parser->toksuper != -1) { - tokens[parser->toksuper].size++; -#ifdef JSMN_PARENT_LINKS - token->parent = parser->toksuper; -#endif - } - token->type = (c == '{' ? JSMN_OBJECT : JSMN_ARRAY); - token->start = parser->pos; - parser->toksuper = parser->toknext - 1; - break; - case '}': case ']': - if (tokens == NULL) - break; - type = (c == '}' ? JSMN_OBJECT : JSMN_ARRAY); -#ifdef JSMN_PARENT_LINKS - if (parser->toknext < 1) { - return JSMN_ERROR_INVAL; - } - token = &tokens[parser->toknext - 1]; - for (;;) { - if (token->start != -1 && token->end == -1) { - if (token->type != type) { - return JSMN_ERROR_INVAL; - } - token->end = parser->pos + 1; - parser->toksuper = token->parent; - break; - } - if (token->parent == -1) { - break; - } - token = &tokens[token->parent]; - } -#else - for (i = parser->toknext - 1; i >= 0; i--) { - token = &tokens[i]; - if (token->start != -1 && token->end == -1) { - if (token->type != type) { - return JSMN_ERROR_INVAL; - } - parser->toksuper = -1; - token->end = parser->pos + 1; - break; - } - } - /* Error if unmatched closing bracket */ - if (i == -1) return JSMN_ERROR_INVAL; - for (; i >= 0; i--) { - token = &tokens[i]; - if (token->start != -1 && token->end == -1) { - parser->toksuper = i; - break; - } - } -#endif - break; - case '\"': - r = jsmn_parse_string(parser, js, len, tokens, num_tokens); - if (r < 0) return r; - count++; - if (parser->toksuper != -1 && tokens != NULL) - tokens[parser->toksuper].size++; - break; - case '\t' : case '\r' : case '\n' : case ' ': - break; - case ':': - parser->toksuper = parser->toknext - 1; - break; - case ',': - if (tokens != NULL && - tokens[parser->toksuper].type != JSMN_ARRAY && - tokens[parser->toksuper].type != JSMN_OBJECT) { -#ifdef JSMN_PARENT_LINKS - parser->toksuper = tokens[parser->toksuper].parent; -#else - for (i = parser->toknext - 1; i >= 0; i--) { - if (tokens[i].type == JSMN_ARRAY || tokens[i].type == JSMN_OBJECT) { - if (tokens[i].start != -1 && tokens[i].end == -1) { - parser->toksuper = i; - break; - } - } - } -#endif - } - break; -#ifdef JSMN_STRICT - /* In strict mode primitives are: numbers and booleans */ - case '-': case '0': case '1' : case '2': case '3' : case '4': - case '5': case '6': case '7' : case '8': case '9': - case 't': case 'f': case 'n' : - /* And they must not be keys of the object */ - if (tokens != NULL) { - jsmntok_t huge *t = &tokens[parser->toksuper]; - if (t->type == JSMN_OBJECT || - (t->type == JSMN_STRING && t->size != 0)) { - return JSMN_ERROR_INVAL; - } - } -#else - /* In non-strict mode every unquoted value is a primitive */ - default: -#endif - r = jsmn_parse_primitive(parser, js, len, tokens, num_tokens); - if (r < 0) return r; - count++; - if (parser->toksuper != -1 && tokens != NULL) - tokens[parser->toksuper].size++; - break; - -#ifdef JSMN_STRICT - /* Unexpected char in strict mode */ - default: - return JSMN_ERROR_INVAL; -#endif - } - } - - for (i = parser->toknext - 1; i >= 0; i--) { - /* Unmatched opened object or array */ - if (tokens[i].start != -1 && tokens[i].end == -1) { - return JSMN_ERROR_PART; - } - } - - return count; -} - -/** - * Creates a new parser based over a given buffer with an array of tokens - * available. - */ -void jsmn_init(jsmn_parser huge *parser) { - parser->pos = 0; - parser->toknext = 0; - parser->toksuper = -1; -} - diff --git a/src/lib/00jsmn00/farjsmn.h b/src/lib/00jsmn00/farjsmn.h deleted file mode 100755 index dd7dcaf0..00000000 --- a/src/lib/00jsmn00/farjsmn.h +++ /dev/null @@ -1,77 +0,0 @@ -#ifndef __FARJSMN_H_ -#define __FARJSMN_H_ - -#include - -#define JSMN_PARENT_LINKS - -#ifdef __cplusplus -extern "C" { -#endif - -/** - * JSON type identifier. Basic types are: - * o Object - * o Array - * o String - * o Other primitive: number, boolean (true/false) or null - */ -typedef enum { - JSMN_PRIMITIVE = 0, - JSMN_OBJECT = 1, - JSMN_ARRAY = 2, - JSMN_STRING = 3 -} jsmntype_t; - -typedef enum { - /* Not enough tokens were provided */ - JSMN_ERROR_NOMEM = -1, - /* Invalid character inside JSON string */ - JSMN_ERROR_INVAL = -2, - /* The string is not a full JSON packet, more bytes expected */ - JSMN_ERROR_PART = -3 -} jsmnerr_t; - -/** - * JSON token description. - * @param type type (object, array, string etc.) - * @param start start position in JSON data string - * @param end end position in JSON data string - */ -typedef struct { - jsmntype_t type; - int start; - int end; - int size; -#ifdef JSMN_PARENT_LINKS - int parent; -#endif -} jsmntok_t; - -/** - * JSON parser. Contains an array of token blocks available. Also stores - * the string being parsed now and current position in that string - */ -typedef struct { - unsigned int pos; /* offset in the JSON string */ - unsigned int toknext; /* next token to allocate */ - int toksuper; /* superior token node, e.g parent object or array */ -} jsmn_parser; - -/** - * Create JSON parser over an array of tokens - */ -void jsmn_init(jsmn_parser huge *parser); - -/** - * Run JSON parser. It parses a JSON data string into and array of tokens, each describing - * a single JSON object. - */ -jsmnerr_t jsmn_parse(jsmn_parser huge *parser, const char huge *js, size_t len, - jsmntok_t huge *tokens, unsigned int num_tokens); - -#ifdef __cplusplus -} -#endif - -#endif /* __FARJSMN_H_ */ diff --git a/src/lib/00jsmn00/jsmn.c b/src/lib/00jsmn00/jsmn.c deleted file mode 100755 index a0f4f69c..00000000 --- a/src/lib/00jsmn00/jsmn.c +++ /dev/null @@ -1,311 +0,0 @@ -#include - -#include "jsmn.h" - -/** - * Allocates a fresh unused token from the token pull. - */ -static jsmntok_t *jsmn_alloc_token(jsmn_parser *parser, - jsmntok_t *tokens, size_t num_tokens) { - jsmntok_t *tok; - if (parser->toknext >= num_tokens) { - return NULL; - } - tok = &tokens[parser->toknext++]; - tok->start = tok->end = -1; - tok->size = 0; -#ifdef JSMN_PARENT_LINKS - tok->parent = -1; -#endif - return tok; -} - -/** - * Fills token type and boundaries. - */ -static void jsmn_fill_token(jsmntok_t *token, jsmntype_t type, - int start, int end) { - token->type = type; - token->start = start; - token->end = end; - token->size = 0; -} - -/** - * Fills next available token with JSON primitive. - */ -static jsmnerr_t jsmn_parse_primitive(jsmn_parser *parser, const char *js, - size_t len, jsmntok_t *tokens, size_t num_tokens) { - jsmntok_t *token; - int start; - - start = parser->pos; - - for (; parser->pos < len && js[parser->pos] != '\0'; parser->pos++) { - switch (js[parser->pos]) { -#ifndef JSMN_STRICT - /* In strict mode primitive must be followed by "," or "}" or "]" */ - case ':': -#endif - case '\t' : case '\r' : case '\n' : case ' ' : - case ',' : case ']' : case '}' : - goto found; - } - if (js[parser->pos] < 32 || js[parser->pos] >= 127) { - parser->pos = start; - return JSMN_ERROR_INVAL; - } - } -#ifdef JSMN_STRICT - /* In strict mode primitive must be followed by a comma/object/array */ - parser->pos = start; - return JSMN_ERROR_PART; -#endif - -found: - if (tokens == NULL) { - parser->pos--; - return 0; - } - token = jsmn_alloc_token(parser, tokens, num_tokens); - if (token == NULL) { - parser->pos = start; - return JSMN_ERROR_NOMEM; - } - jsmn_fill_token(token, JSMN_PRIMITIVE, start, parser->pos); -#ifdef JSMN_PARENT_LINKS - token->parent = parser->toksuper; -#endif - parser->pos--; - return 0; -} - -/** - * Filsl next token with JSON string. - */ -static jsmnerr_t jsmn_parse_string(jsmn_parser *parser, const char *js, - size_t len, jsmntok_t *tokens, size_t num_tokens) { - jsmntok_t *token; - - int start = parser->pos; - - parser->pos++; - - /* Skip starting quote */ - for (; parser->pos < len && js[parser->pos] != '\0'; parser->pos++) { - char c = js[parser->pos]; - - /* Quote: end of string */ - if (c == '\"') { - if (tokens == NULL) { - return 0; - } - token = jsmn_alloc_token(parser, tokens, num_tokens); - if (token == NULL) { - parser->pos = start; - return JSMN_ERROR_NOMEM; - } - jsmn_fill_token(token, JSMN_STRING, start+1, parser->pos); -#ifdef JSMN_PARENT_LINKS - token->parent = parser->toksuper; -#endif - return 0; - } - - /* Backslash: Quoted symbol expected */ - if (c == '\\' && parser->pos + 1 < len) { - int i; - parser->pos++; - switch (js[parser->pos]) { - /* Allowed escaped symbols */ - case '\"': case '/' : case '\\' : case 'b' : - case 'f' : case 'r' : case 'n' : case 't' : - break; - /* Allows escaped symbol \uXXXX */ - case 'u': - parser->pos++; - for(i = 0; i < 4 && parser->pos < len && js[parser->pos] != '\0'; i++) { - /* If it isn't a hex character we have an error */ - if(!((js[parser->pos] >= 48 && js[parser->pos] <= 57) || /* 0-9 */ - (js[parser->pos] >= 65 && js[parser->pos] <= 70) || /* A-F */ - (js[parser->pos] >= 97 && js[parser->pos] <= 102))) { /* a-f */ - parser->pos = start; - return JSMN_ERROR_INVAL; - } - parser->pos++; - } - parser->pos--; - break; - /* Unexpected symbol */ - default: - parser->pos = start; - return JSMN_ERROR_INVAL; - } - } - } - parser->pos = start; - return JSMN_ERROR_PART; -} - -/** - * Parse JSON string and fill tokens. - */ -jsmnerr_t jsmn_parse(jsmn_parser *parser, const char *js, size_t len, - jsmntok_t *tokens, unsigned int num_tokens) { - jsmnerr_t r; - int i; - jsmntok_t *token; - int count = 0; - - for (; parser->pos < len && js[parser->pos] != '\0'; parser->pos++) { - char c; - jsmntype_t type; - - c = js[parser->pos]; - switch (c) { - case '{': case '[': - count++; - if (tokens == NULL) { - break; - } - token = jsmn_alloc_token(parser, tokens, num_tokens); - if (token == NULL) - return JSMN_ERROR_NOMEM; - if (parser->toksuper != -1) { - tokens[parser->toksuper].size++; -#ifdef JSMN_PARENT_LINKS - token->parent = parser->toksuper; -#endif - } - token->type = (c == '{' ? JSMN_OBJECT : JSMN_ARRAY); - token->start = parser->pos; - parser->toksuper = parser->toknext - 1; - break; - case '}': case ']': - if (tokens == NULL) - break; - type = (c == '}' ? JSMN_OBJECT : JSMN_ARRAY); -#ifdef JSMN_PARENT_LINKS - if (parser->toknext < 1) { - return JSMN_ERROR_INVAL; - } - token = &tokens[parser->toknext - 1]; - for (;;) { - if (token->start != -1 && token->end == -1) { - if (token->type != type) { - return JSMN_ERROR_INVAL; - } - token->end = parser->pos + 1; - parser->toksuper = token->parent; - break; - } - if (token->parent == -1) { - break; - } - token = &tokens[token->parent]; - } -#else - for (i = parser->toknext - 1; i >= 0; i--) { - token = &tokens[i]; - if (token->start != -1 && token->end == -1) { - if (token->type != type) { - return JSMN_ERROR_INVAL; - } - parser->toksuper = -1; - token->end = parser->pos + 1; - break; - } - } - /* Error if unmatched closing bracket */ - if (i == -1) return JSMN_ERROR_INVAL; - for (; i >= 0; i--) { - token = &tokens[i]; - if (token->start != -1 && token->end == -1) { - parser->toksuper = i; - break; - } - } -#endif - break; - case '\"': - r = jsmn_parse_string(parser, js, len, tokens, num_tokens); - if (r < 0) return r; - count++; - if (parser->toksuper != -1 && tokens != NULL) - tokens[parser->toksuper].size++; - break; - case '\t' : case '\r' : case '\n' : case ' ': - break; - case ':': - parser->toksuper = parser->toknext - 1; - break; - case ',': - if (tokens != NULL && - tokens[parser->toksuper].type != JSMN_ARRAY && - tokens[parser->toksuper].type != JSMN_OBJECT) { -#ifdef JSMN_PARENT_LINKS - parser->toksuper = tokens[parser->toksuper].parent; -#else - for (i = parser->toknext - 1; i >= 0; i--) { - if (tokens[i].type == JSMN_ARRAY || tokens[i].type == JSMN_OBJECT) { - if (tokens[i].start != -1 && tokens[i].end == -1) { - parser->toksuper = i; - break; - } - } - } -#endif - } - break; -#ifdef JSMN_STRICT - /* In strict mode primitives are: numbers and booleans */ - case '-': case '0': case '1' : case '2': case '3' : case '4': - case '5': case '6': case '7' : case '8': case '9': - case 't': case 'f': case 'n' : - /* And they must not be keys of the object */ - if (tokens != NULL) { - jsmntok_t *t = &tokens[parser->toksuper]; - if (t->type == JSMN_OBJECT || - (t->type == JSMN_STRING && t->size != 0)) { - return JSMN_ERROR_INVAL; - } - } -#else - /* In non-strict mode every unquoted value is a primitive */ - default: -#endif - r = jsmn_parse_primitive(parser, js, len, tokens, num_tokens); - if (r < 0) return r; - count++; - if (parser->toksuper != -1 && tokens != NULL) - tokens[parser->toksuper].size++; - break; - -#ifdef JSMN_STRICT - /* Unexpected char in strict mode */ - default: - return JSMN_ERROR_INVAL; -#endif - } - } - - for (i = parser->toknext - 1; i >= 0; i--) { - /* Unmatched opened object or array */ - if (tokens[i].start != -1 && tokens[i].end == -1) { - return JSMN_ERROR_PART; - } - } - - return count; -} - -/** - * Creates a new parser based over a given buffer with an array of tokens - * available. - */ -void jsmn_init(jsmn_parser *parser) { - parser->pos = 0; - parser->toknext = 0; - parser->toksuper = -1; -} - diff --git a/src/lib/00jsmn00/jsmn.h b/src/lib/00jsmn00/jsmn.h deleted file mode 100755 index 95fb2cab..00000000 --- a/src/lib/00jsmn00/jsmn.h +++ /dev/null @@ -1,75 +0,0 @@ -#ifndef __JSMN_H_ -#define __JSMN_H_ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/** - * JSON type identifier. Basic types are: - * o Object - * o Array - * o String - * o Other primitive: number, boolean (true/false) or null - */ -typedef enum { - JSMN_PRIMITIVE = 0, - JSMN_OBJECT = 1, - JSMN_ARRAY = 2, - JSMN_STRING = 3 -} jsmntype_t; - -typedef enum { - /* Not enough tokens were provided */ - JSMN_ERROR_NOMEM = -1, - /* Invalid character inside JSON string */ - JSMN_ERROR_INVAL = -2, - /* The string is not a full JSON packet, more bytes expected */ - JSMN_ERROR_PART = -3 -} jsmnerr_t; - -/** - * JSON token description. - * @param type type (object, array, string etc.) - * @param start start position in JSON data string - * @param end end position in JSON data string - */ -typedef struct { - jsmntype_t type; - int start; - int end; - int size; -#ifdef JSMN_PARENT_LINKS - int parent; -#endif -} jsmntok_t; - -/** - * JSON parser. Contains an array of token blocks available. Also stores - * the string being parsed now and current position in that string - */ -typedef struct { - unsigned int pos; /* offset in the JSON string */ - unsigned int toknext; /* next token to allocate */ - int toksuper; /* superior token node, e.g parent object or array */ -} jsmn_parser; - -/** - * Create JSON parser over an array of tokens - */ -void jsmn_init(jsmn_parser *parser); - -/** - * Run JSON parser. It parses a JSON data string into and array of tokens, each describing - * a single JSON object. - */ -jsmnerr_t jsmn_parse(jsmn_parser *parser, const char *js, size_t len, - jsmntok_t *tokens, unsigned int num_tokens); - -#ifdef __cplusplus -} -#endif - -#endif /* __JSMN_H_ */ diff --git a/src/lib/00jsmn00/jsmn_test b/src/lib/00jsmn00/jsmn_test deleted file mode 100755 index eb420fe98a278d256c859e372c54bbe6ba1e91a5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22084 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 TV~a6w#nYBz?W>G}OyT_}Gbm}+ diff --git a/src/lib/00jsmn00/jsmn_test.c b/src/lib/00jsmn00/jsmn_test.c deleted file mode 100755 index 39688592..00000000 --- a/src/lib/00jsmn00/jsmn_test.c +++ /dev/null @@ -1,608 +0,0 @@ -#include -#include -#include - -static int test_passed = 0; -static int test_failed = 0; - -/* Terminate current test with error */ -#define fail() return __LINE__ - -/* Successfull end of the test case */ -#define done() return 0 - -/* Check single condition */ -#define check(cond) do { if (!(cond)) fail(); } while (0) - -/* Test runner */ -static void test(int (*func)(void), const char *name) { - int r = func(); - if (r == 0) { - test_passed++; - } else { - test_failed++; - printf("FAILED: %s (at line %d)\n", name, r); - } -} - -#define TOKEN_EQ(t, tok_start, tok_end, tok_type) \ - ((t).start == tok_start \ - && (t).end == tok_end \ - && (t).type == (tok_type)) - -#define TOKEN_STRING(js, t, s) \ - (strncmp(js+(t).start, s, (t).end - (t).start) == 0 \ - && strlen(s) == (t).end - (t).start) - -#define TOKEN_PRINT(t) \ - printf("start: %d, end: %d, type: %d, size: %d\n", \ - (t).start, (t).end, (t).type, (t).size) - -#define JSMN_STRICT -#include "jsmn.c" - -int test_empty() { - const char *js; - int r; - jsmn_parser p; - jsmntok_t t[10]; - - js = "{}"; - jsmn_init(&p); - r = jsmn_parse(&p, js, strlen(js), t, 10); - check(r >= 0); - check(t[0].type == JSMN_OBJECT); - check(t[0].start == 0 && t[0].end == 2); - - js = "[]"; - jsmn_init(&p); - r = jsmn_parse(&p, js, strlen(js), t, 10); - check(r >= 0); - check(t[0].type == JSMN_ARRAY); - check(t[0].start == 0 && t[0].end == 2); - - js = "{\"a\":[]}"; - jsmn_init(&p); - r = jsmn_parse(&p, js, strlen(js), t, 10); - check(r >= 0); - check(t[0].type == JSMN_OBJECT && t[0].start == 0 && t[0].end == 8); - check(t[1].type == JSMN_STRING && t[1].start == 2 && t[1].end == 3); - check(t[2].type == JSMN_ARRAY && t[2].start == 5 && t[2].end == 7); - - js = "[{},{}]"; - jsmn_init(&p); - r = jsmn_parse(&p, js, strlen(js), t, 10); - check(r >= 0); - check(t[0].type == JSMN_ARRAY && t[0].start == 0 && t[0].end == 7); - check(t[1].type == JSMN_OBJECT && t[1].start == 1 && t[1].end == 3); - check(t[2].type == JSMN_OBJECT && t[2].start == 4 && t[2].end == 6); - return 0; -} - -int test_simple() { - const char *js; - int r; - jsmn_parser p; - jsmntok_t tokens[10]; - - js = "{\"a\": 0}"; - - jsmn_init(&p); - r = jsmn_parse(&p, js, strlen(js), tokens, 10); - check(r >= 0); - check(TOKEN_EQ(tokens[0], 0, 8, JSMN_OBJECT)); - check(TOKEN_EQ(tokens[1], 2, 3, JSMN_STRING)); - check(TOKEN_EQ(tokens[2], 6, 7, JSMN_PRIMITIVE)); - - check(TOKEN_STRING(js, tokens[0], js)); - check(TOKEN_STRING(js, tokens[1], "a")); - check(TOKEN_STRING(js, tokens[2], "0")); - - jsmn_init(&p); - js = "[\"a\":{},\"b\":{}]"; - r = jsmn_parse(&p, js, strlen(js), tokens, 10); - check(r >= 0); - - jsmn_init(&p); - js = "{\n \"Day\": 26,\n \"Month\": 9,\n \"Year\": 12\n }"; - r = jsmn_parse(&p, js, strlen(js), tokens, 10); - check(r >= 0); - - return 0; -} - -int test_primitive() { -#ifndef JSMN_STRICT - int r; - jsmn_parser p; - jsmntok_t tok[10]; - const char *js; - js = "\"boolVar\" : true"; - jsmn_init(&p); - r = jsmn_parse(&p, js, strlen(js), tok, 10); - check(r >= 0 && tok[0].type == JSMN_STRING - && tok[1].type == JSMN_PRIMITIVE); - check(TOKEN_STRING(js, tok[0], "boolVar")); - check(TOKEN_STRING(js, tok[1], "true")); - - js = "\"boolVar\" : false"; - jsmn_init(&p); - r = jsmn_parse(&p, js, strlen(js), tok, 10); - check(r >= 0 && tok[0].type == JSMN_STRING - && tok[1].type == JSMN_PRIMITIVE); - check(TOKEN_STRING(js, tok[0], "boolVar")); - check(TOKEN_STRING(js, tok[1], "false")); - - js = "\"intVar\" : 12345"; - jsmn_init(&p); - r = jsmn_parse(&p, js, strlen(js), tok, 10); - check(r >= 0 && tok[0].type == JSMN_STRING - && tok[1].type == JSMN_PRIMITIVE); - check(TOKEN_STRING(js, tok[0], "intVar")); - check(TOKEN_STRING(js, tok[1], "12345")); - - js = "\"floatVar\" : 12.345"; - jsmn_init(&p); - r = jsmn_parse(&p, js, strlen(js), tok, 10); - check(r >= 0 && tok[0].type == JSMN_STRING - && tok[1].type == JSMN_PRIMITIVE); - check(TOKEN_STRING(js, tok[0], "floatVar")); - check(TOKEN_STRING(js, tok[1], "12.345")); - - js = "\"nullVar\" : null"; - jsmn_init(&p); - r = jsmn_parse(&p, js, strlen(js), tok, 10); - check(r >= 0 && tok[0].type == JSMN_STRING - && tok[1].type == JSMN_PRIMITIVE); - check(TOKEN_STRING(js, tok[0], "nullVar")); - check(TOKEN_STRING(js, tok[1], "null")); -#endif - return 0; -} - -int test_string() { - int r; - jsmn_parser p; - jsmntok_t tok[10]; - const char *js; - - js = "\"strVar\" : \"hello world\""; - jsmn_init(&p); - r = jsmn_parse(&p, js, strlen(js), tok, 10); - check(r >= 0 && tok[0].type == JSMN_STRING - && tok[1].type == JSMN_STRING); - check(TOKEN_STRING(js, tok[0], "strVar")); - check(TOKEN_STRING(js, tok[1], "hello world")); - - js = "\"strVar\" : \"escapes: \\/\\r\\n\\t\\b\\f\\\"\\\\\""; - jsmn_init(&p); - r = jsmn_parse(&p, js, strlen(js), tok, 10); - check(r >= 0 && tok[0].type == JSMN_STRING - && tok[1].type == JSMN_STRING); - check(TOKEN_STRING(js, tok[0], "strVar")); - check(TOKEN_STRING(js, tok[1], "escapes: \\/\\r\\n\\t\\b\\f\\\"\\\\")); - - js = "\"strVar\" : \"\""; - jsmn_init(&p); - r = jsmn_parse(&p, js, strlen(js), tok, 10); - check(r >= 0 && tok[0].type == JSMN_STRING - && tok[1].type == JSMN_STRING); - check(TOKEN_STRING(js, tok[0], "strVar")); - check(TOKEN_STRING(js, tok[1], "")); - - return 0; -} - -int test_partial_string() { - int r; - jsmn_parser p; - jsmntok_t tok[10]; - const char *js; - - jsmn_init(&p); - js = "\"x\": \"va"; - r = jsmn_parse(&p, js, strlen(js), tok, 10); - check(r == JSMN_ERROR_PART && tok[0].type == JSMN_STRING); - check(TOKEN_STRING(js, tok[0], "x")); - check(p.toknext == 1); - - jsmn_init(&p); - char js_slash[9] = "\"x\": \"va\\"; - r = jsmn_parse(&p, js_slash, sizeof(js_slash), tok, 10); - check(r == JSMN_ERROR_PART); - - jsmn_init(&p); - char js_unicode[10] = "\"x\": \"va\\u"; - r = jsmn_parse(&p, js_unicode, sizeof(js_unicode), tok, 10); - check(r == JSMN_ERROR_PART); - - js = "\"x\": \"valu"; - r = jsmn_parse(&p, js, strlen(js), tok, 10); - check(r == JSMN_ERROR_PART && tok[0].type == JSMN_STRING); - check(TOKEN_STRING(js, tok[0], "x")); - check(p.toknext == 1); - - js = "\"x\": \"value\""; - r = jsmn_parse(&p, js, strlen(js), tok, 10); - check(r >= 0 && tok[0].type == JSMN_STRING - && tok[1].type == JSMN_STRING); - check(TOKEN_STRING(js, tok[0], "x")); - check(TOKEN_STRING(js, tok[1], "value")); - - js = "\"x\": \"value\", \"y\": \"value y\""; - r = jsmn_parse(&p, js, strlen(js), tok, 10); - check(r >= 0 && tok[0].type == JSMN_STRING - && tok[1].type == JSMN_STRING && tok[2].type == JSMN_STRING - && tok[3].type == JSMN_STRING); - check(TOKEN_STRING(js, tok[0], "x")); - check(TOKEN_STRING(js, tok[1], "value")); - check(TOKEN_STRING(js, tok[2], "y")); - check(TOKEN_STRING(js, tok[3], "value y")); - - return 0; -} - -int test_unquoted_keys() { -#ifndef JSMN_STRICT - int r; - jsmn_parser p; - jsmntok_t tok[10]; - const char *js; - - jsmn_init(&p); - js = "key1: \"value\"\nkey2 : 123"; - - r = jsmn_parse(&p, js, strlen(js), tok, 10); - check(r >= 0 && tok[0].type == JSMN_PRIMITIVE - && tok[1].type == JSMN_STRING && tok[2].type == JSMN_PRIMITIVE - && tok[3].type == JSMN_PRIMITIVE); - check(TOKEN_STRING(js, tok[0], "key1")); - check(TOKEN_STRING(js, tok[1], "value")); - check(TOKEN_STRING(js, tok[2], "key2")); - check(TOKEN_STRING(js, tok[3], "123")); -#endif - return 0; -} - -int test_partial_array() { - int r; - jsmn_parser p; - jsmntok_t tok[10]; - const char *js; - - jsmn_init(&p); - js = " [ 1, true, "; - r = jsmn_parse(&p, js, strlen(js), tok, 10); - check(r == JSMN_ERROR_PART && tok[0].type == JSMN_ARRAY - && tok[1].type == JSMN_PRIMITIVE && tok[2].type == JSMN_PRIMITIVE); - - js = " [ 1, true, [123, \"hello"; - r = jsmn_parse(&p, js, strlen(js), tok, 10); - check(r == JSMN_ERROR_PART && tok[0].type == JSMN_ARRAY - && tok[1].type == JSMN_PRIMITIVE && tok[2].type == JSMN_PRIMITIVE - && tok[3].type == JSMN_ARRAY && tok[4].type == JSMN_PRIMITIVE); - - js = " [ 1, true, [123, \"hello\"]"; - r = jsmn_parse(&p, js, strlen(js), tok, 10); - check(r == JSMN_ERROR_PART && tok[0].type == JSMN_ARRAY - && tok[1].type == JSMN_PRIMITIVE && tok[2].type == JSMN_PRIMITIVE - && tok[3].type == JSMN_ARRAY && tok[4].type == JSMN_PRIMITIVE - && tok[5].type == JSMN_STRING); - /* check child nodes of the 2nd array */ - check(tok[3].size == 2); - - js = " [ 1, true, [123, \"hello\"]]"; - r = jsmn_parse(&p, js, strlen(js), tok, 10); - check(r >= 0 && tok[0].type == JSMN_ARRAY - && tok[1].type == JSMN_PRIMITIVE && tok[2].type == JSMN_PRIMITIVE - && tok[3].type == JSMN_ARRAY && tok[4].type == JSMN_PRIMITIVE - && tok[5].type == JSMN_STRING); - check(tok[3].size == 2); - check(tok[0].size == 3); - return 0; -} - -int test_array_nomem() { - int i; - int r; - jsmn_parser p; - jsmntok_t toksmall[10], toklarge[10]; - const char *js; - - js = " [ 1, true, [123, \"hello\"]]"; - - for (i = 0; i < 6; i++) { - jsmn_init(&p); - memset(toksmall, 0, sizeof(toksmall)); - memset(toklarge, 0, sizeof(toklarge)); - r = jsmn_parse(&p, js, strlen(js), toksmall, i); - check(r == JSMN_ERROR_NOMEM); - - memcpy(toklarge, toksmall, sizeof(toksmall)); - - r = jsmn_parse(&p, js, strlen(js), toklarge, 10); - check(r >= 0); - - check(toklarge[0].type == JSMN_ARRAY && toklarge[0].size == 3); - check(toklarge[3].type == JSMN_ARRAY && toklarge[3].size == 2); - } - return 0; -} - -int test_objects_arrays() { - int r; - jsmn_parser p; - jsmntok_t tokens[10]; - const char *js; - - js = "[10}"; - jsmn_init(&p); - r = jsmn_parse(&p, js, strlen(js), tokens, 10); - check(r == JSMN_ERROR_INVAL); - - js = "[10]"; - jsmn_init(&p); - r = jsmn_parse(&p, js, strlen(js), tokens, 10); - check(r >= 0); - - js = "{\"a\": 1]"; - jsmn_init(&p); - r = jsmn_parse(&p, js, strlen(js), tokens, 10); - check(r == JSMN_ERROR_INVAL); - - js = "{\"a\": 1}"; - jsmn_init(&p); - r = jsmn_parse(&p, js, strlen(js), tokens, 10); - check(r >= 0); - - return 0; -} - -int test_issue_22() { - int r; - jsmn_parser p; - jsmntok_t tokens[128]; - const char *js; - - js = "{ \"height\":10, \"layers\":[ { \"data\":[6,6], \"height\":10, " - "\"name\":\"Calque de Tile 1\", \"opacity\":1, \"type\":\"tilelayer\", " - "\"visible\":true, \"width\":10, \"x\":0, \"y\":0 }], " - "\"orientation\":\"orthogonal\", \"properties\": { }, \"tileheight\":32, " - "\"tilesets\":[ { \"firstgid\":1, \"image\":\"..\\/images\\/tiles.png\", " - "\"imageheight\":64, \"imagewidth\":160, \"margin\":0, \"name\":\"Tiles\", " - "\"properties\":{}, \"spacing\":0, \"tileheight\":32, \"tilewidth\":32 }], " - "\"tilewidth\":32, \"version\":1, \"width\":10 }"; - jsmn_init(&p); - r = jsmn_parse(&p, js, strlen(js), tokens, 128); - check(r >= 0); -#if 0 - for (i = 1; tokens[i].end < tokens[0].end; i++) { - if (tokens[i].type == JSMN_STRING || tokens[i].type == JSMN_PRIMITIVE) { - printf("%.*s\n", tokens[i].end - tokens[i].start, js + tokens[i].start); - } else if (tokens[i].type == JSMN_ARRAY) { - printf("[%d elems]\n", tokens[i].size); - } else if (tokens[i].type == JSMN_OBJECT) { - printf("{%d elems}\n", tokens[i].size); - } else { - TOKEN_PRINT(tokens[i]); - } - } -#endif - return 0; -} - -int test_unicode_characters() { - jsmn_parser p; - jsmntok_t tokens[10]; - const char *js; - - int r; - js = "{\"a\":\"\\uAbcD\"}"; - jsmn_init(&p); - r = jsmn_parse(&p, js, strlen(js), tokens, 10); - check(r >= 0); - - js = "{\"a\":\"str\\u0000\"}"; - jsmn_init(&p); - r = jsmn_parse(&p, js, strlen(js), tokens, 10); - check(r >= 0); - - js = "{\"a\":\"\\uFFFFstr\"}"; - jsmn_init(&p); - r = jsmn_parse(&p, js, strlen(js), tokens, 10); - check(r >= 0); - - js = "{\"a\":\"str\\uFFGFstr\"}"; - jsmn_init(&p); - r = jsmn_parse(&p, js, strlen(js), tokens, 10); - check(r == JSMN_ERROR_INVAL); - - js = "{\"a\":\"str\\u@FfF\"}"; - jsmn_init(&p); - r = jsmn_parse(&p, js, strlen(js), tokens, 10); - check(r == JSMN_ERROR_INVAL); - - js = "{\"a\":[\"\\u028\"]}"; - jsmn_init(&p); - r = jsmn_parse(&p, js, strlen(js), tokens, 10); - check(r == JSMN_ERROR_INVAL); - - js = "{\"a\":[\"\\u0280\"]}"; - jsmn_init(&p); - r = jsmn_parse(&p, js, strlen(js), tokens, 10); - check(r >= 0); - - return 0; -} - -int test_input_length() { - const char *js; - int r; - jsmn_parser p; - jsmntok_t tokens[10]; - - js = "{\"a\": 0}garbage"; - - jsmn_init(&p); - r = jsmn_parse(&p, js, 8, tokens, 10); - check(r == 3); - check(TOKEN_STRING(js, tokens[0], "{\"a\": 0}")); - check(TOKEN_STRING(js, tokens[1], "a")); - check(TOKEN_STRING(js, tokens[2], "0")); - - return 0; -} - -int test_count() { - jsmn_parser p; - const char *js; - - js = "{}"; - jsmn_init(&p); - check(jsmn_parse(&p, js, strlen(js), NULL, 0) == 1); - - js = "[]"; - jsmn_init(&p); - check(jsmn_parse(&p, js, strlen(js), NULL, 0) == 1); - - js = "[[]]"; - jsmn_init(&p); - check(jsmn_parse(&p, js, strlen(js), NULL, 0) == 2); - - js = "[[], []]"; - jsmn_init(&p); - check(jsmn_parse(&p, js, strlen(js), NULL, 0) == 3); - - js = "[[], []]"; - jsmn_init(&p); - check(jsmn_parse(&p, js, strlen(js), NULL, 0) == 3); - - js = "[[], [[]], [[], []]]"; - jsmn_init(&p); - check(jsmn_parse(&p, js, strlen(js), NULL, 0) == 7); - - js = "[\"a\", [[], []]]"; - jsmn_init(&p); - check(jsmn_parse(&p, js, strlen(js), NULL, 0) == 5); - - js = "[[], \"[], [[]]\", [[]]]"; - jsmn_init(&p); - check(jsmn_parse(&p, js, strlen(js), NULL, 0) == 5); - - js = "[1, 2, 3]"; - jsmn_init(&p); - check(jsmn_parse(&p, js, strlen(js), NULL, 0) == 4); - - js = "[1, 2, [3, \"a\"], null]"; - jsmn_init(&p); - check(jsmn_parse(&p, js, strlen(js), NULL, 0) == 7); - - return 0; -} - -int test_keyvalue() { - const char *js; - int r; - jsmn_parser p; - jsmntok_t tokens[10]; - - js = "{\"a\": 0, \"b\": \"c\"}"; - - jsmn_init(&p); - r = jsmn_parse(&p, js, strlen(js), tokens, 10); - check(r == 5); - check(tokens[0].size == 2); /* two keys */ - check(tokens[1].size == 1 && tokens[3].size == 1); /* one value per key */ - check(tokens[2].size == 0 && tokens[4].size == 0); /* values have zero size */ - - js = "{\"a\"\n0}"; - jsmn_init(&p); - r = jsmn_parse(&p, js, strlen(js), tokens, 10); - check(r == JSMN_ERROR_INVAL); - - js = "{\"a\", 0}"; - jsmn_init(&p); - r = jsmn_parse(&p, js, strlen(js), tokens, 10); - check(r == JSMN_ERROR_INVAL); - - js = "{\"a\": {2}}"; - jsmn_init(&p); - r = jsmn_parse(&p, js, strlen(js), tokens, 10); - check(r == JSMN_ERROR_INVAL); - - js = "{\"a\": {2: 3}}"; - jsmn_init(&p); - r = jsmn_parse(&p, js, strlen(js), tokens, 10); - check(r == JSMN_ERROR_INVAL); - - - js = "{\"a\": {\"a\": 2 3}}"; - jsmn_init(&p); - r = jsmn_parse(&p, js, strlen(js), tokens, 10); - check(r == JSMN_ERROR_INVAL); - return 0; -} - -/** A huge redefinition of everything to include jsmn in non-script mode */ -#define jsmn_init jsmn_init_nonstrict -#define jsmn_parse jsmn_parse_nonstrict -#define jsmn_parser jsmn_parser_nonstrict -#define jsmn_alloc_token jsmn_alloc_token_nonstrict -#define jsmn_fill_token jsmn_fill_token_nonstrict -#define jsmn_parse_primitive jsmn_parse_primitive_nonstrict -#define jsmn_parse_string jsmn_parse_string_nonstrict -#define jsmntype_t jsmntype_nonstrict_t -#define jsmnerr_t jsmnerr_nonstrict_t -#define jsmntok_t jsmntok_nonstrict_t -#define JSMN_PRIMITIVE JSMN_PRIMITIVE_NONSTRICT -#define JSMN_OBJECT JSMN_OBJECT_NONSTRICT -#define JSMN_ARRAY JSMN_ARRAY_NONSTRICT -#define JSMN_STRING JSMN_STRING_NONSTRICT -#define JSMN_ERROR_NOMEM JSMN_ERROR_NOMEM_NONSTRICT -#define JSMN_ERROR_INVAL JSMN_ERROR_INVAL_NONSTRICT -#define JSMN_ERROR_PART JSMN_ERROR_PART_NONSTRICT -#undef __JSMN_H_ -#undef JSMN_STRICT -#include "jsmn.c" - -int test_nonstrict() { - const char *js; - int r; - jsmn_parser p; - jsmntok_t tokens[10]; - - js = "a: 0garbage"; - - jsmn_init(&p); - r = jsmn_parse(&p, js, 4, tokens, 10); - check(r == 2); - check(TOKEN_STRING(js, tokens[0], "a")); - check(TOKEN_STRING(js, tokens[1], "0")); - - js = "Day : 26\nMonth : Sep\n\nYear: 12"; - jsmn_init(&p); - r = jsmn_parse(&p, js, strlen(js), tokens, 10); - check(r == 6); - return 0; -} - -int main() { - test(test_empty, "general test for a empty JSON objects/arrays"); - test(test_simple, "general test for a simple JSON string"); - test(test_primitive, "test primitive JSON data types"); - test(test_string, "test string JSON data types"); - test(test_partial_string, "test partial JSON string parsing"); - test(test_partial_array, "test partial array reading"); - test(test_array_nomem, "test array reading with a smaller number of tokens"); - test(test_unquoted_keys, "test unquoted keys (like in JavaScript)"); - test(test_objects_arrays, "test objects and arrays"); - test(test_unicode_characters, "test unicode characters"); - test(test_input_length, "test strings that are not null-terminated"); - test(test_issue_22, "test issue #22"); - test(test_count, "test tokens count estimation"); - test(test_nonstrict, "test for non-strict mode"); - test(test_keyvalue, "test for keys/values"); - printf("\nPASSED: %d\nFAILED: %d\n", test_passed, test_failed); - return 0; -} - diff --git a/test.map b/test.map index 762f5543..cd3b2ec7 100755 --- a/test.map +++ b/test.map @@ -1,7 +1,7 @@ Open Watcom Linker Version 2.0 beta Sep 21 2015 09:27:06 (32-bit) Copyright (c) 2002-2015 The Open Watcom Contributors. All Rights Reserved. Portions Copyright (c) 1985-2002 Sybase, Inc. All Rights Reserved. -Created on: 15/10/01 13:49:51 +Created on: 15/10/01 13:56:58 Executable Image: test.exe creating a DOS executable diff --git a/test2.map b/test2.map index 5560558e..5ed1cdf6 100755 --- a/test2.map +++ b/test2.map @@ -1,7 +1,7 @@ Open Watcom Linker Version 2.0 beta Sep 21 2015 09:27:06 (32-bit) Copyright (c) 2002-2015 The Open Watcom Contributors. All Rights Reserved. Portions Copyright (c) 1985-2002 Sybase, Inc. All Rights Reserved. -Created on: 15/10/01 13:49:51 +Created on: 15/10/01 13:56:58 Executable Image: test2.exe creating a DOS executable diff --git a/vgmtest.map b/vgmtest.map index 9473c94c..c04d0b0f 100755 --- a/vgmtest.map +++ b/vgmtest.map @@ -1,7 +1,7 @@ Open Watcom Linker Version 2.0 beta Sep 21 2015 09:27:06 (32-bit) Copyright (c) 2002-2015 The Open Watcom Contributors. All Rights Reserved. Portions Copyright (c) 1985-2002 Sybase, Inc. All Rights Reserved. -Created on: 15/10/01 13:49:51 +Created on: 15/10/01 13:56:58 Executable Image: vgmtest.exe creating a DOS executable -- 2.39.2