-
Notifications
You must be signed in to change notification settings - Fork 3
/
ChangeLog
26037 lines (18267 loc) · 898 KB
/
ChangeLog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
2024-11-25 moko
* src/main/pa_exec.C: separated cmd_quote and exe_quote (related to
bug #1239)
2024-11-24 moko
* src/main/pa_exec.C: added cmd.exe specific
* tests/: 441.html, cat-windows.sh, cat.sh, results/441.processed:
tests for ^file::exec env and args tainting tests (related to bug
#1239)
* src/main/pa_exec.C: shell_quote added (partial fix for bug #1239)
* src/include/pa_config_includes.h: added recommendations for
libxslt.a and and libexslt.a compilation under cygwin
* tests/results/102.processed: $form:fields.value is now writable,
as $form:value (related to feature #1254)
* src/include/pa_config_includes.h: cigwin compilation fixes
2024-11-23 moko
* tests/httpd/site/run_server.sh: to simplify testing
* tests/httpd/: 030.txt, 031.curl, 040.txt, ok.log, run_tests.sh,
site/form.html: $form:files and $form:elements tests added, tests
with curl supported (related to feature #1254)
* src/: include/pa_symbols.h, main/pa_symbols.C, types/pa_vform.C,
types/pa_vform.h: $form:elements implemented, VForm::get_element
uses faster SYMBOLS_EQ, hashes no longer copied when using
$form:fields/tables/files/imap and can be edited (implements
feature #1254)
* src/main/pa_http.C: pa_send added to handle partial writes (fixes
bug #1261)
2024-11-17 moko
* tests/: 440.html, results/440.processed: tests for
^table.array[], offset restoration, iterators robust tests
(related to bug #1258, features #1259 and #1260)
* tests/: 439.html, results/439.processed: array and hash iterators
robust tests (related to feature #1260)
* src/: classes/array.C, classes/table.C, include/pa_array.h,
include/pa_table.h: Array_robust_iterator added and used in cases
where array can be modified during iteration (implements feature
#1260)
* src/classes/table.C: ^table.array[], ^table.array[column name],
^table.array{code} added (implements feature #1259)
2024-11-16 moko
* src/: classes/table.C, include/pa_table.h, main/pa_table.C: fixed
table current row restoration after exception and table changes
(fixes bug #1258)
2024-11-13 moko
* src/classes/table.C: minor optimization
* src/main/pa_string.C: \r added to default ^string.trim chars list
(https://www.parser.ru/forum/?id=86648)
2024-11-11 moko
* src/classes/classes.C: set_base commented
* src/classes/: classes.C, xdoc.C: cleanup after classes.awk
deleted
* src/classes/classes.vcproj: no more classes.awk and classes.inc
* src/classes/: Makefile.am, classes.awk: no more classes.awk and
classes.inc
* src/: classes/classes.C, classes/classes.awk, classes/classes.h,
main/pa_globals.C: classes.awk is useless, preparing to delete it
* src/classes/classes.h: temp fix
2024-11-10 moko
* src/: classes/date.C, classes/file.C, classes/image.C,
classes/op.C, main/pa_string.C: minor optimization
* src/: classes/date.C, classes/file.C, classes/image.C,
classes/op.C, main/pa_string.C: typo fixed
* src/: classes/classes.awk, classes/classes.h, classes/date.C,
classes/file.C, classes/image.C, classes/op.C,
main/pa_charsets.C, main/pa_string.C: singletones used to reduce
memory allocation befor main(). Only 3 allocations in chatsets
left (implements feature #1257)
* src/targets/: apache/mod_parser3_core.C, isapi/parser3isapi.C:
minor naming convention fix
* tests/: 437.html, 438.html, httpd/ok.log, httpd/site/029.html,
results/436.processed, results/437.processed,
results/438.processed: tests for @unhandled_exception processing
(related to feature #1256)
* src/: main/pa_request.C, targets/apache/mod_parser3_core.C,
targets/cgi/pa_sapi_info.h, targets/cgi/parser3.C,
targets/isapi/parser3isapi.C: Exceptions in @unhandled_exception
are now processed in request::core for correct logging and
reporting (feature #1256)
* src/: include/pa_sapi.h, main/pa_request.C,
targets/apache/mod_parser3_core.C, targets/cgi/parser3.C,
targets/isapi/parser3isapi.C: unhandled exception now called if
exception occures during $response:download processing (related
to bug #1255)
* etc/auto.p.in: better 404 error reporting
2024-11-09 moko
* src/main/pa_memory.C: more detailed usage comment
* src/main/pa_memory.C: usage commented
* src/main/pa_memory.C: minor cleanup
* src/types/: pa_varray.h, pa_vregex.h: warnings war
* tests/: 436.html, httpd/029.txt, httpd/ok.log,
httpd/site/029.html, results/436.processed: test for exception in
$response:download[] added
* src/targets/cgi/parser3.C: sync CGI mode behavior with httpd mode
and avoid exit status 1 on die
* tests/results/: 007.processed, 019.processed, 098.processed,
103.processed, 233.processed: windows headers matter for binary
files
* tests/httpd/ok.log: tests results updated as extra headers now
cleared on error (related to bug #1255)
* src/: include/pa_sapi.h, targets/apache/mod_parser3_core.C,
targets/cgi/pa_sapi_info.h, targets/cgi/parser3.C,
targets/isapi/parser3isapi.C: headers buffering to avoid extra
headers in errors, custom send_error in cgi/httpd mode to avoid
memory allocations (fixes bug #1255)
2024-11-07 moko
* tests/: 264.html, results/264.processed: tests updated to test
removal of only trailing empty arguments for backward
compatibility (related to feature #1252)
* src/classes/file.C: remove trailing empty arguments for backward
compatibility (related to feature #1252)
2024-11-05 moko
* src/targets/cgi/: pa_sapi_info.h, parser3.C: avoid GPF in very
low memory case, when static initialization failed even before
main() start
2024-11-04 moko
* configure, src/include/pa_config_auto.h.in,
src/include/pa_config_fixed.h: _locking no longer used
* configure.ac: _locking no longer used (related to bug #1231)
* src/main/pa_os.C: lock error fine-tuning (related to bug #1231)
* src/main/pa_os.C: lock errors tuning (related to bug #1231)
* src/lib/sdbm/: pa_file_io.C, pa-include/pa_file_io.h: remove
unused
* src/: lib/sdbm/pa_file_io.C, main/pa_common.C: errno should not
be used on locking errors (related to bug #1231)
* src/main/pa_os.C: GetLastError used as errno is not set (related
to bug #1231)
* src/main/pa_os.C: under windows _locking replaced with LockFileEx
allowing shared lock to work (fixes bug #1231)
* INSTALL: actualized, minor fixes
* etc/auto.p.in: default LIMITS added
* AUTHORS: links actualized
* src/: classes/array.C, classes/bool.C, classes/classes.C,
classes/classes.awk, classes/classes.h, classes/curl.C,
classes/date.C, classes/double.C, classes/file.C, classes/form.C,
classes/hash.C, classes/hashfile.C, classes/image.C,
classes/inet.C, classes/int.C, classes/json.C, classes/mail.C,
classes/math.C, classes/memcached.C, classes/memory.C,
classes/op.C, classes/reflection.C, classes/regex.C,
classes/response.C, classes/string.C, classes/table.C,
classes/void.C, classes/xdoc.C, classes/xnode.C, classes/xnode.h,
include/pa_array.h, include/pa_base64.h,
include/pa_cache_managers.h, include/pa_charset.h,
include/pa_charsets.h, include/pa_common.h,
include/pa_config_fixed.h, include/pa_config_includes.h,
include/pa_dictionary.h, include/pa_dir.h,
include/pa_exception.h, include/pa_exec.h, include/pa_globals.h,
include/pa_hash.h, include/pa_http.h, include/pa_memory.h,
include/pa_opcode.h, include/pa_operation.h, include/pa_os.h,
include/pa_pool.h, include/pa_random.h, include/pa_request.h,
include/pa_request_charsets.h, include/pa_request_info.h,
include/pa_sapi.h, include/pa_socks.h,
include/pa_sql_connection.h, include/pa_sql_driver_manager.h,
include/pa_stack.h, include/pa_string.h,
include/pa_stylesheet_connection.h,
include/pa_stylesheet_manager.h, include/pa_symbols.h,
include/pa_table.h, include/pa_threads.h, include/pa_types.h,
include/pa_uue.h, include/pa_xml_exception.h,
include/pa_xml_io.h, lib/gd/gif.C, lib/gd/gif.h, lib/gd/gifio.C,
lib/md5/pa_md5.h, lib/md5/pa_md5c.c,
lib/memcached/pa_memcached.C, lib/memcached/pa_memcached.h,
lib/punycode/pa_idna.c, lib/punycode/pa_idna.h,
lib/sdbm/pa_file_io.C, lib/sdbm/pa_strings.C, lib/smtp/comms.C,
lib/smtp/smtp.C, lib/smtp/smtp.h, main/compile.C,
main/compile.tab.C, main/compile.y, main/compile_tools.C,
main/compile_tools.h, main/execute.C, main/pa_base64.C,
main/pa_cache_managers.C, main/pa_charset.C, main/pa_charsets.C,
main/pa_common.C, main/pa_dictionary.C, main/pa_dir.C,
main/pa_exception.C, main/pa_exec.C, main/pa_globals.C,
main/pa_http.C, main/pa_memory.C, main/pa_os.C, main/pa_pool.C,
main/pa_random.C, main/pa_request.C, main/pa_socks.C,
main/pa_sql_driver_manager.C, main/pa_string.C,
main/pa_stylesheet_connection.C, main/pa_stylesheet_manager.C,
main/pa_symbols.C, main/pa_table.C, main/pa_threads.C,
main/pa_uue.C, main/pa_xml_exception.C, main/pa_xml_io.C,
main/untaint.C, sql/pa_sql_driver.h,
targets/apache/mod_parser3.c, targets/apache/mod_parser3_core.C,
targets/apache/pa_httpd.h, targets/cgi/parser3.C,
targets/isapi/parser3isapi.C, types/pa_junction.h,
types/pa_method.h, types/pa_property.h, types/pa_value.C,
types/pa_value.h, types/pa_varray.C, types/pa_varray.h,
types/pa_vbool.h, types/pa_vcaller_wrapper.h, types/pa_vclass.C,
types/pa_vclass.h, types/pa_vcode_frame.h, types/pa_vconsole.h,
types/pa_vcookie.C, types/pa_vcookie.h, types/pa_vdate.C,
types/pa_vdate.h, types/pa_vdouble.h, types/pa_venv.C,
types/pa_venv.h, types/pa_vfile.C, types/pa_vfile.h,
types/pa_vform.C, types/pa_vform.h, types/pa_vhash.C,
types/pa_vhash.h, types/pa_vhashfile.C, types/pa_vhashfile.h,
types/pa_vimage.C, types/pa_vimage.h, types/pa_vint.h,
types/pa_vjunction.C, types/pa_vjunction.h, types/pa_vmail.C,
types/pa_vmail.h, types/pa_vmath.C, types/pa_vmath.h,
types/pa_vmemcached.C, types/pa_vmemcached.h, types/pa_vmemory.h,
types/pa_vmethod_frame.C, types/pa_vmethod_frame.h,
types/pa_vobject.C, types/pa_vobject.h, types/pa_vregex.C,
types/pa_vregex.h, types/pa_vrequest.C, types/pa_vrequest.h,
types/pa_vresponse.C, types/pa_vresponse.h,
types/pa_vstateless_class.C, types/pa_vstateless_class.h,
types/pa_vstateless_object.h, types/pa_vstatus.C,
types/pa_vstatus.h, types/pa_vstring.C, types/pa_vstring.h,
types/pa_vtable.C, types/pa_vtable.h, types/pa_vvoid.C,
types/pa_vvoid.h, types/pa_vxdoc.C, types/pa_vxdoc.h,
types/pa_vxnode.C, types/pa_vxnode.h, types/pa_wcontext.C,
types/pa_wcontext.h, types/pa_wwrapper.h: Copyright year updated
2024-10-28 moko
* src/classes/array.C: avoid invalidate()
* src/: classes/array.C, types/pa_varray.h: minor optimization for
fused to survive in ^array::copy[$a] (related to feature #930)
* src/types/pa_varray.h: minor optimization as last element is
allways defined if present
* tests/: 435.html, results/435.processed: tests for
^hash.set[first|last;value], ^hash.set([-+]index)[value] and same
for array added (related to feature #1253)
* src/classes/array.C: typo fixed
* src/classes/: array.C, hash.C: ^hash.set[first|last;value] +
^hash.set([-+]index)[value], and same for array added (implements
feature #1253)
* tests/results/: 246.processed, 298.processed, 342.processed,
389.processed, 397.processed, 430.processed, 432.processed: tests
results update after minor exceptions texts fixes
2024-10-27 moko
* src/: classes/array.C, classes/hash.C, classes/math.C,
classes/reflection.C, classes/string.C, classes/table.C,
main/pa_string.C, types/pa_varray.h, types/pa_vfile.C,
types/pa_vmethod_frame.h: handy as_index() added, several
exceptions texts fixed (related to feature #930)
* src/: classes/array.C, types/pa_varray.h: non-working
$array.fields removed, ^array.delete[index] supported (related to
feature #930)
* tests/: 431.html, results/431.processed: tests updated after
^a.delete[3] supported
* tests/: 431.html, 434.html, results/434.processed: tests for last
element used, push/pop, exceptions during arguments processing
and used caching (related to feature #930)
* src/: classes/array.C, types/pa_varray.h: change_used added for
better used caching and now no issues if exception occures during
append arguments processing (related to feature #930)
* src/: classes/array.C, types/pa_varray.h: ^array.push[] /
^array.pop[] added, last element is allways used (related to
feature #930)
2024-10-26 moko
* src/: classes/array.C, include/pa_array.h, types/pa_varray.C,
types/pa_varray.h: confirm_all_used added where possible (related
to feature #930)
* src/: classes/array.C, include/pa_array.h, types/pa_varray.h:
small array optimizations (related to feature #930)
* src/types/pa_varray.h: DEBUG_ARRAY_USED added to simplify testing
* tests/: 431.html, results/431.processed: test for
^array.compact[undef] added
* src/classes/array.C: ^array.compact[] now have optional 'undef'
argument to also compact undefined elements (related to feature
#930)
2024-10-24 moko
* src/: classes/array.C, types/pa_varray.C, types/pa_varray.h:
VArray::hash is used rarery, no longer caching the result
* tests/results/432.processed: testing removed from tests
2024-10-23 moko
* tests/: 431.html, results/431.processed: ^array.compact[] test
added
* src/: classes/array.C, types/pa_varray.h: ^array.compact[] added
* tests/: 432.html, results/432.processed: testing ^array.at[] for
both "solid" and "sparse" arrays
* src/classes/array.C: ^array.at[] speedup for "solid" arrays
2024-10-22 moko
* tests/results/264.processed: spelling
* src/classes/file.C: spelling
* tests/: 264.html, cat-windows.sh, cat.sh, results/264.processed:
tests updated after ^file::exec[cmd;;$array] implemented and
empty arguments not skipped (related to feature #1252)
* src/classes/file.C: ^file::exec[cmd;;$array] supported
(implements feature #1252) bugfix: empty arguments no longer
skipped
2024-10-21 moko
* tests/httpd/: 001.txt, 002.txt, 003.txt, 004.txt, 005.txt,
007.txt, 008.txt, 009.txt, 010.txt, 011.txt, 012.txt, 013.txt,
014.txt, 015.txt, 016.txt, 017.txt, 018.txt, 019.txt, 020.txt,
021.txt, 022.txt, 023.txt, 024.txt, 025.txt, 026.txt, 027.txt,
028.txt, 030.txt, ok.log, run_tests.sh, site/httpd.p,
site/index.html, site/test.txt: httpd tests added
2024-10-20 moko
* src/classes/string.C: warnings war
* src/: main/pa_string.C, classes/array.C: warnings war
* src/classes/json.C: warnings war
* src/classes/image.C: warnings war
* src/: classes/table.C, types/pa_varray.C: warnings war
* src/classes/array.C: warning war
* src/: classes/classes.vcproj, types/types.vcproj: vcproj: +=array
* src/main/main.vcproj: warnings war
2024-10-19 moko
* tests/427.html: test updated after constructors renamed
2024-10-18 moko
* tests/: 421.html, 430.html, 431.html, 432.html, 433.html,
results/421.processed, results/430.processed,
results/431.processed: test updated after constructors renamed
* src/classes/array.C: create -> copy, new -> create according to
https://www.parser.ru/forum/?id=86603 discussion (related to
feature #930)
2024-10-16 moko
* src/classes/json.C: $json:array[array or hash] added to provide
more backward compatibility (implements feature #1251)
2024-10-15 moko
* tests/: 421.html, results/421.processed: test results updated
after missing constuctor error check added and array is_index
check added
* src/main/execute.C: absent constructor message fixed
2024-10-13 moko
* src/types/pa_varray.h: ^array.$i[arg] is rare, thus checking i
with is_index() before calling index() for better error reporting
in method name typo (was invalid number, not method not found
exception).
2024-10-08 moko
* src/types/pa_varray.C: Visual Studio compatibilty issues fixed
* src/include/pa_array.h: warnings war
2024-10-05 moko
* src/classes/table.C: ^table.cells[] / ^table.cells(limit) added,
returns current row cells array (implements feature #1250)
* tests/: 405.html, results/169.processed, results/405.processed:
tests updated after ^string.split[;a] implemented (related to
feature #1249)
* src/classes/string.C: ^string.split[] - 'a' option added for
splitting into an array (implements feature #1249)
2024-10-04 moko
* tests/: 431.html, results/431.processed: final code coverage
array tests
* src/: classes/array.C, include/pa_array.h, types/pa_varray.h:
array: confirm_all_used() added and used where possible, expand()
now expends faster
2024-10-03 moko
* tests/: 357.html, results/auto.p: max_recoursion -> max_recursion
* tests/: 256.html, results/256.processed: test for
$.date[unix-timestamp] handling large dates
* src/: classes/file.C, classes/op.C, classes/reflection.C,
classes/string.C, classes/table.C, include/pa_common.h,
main/pa_common.C, main/pa_http.C, main/pa_request.C,
types/pa_vdate.C, types/pa_vmethod_frame.h, types/pa_vtable.C:
format replaced with pa_uitoa where applicable,
$.date[unix-timestamp] fixed for handling large dates
* tests/: 433.html, results/433.processed: more tests, including
test for possible endless recursion in ^o.GET[]
* src/types/pa_vobject.C: bugfix: detecting possible endless
recursion in get_scalar_value inside ^o.GET[]
* src/: classes/json.C, include/pa_request.h, main/execute.C,
main/pa_request.C, types/pa_value.h, types/pa_vmethod_frame.C:
Temp_recursion class added; spelling: $LIMITS.max_recoursion ->
$LIMITS.max_recursion
2024-10-02 moko
* tests/: 253.html, 287.html, 430.html, 431.html, 433.html,
results/253.processed, results/287.processed,
results/430.processed, results/433.processed: more tests for full
array and json code coverage
* tests/: 433.html, results/433.processed: tests for hash functions
with array param
* src/classes/: array.C, hash.C: ^hash::create[$array] optimized
* tests/: 432.html, results/432.processed: modified ^hash.at tests
in 246.html used to test ^array.at, same result produced
* tests/: 430.html, 431.html, results/430.processed,
results/431.processed: more array tests for 100% code coverage
(related to feature #930)
* tests/: 427.html, 430.html, results/427.processed,
results/430.processed: first portion of array tests added
(related to feature #930)
* src/classes/array.C: allow only whitespace string as argument for
add and join
* src/classes/array.C: add behavour for array synced with hash
2024-09-30 moko
* tests/: 429-sql.html, results/429-sql.processed: code coverage
tests added
* src/classes/array.C: $.distinct should not be used unless
$.sparse(true)
* tests/: 429-sql.html, results/388-sql.processed,
results/429-sql.processed: tests for ^array::sql{}, including
multi_statements mode (related to feature #930)
2024-09-29 moko
* src/classes/array.C: synced ^array::sql multi_statements logic
with ^hash::sql new behavour
2024-09-28 moko
* tests/: 428-sql.html, results/388-sql.processed,
results/428-sql.processed: tests updated after column names were
fixed in multi_statements mode (related to feature #1197)
* src/classes/hash.C: column names are fixed for most cases in
multi_statements mode (related to feature #1197)
* tests/: 428-sql.html, results/195.processed,
results/224.processed, results/239.processed,
results/254.processed, results/261.processed,
results/306.processed, results/333.processed,
results/341.processed, results/343.processed,
results/344.processed, results/348.processed,
results/364.processed, results/389.processed,
results/390.processed, results/415.processed,
results/420.processed, results/421.processed: tests results
updated after error messages spelling minor fixes
* src/types/: pa_value.h, pa_vstateless_class.h: a bit more
spelling
* src/: classes/curl.C, classes/file.C, classes/hash.C,
classes/image.C, classes/math.C, classes/string.C,
classes/table.C, lib/memcached/pa_memcached.C, main/compile.y,
main/execute.C, main/pa_charset.C, main/pa_common.C,
main/pa_http.C, main/pa_request.C, main/pa_socks.C,
main/pa_sql_driver_manager.C, types/pa_value.C, types/pa_value.h,
types/pa_vmail.C, types/pa_vobject.C,
types/pa_vstateless_class.C, types/pa_vstateless_class.h,
types/pa_vxdoc.C: minor error messages spelling fixes
* src/: classes/array.C, types/pa_varray.h: initial ^array::sql{}
implementation (related to feature #930)
* tests/: 388-sql.html, results/388-sql.processed: test results
updated after rows number ^file::sql{} check added
* src/classes/file.C: rows number now checked in ^file::sql{}
* tests/: 428-sql.html, results/428-sql.processed: more tests
* tests/: 428-sql.html, results/428-sql.processed: more
multi_statements testing before bugfix
* tests/: 388-sql.html, 428-sql.html, results/388-sql.processed,
results/428-sql.processed: support for multiple sql test files
added
* tests/: 388-sql.html, results/388-sql.processed: more sql testing
* src/classes/hash.C: more accurate one_bool_column processing
* tests/: 427.html, results/427.processed: Constructors as methods
behavour documented in test
* src/classes/hash.C: HashStringValue::Iterator used for options
* tests/: 388-sql.html, results/388-sql.processed: even more tests
* tests/: 388-sql.html, results/388-sql.processed: a bit more
testing
* tests/results/367-curl.processed: test result updated after
server charset changed
* tests/results/347-curl.processed: error messages updated
* tests/results/: 346-curl.processed, 379-curl.processed,
394-curl.processed: tests results updated after Type -> Exception
type replacement
* tests/results/388-sql.processed: tests result updated after Type
-> Exception type
2024-09-27 moko
* src/classes/hash.C: minor simplification
2024-09-24 moko
* src/main/pa_string.C: atoui error messages improved
* tests/: 165.html, 312.html, results/165.processed,
results/312.processed, results/379.processed: tests updated after
default endless loop limit increased, atoi error messages
improved
* src/classes/hash.C: VBool::get used, unification
2024-09-22 moko
* src/classes/array.C: minor simplification
* src/classes/array.C: ^array.left(N),
^array.right(N),^array.mid(P;N) added (related to feature #930)
* src/: classes/array.C, include/pa_request.h, main/pa_request.C,
types/pa_varray.C, types/pa_varray.h: $MAIN:LIMITS.max_array_size
added, default 1000000 (related to feature #930)
* tests/: 426.html, results/426.processed: test for negative limit
and offset processing for table options added
* src/: classes/table.C, include/pa_array.h, main/pa_table.C:
bugfix: negative limit and offset processing for table options
fixed
2024-09-21 moko
* src/: classes/array.C, types/pa_varray.h: join supports hash;
^for added that also iterates holes; ^remove added (related to
feature #930)
* src/classes/array.C: ^array.join[$another_array; $.limit(N)
$.offset(M) ] added (related to feature #930)
2024-09-20 moko
* src/: classes/array.C, types/pa_varray.h: array:
+foreach[value]{code}, + add[hash with numeric keys] (related to
feature #930)
2024-09-19 moko
* src/: include/pa_opcode.h, main/compile.y, main/compile_tools.h,
main/execute.C, types/pa_varray.h: OP_CONSTRUCT_ARRAY added to
support $a[v1;v2;...] syntax (related to feature #930)
2024-09-17 moko
* src/: classes/reflection.C, include/pa_request.h,
main/compile_tools.h, main/pa_request.C:
^reflection:class_alias[existing class name;alias class name]
added. The array class can now be redefined regardless of the
$.replace(bool) option value (related to feature #930)
* src/main/: compile.y, compile_tools.h: class_add return value
inverted to add it to request class
* src/: classes/array.C, include/pa_array.h, include/pa_request.h,
include/pa_stack.h, types/pa_varray.C, types/pa_varray.h,
types/pa_vmethod_frame.h: array: fused -> fsize, fit(index) to
resize if required. spared array - added fused, append.
2024-09-16 moko
* src/types/pa_varray.h: get moved to where it belongs
2024-09-15 moko
* src/: include/pa_array.h, types/pa_varray.h: more agressive
expansion to minimize reallocs: fallocated/32 -> fallocated/4
* tests/: 421.html, results/323.processed, results/421.processed:
tests updated after 'spared-array' class renamed to 'array'
following a discussion on the forum (related to feature #930)
* src/: include/pa_array.h, types/pa_value.h, types/pa_varray.h,
types/pa_vmail.C: initial SparseArray separation from Array,
parser class now 'array'
2024-09-14 moko
* tests/: 030.html, results/030.processed: out of range expires
check added
* src/types/pa_vcookie.C: VDate range is narrower than gmtime, thus
checking expires time using VDate
2024-09-13 moko
* src/: classes/array.C, classes/curl.C, classes/date.C,
classes/file.C, classes/hash.C, classes/image.C, classes/json.C,
classes/memcached.C, classes/op.C, classes/regex.C,
classes/string.C, classes/xdoc.C, classes/xnode.C,
main/execute.C, main/pa_http.C, main/pa_request.C,
types/pa_value.C, types/pa_value.h, types/pa_vclass.C,
types/pa_vclass.h, types/pa_vcookie.C, types/pa_vhashfile.C,
types/pa_vmail.C, types/pa_vobject.C, types/pa_vobject.h,
types/pa_vxdoc.C, types/pa_vxdoc.h: optimization: Value::as()
removed as dynamic_cast is faster, Value::is() is still required
for is operator.
2024-09-12 moko
* src/: classes/file.C, classes/image.C, classes/reflection.C,
classes/table.C, classes/xnode.C, include/pa_array.h,
include/pa_string.h, main/pa_common.C, main/pa_request.C,
main/pa_string.C, targets/cgi/pa_sapi_info.h, types/pa_vform.C,
types/pa_vhash.h, types/pa_vtable.C, types/pa_vxnode.C: faster
templated pa_itoa/pa_uitoa added to work with any integer type,
String::Body::Format removed
2024-09-10 moko
* src/classes/array.C: append and insert methods added to
sparse-array (related to feature #930)
* tests/: 253.html, 255.html, 421.html, results/421.processed:
tests updated after sparse-array was added to avoid ^json:parse[]
using it in old tests (related to feature #930)
* src/: classes/array.C, classes/json.C, types/pa_varray.C,
types/pa_varray.h: sparse-array class added (initial feature #930
implementation)
* src/: classes/Makefile.am, types/Makefile.am: Makefiles update
for sparse-array class files (related to feature #930)
* src/: classes/json.C, include/pa_array.h, types/pa_value.h,
types/pa_vhash.h: VArray support functions without actual VArray
files (related to feature #930)
2024-09-07 moko
* src/: classes/curl.C, classes/string.C, classes/table.C,
include/pa_array.h, main/execute.C, main/pa_dictionary.C,
main/pa_http.C, main/pa_sql_driver_manager.C,
main/pa_stylesheet_manager.C, main/pa_table.C, types/pa_vclass.C,
types/pa_vmethod_frame.C, types/pa_vstateless_class.C,
types/pa_vtable.C, types/pa_wcontext.C: Array::Iterator unified
with Hash::Iterator, has_next() replaced with operator bool
(related to feature #930)
* src/: classes/string.C, include/pa_array.h, main/pa_http.C,
main/pa_table.C, types/pa_vclass.C, types/pa_vmethod_frame.C,
types/pa_vstateless_class.C: Array class extended,
Array::Iterator added and used (related to feature #930)
2024-08-26 moko
* src/targets/cgi/parser3.C: under Windows back_slashes_to_slashes
should be used on argv[0] as well to match document root.
2024-08-25 moko
* src/main/pa_request.C: be more specific
* src/targets/cgi/parser3.C: parser3 t.html now behaves identically
to /usr/bin/parser3 t.html in terms of /etc/parser3/auto.p load
(fixes bug #1244)
* src/targets/cgi/parser3.C: avoid "parser allready configured"
exception when ./parser3.cgi <file> is used; rsplit(..., '/') ||
rsplit(..., '\\') is not correct when / and \ are mixed in path
* src/targets/cgi/parser3.C: full_disk_path now uses pa_strcat()
2024-07-24 moko
* src/: include/pa_config_includes.h, lib/gd/gifio.C,
main/execute.C, main/pa_string.C: Warning war: clang changed
-Wdeprecated-register warning to -Wregister, it's easier to
remove all register vars then continue this fight. :)
* src/main/: compile.y, compile.tab.C: warning war: register
removed
2024-07-14 moko
* src/targets/cgi/pa_sapi_info.h: When accessing $env:name,
checking the HTTP request environment; if the variable is not
present, checking the web server process environment (implements
feature #1242)
2024-05-26 moko
* tests/: 195.html, 229.html, results/096.processed,
results/097.processed, results/158.processed,
results/186.processed, results/273.processed,
results/293.processed, results/317.processed,
results/389.processed, results/402.processed: tests updated as
single quote now escaped with ' in HTML tainting mode
(related to feature #1241)
* src/main/untaint.C: single quote now escaped with ' in HTML
tainting mode (implements feature #1241)
* tests/results/: 020.processed, 021.processed, 026.processed,
042.processed, 043.processed, 057.processed, 110.processed,
115.processed, 116.processed, 117.processed, 118.processed,
119.processed, 120.processed, 125.processed, 126.processed,
128.processed, 130.processed, 131.processed, 132.processed,
133.processed, 135.processed, 136.processed, 138.processed,
139.processed, 140.processed, 145.processed, 150.processed,
151.processed, 165.processed, 174.processed, 181.processed,
182.processed, 192.processed, 193.processed, 201.processed,
213.processed, 224.processed, 226.processed, 230.processed,
239.processed, 240.processed, 244.processed, 253.processed,
254.processed, 261.processed, 264.processed, 269.processed,
274.processed, 275.processed, 288.processed, 294.processed,
296.processed, 303.processed, 306.processed, 307.processed,
308.processed, 311.processed, 312.processed, 314.processed,
315.processed, 316.processed, 320.processed, 323.processed,
324.processed, 325.processed, 328.processed, 330.processed,
332.processed, 333.processed, 337.processed, 338.processed,
341.processed, 342.processed, 343.processed, 344.processed,
345.processed, 348.processed, 352.processed, 356.processed,
357.processed, 363.processed, 364.processed, 368.processed,
372.processed, 373.processed, 376.processed, 378.processed,
379.processed, 385.processed, 386.processed, 387.processed,
389.processed, 390.processed, 395.processed, 397.processed,
398.processed, 399.processed, 404.processed, 406.processed,
413.processed, 414.processed, 420.processed, 421.processed,
424.processed, auto.p: Type -> Exception type for readability
* tests/: 119.html, 165.html, 175.html, 192.html, 213.html,
217.html, 230.html, 240.html, 298.html, 380.html, 415.html,
results/119.processed, results/165.processed,
results/175.processed, results/192.processed,
results/213.processed, results/217.processed,
results/230.processed, results/240.processed,
results/298.processed, results/380.processed,
results/415.processed: try-catch, try-catch-comment used
2024-05-21 moko
* tests/: 169.html, 180.html, 195.html, 224.html, 246.html,
results/180.processed, results/195.processed,
results/224.processed, results/auto.p: @try-catch-comment added
and used
* tests/: 175.html, 256.html, 269.html, 283.html, 341.html,
415.html, results/269.processed, results/283.processed,
results/auto.p: more tests are updated to prepare for apostrophe
escaping in HTML tainting
* tests/results/: 181.processed, 294.processed, 296.processed,
315.processed, 379.processed, 389.processed, auto.p:
$exception.comment printed as-is for whitespace reporting and to
prepare for apostrophe escaping in HTML mode
2024-05-11 moko
* tests/: 099.html, 100.html, results/099.processed,
results/100.processed: a test for non-UTF-8 filename* added
(related to feature #1240)
* tests/: 293.html, results/293.processed: tainting modes tests
added
* tests/results/: 099.processed, 100.processed, 205.processed,
309.processed, 310.processed, 419.processed: tests results
updated after filename* added (related to feature #1240)
* src/: include/pa_common.h, main/pa_request.C: The filename*
parameter was added to the Content-Disposition header to conform
with RFC 6266, with code provided by Sumo (implements feature
#1240)
2024-05-10 moko
* src/main/pa_http.C: Testing shows that TCP_NODELAY has no
positive performance effect in our case
2024-03-27 moko
* src/lib/pcre/pcre_internal.vcproj: pa_config_includes.h used
(related to feature #1236)
2024-03-15 moko
* tests/: 413.html, results/413.processed: test for object still
can be used as file parameter (related to bug #1218)
* src/types/: pa_vobject.C, pa_vobject.h: regression fix: object
still can be used in file context (fixes bug #1218)
2024-03-14 moko
* src/include/pa_string.h: ArrayString get() null result assert
also added (related to bug #1238)
* src/types/: pa_vstring.h, pa_vtable.C: VString() optimized;
VString::empty() used instead of new VString()
2024-03-12 moko
* tests/: 379-curl.html, 379.html, results/379-curl.processed,
results/379.processed: test added for cookie without value
(related to bug #1238)
* src/include/pa_string.h: In assertions enabled mode, ArrayString
values are now required to be non-null (related to bug #1238)
* src/main/pa_http.C: cookies without value are now parsed
correctly (fixed bug #1238)
2024-03-11 moko
* tests/run_parser.sh: for better error reporting
2023-12-30 moko
* tests/: 038.html, results/038.processed: test for atan2 added
2023-12-29 moko
* src/classes/math.C: atan2(y,x) math function added
2023-12-14 moko
* tests/212.html: pcre2 compatibility (related to feature #1236)
* tests/: 425.html, results/425.processed: test for pcre/pcre2
exceptions and behavour added (related to feature #1236)
2023-12-13 moko
* buildall: by default parser is now bundled with pcre2 10.42,
--without-pcre2 option added to build with pcre-8.45 (related to
feature #1236)
2023-12-12 moko
* configure.ac, src/include/pa_config_auto.h.in: pcre2 library
support added (implements feature #1236)
* src/: include/pa_charset.h, include/pa_config_includes.h,
lib/pcre/pa_pcre_internal.h, lib/pcre/pa_pcre_valid_utf8.c,
main/pa_common.C, main/pa_globals.C, types/pa_vregex.C,
types/pa_vregex.h: Adopted patch from Yavor Doganov
<yavor@gnu.org> to add pcre2 library support (implements feature
#1236)
2023-11-28 moko
* src/include/pa_config_includes.h: warnings war continues
* src/include/pa_config_includes.h: warning war
* tests/: 424.html, results/424.processed: tests for '+' and '-'
number strings, whitespace and sign in exception messages
(related to bug #1234)
2023-11-26 moko
* tests/: 274.html, results/224.processed, results/274.processed:
tests for date double, int, bool added (related to feature #1235)
* src/: classes/date.C, types/pa_vdate.h: double,int,bool methods
added for date class (implements feature #1235)
2023-11-23 moko
* src/: classes/math.C, include/pa_string.h, main/pa_string.C: '+'
and '-' strings are no longer can be treated as number 0,
exception thrown (fixes bug #1234)
2023-11-18 moko
* src/include/pa_types.h: minor
* src/include/pa_dir.h: MAXPATH in UTF-16 chars, not bytes
* tests/: 389.html, results/389.processed: error messages for some
OS differs a bit, reducing failing tests for them
2023-11-17 moko
* tests/: 423.html, results/423.processed: test for optional
@auto[] inheritance added (related to feature #1233)
* src/: include/pa_request.h, main/execute.C, main/pa_request.C,
types/pa_vstateless_class.C: optional @auto[] inheritance
implemented if defined with two args (path, class name)
(implements feature #1233)
* src/: classes/double.C, classes/int.C, classes/math.C,