-
Notifications
You must be signed in to change notification settings - Fork 99
Expand file tree
/
Copy pathChangeLog
More file actions
8065 lines (5796 loc) · 322 KB
/
ChangeLog
File metadata and controls
8065 lines (5796 loc) · 322 KB
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
===============================================================================
The gnuplot code base moved from cvs to git in November 2017.
Use "git log" to track development after that point.
===============================================================================
2018-08-21 Ethan A Merritt <[email protected]>
* src/plot3d.c: Allow dgrid3d re-gridding to include palette color
information from a separate input data column, so long as the dgrid3d
option is not "splines".
2018-08-11 Ethan A Merritt <[email protected]>
* term/linux.trm term/vgagl.trm term/linux-vgagl.trm:
Remove linux and vgagl terminals and configuration option
--with-linux-vga. Add a place holder linux-vgagl.trm that provides a
documentation section recommending yaft + sixel graphics as an
alternative way to run gnuplot from the linux console.
2018-07-13 Ethan A Merritt <[email protected]>
* src/gp_types.h src/plot3d.c src/pm3d.c: Allow per-plot fillcolor
pm3d surfaces "splot ... with pm3d fillcolor <rgbvalue>".
2018-07-12 Ethan A Merritt <[email protected]>
* src/pm3d.c src/color.c: Remove undocumented EXPERIMENTAL option
PM3D_CONTOURS. There are serious problems with the approach such
that it is probably no useful as a starting point for coding
solid-fill contours.
2018-07-12 Ethan A Merritt <[email protected]>
* configure.ac src/color.c src/color.h src/pm3d.c:
Remove support for compile option EXTENDED_COLOR_SPECS.
This was used only by vgagl.trm but required maintaining a separate
code path for coloring pm3d quadrangles for all terminals. This
alternative code path did not know about new pm3d color options and
may no longer work at all. Removing the conditional code breaks
vgagl.trm, which can be fixed later.
2018-06-09 Ethan A Merritt <[email protected]>
* src/gadgets.c (draw_clip_arrow) term/lua.trm term/lua/gnuplot-tikz.lua
Some terminals that provide a private term->arrow function were
adversely affected by addition of flag HEADS_ONLY in commit ad80fe530.
This commit does two things.
1) It teaches the tikz terminal about HEADS_ONLY so that the short
vector variant works correctly.
2) The core routine draw_clip_arrow only uses the 2-step drawing process
for vectors that are short (for a rather ad hoc definition of "short").
2018-05-16 Miroslav Sulc <[email protected]>
* src/misc.c: Support ARGC/ARGV parameter convention for "call".
I.e. string variables ARG1 ARG2 ... are also accessible as
ARGV[1] ARGV[2] ... ARGV[ARGC].
2018-04-28 Ethan A Merritt <[email protected]>
* configure.ac src/term.h: ./configure --without-tektronix
to disable support for various 1970s/80s era terminal emulators.
Terminal types included (or not):
tek410x tek40 vttek xterm kc_tek40 km_tek40 selanar sixeltek bitgraph
Notes:
To actually include some of these it is also necessary to enable
the generic bitmap code:
./configure --with-tektronix --with-bitmap-terminals
Unless for some reason you really need to communicate using tektronix
terminal graphics protocol, the prefered option is to use a terminal
emulator that supports the vt100 series sixel graphics protocol and
select the sixelgd terminal in gnuplot. You do not need the tektronix
terminal code for this.
2018-04-16 Miroslav Sulc <[email protected]>
* src/internal.c (f_div cmplx_divide): Avoid overflow during complex
division (actually all floating point division).
Use formula 5.4.5 from Numerical Recipes 2nd Edition to prevent
avoidable overflow, underflow, and/or loss of precision.
E.g. the result of 1.e200/1.e200 is 1.0 rather than NaN, and
1/1.e200 is 1.e-200 rather than 0.
2018-04-15 Miroslav Sulc <[email protected]>
* src/eval.c src/specfun.c src/specfun.h:
Add function besin(n,x), modified Bessel function of order n for
integer n. The code is based on that for iv(v, x) as implemented in
scipy (from numpy). Accuracy was tested by comparing output from
scipy and gnuplot. The underlying function iv(v,x) accepts fractional v
but does not converge well for non-integer values. Thus besin(n,x)
limits the domain to integer n.
2018-04-06 Miroslav Sulc <[email protected]>
* src/eval.c src/standard.c src/standard.h:
Add functions besi0(x) besi1(x), modified Bessel functions of order
0 and 1. The code is adapted from the cephes library
http://www.netlib.org/cephes/index.html
claimed accuracy is 6e-16 for besi0() 2e-15 for besi1() using
IEEE double precision floating point.
2018-02-11 Marko Karjalainen <[email protected]>
* term/js/gnuplot_svg.js: Revise javascript support for mouse and
keyboard interaction with svg output
Mouse:
left click toggle mouse tracking, drag plot
right click reset mouse zoom and pan
wheel zoom/unzoom
Keyboard:
arrows (event may be stolen by browser)
+/- zoom/unzoom
Home reset mouse zoom and pan
# toggle grid
Keyboard events are not passed to elements included by <embed src=foo>.
Keyboard events must be forwarded separately to elements included by
<object data=foo>.
2018-02-08 Ethan A Merritt <[email protected]>
* term/svg.trm:
The combination "set term svg mousing background 'black'" set the
background to white instead.
2018-02-08 Bastian Maerkisch <[email protected]>
* src/win/winmain.c|h (main, WinOpenConsole)
term/caca.trm (CACA_init_display): Only try to set a console event
handler if a console is open. Otherwise the call would not succeed on
some Windows versions.
* term/caca.trm: Re-evaluate the console's codepage on every plot.
* term/caca.trm (CACA_text): libcaca seems to leave the Windows
console in wide character mode. This results in an extra space
printed with every character. We now explicitly reset text mode.
2018-02-08 Bastian Maerkisch <[email protected]>
* src/command.c src/datablock.c|h: This patch splits lines containing
newline characters into multiple lines when the target of a print
command is a datablock. That way we can e.g. get a datablock with
names of files on Windows:
set print $d; print system("dir /a-d /b *"); unset print;
print |$d|
Patch #754
2018-01-30 Ethan A Merritt <[email protected]>
* term/canvas.trm: Always apply term->set_color(), including optional
alpha channel, to both strokeStyle and fillStyle. This allows the
canvas terminal to honor RGBA colors for points and lines as well as
for area fill. Other terminals got this fix way back in version 4.6.
This change does not affect the javascript support routines so there
should be no backward-compatability issues.
Bug #2013
2018-01-26 Ethan A Merritt <[email protected]>
* src/eval.* src/internal.c src/plot.c src/set.c src/show.c
src/standard.c src/tables.* src/unset.c demo/overflow.dem:
Overflow handling for 64-bit integer arithmetic
Syntax:
set overflow {float | NaN | undefined}
unset overflow
Gnuplot now supports 64-bit integer arithmetic.
This means that for values from 2^53 to 2^63 (roughly 10^16 to 10^19)
integer evaluation preserves more precision than evaluation using
IEEE 754 floating point arithmetic. However unlike the IEEE floating
point representation, which sacrifices precision to span a total range
of roughly [-10^307 : 10^307], integer operations that result in values
outside the range [-2^63 : 2^63] overflow. The 'set overflow' command
lets you control what happens in case of overflow.
`set overflow` is the same as `set overflow float`. It causes the
result to be returned as a real number rather than as an integer.
This is the default.
The command `unset overflow` causes integer arithmetic overflow to be
ignored. No error is shown. You may want this if your platform allows
only 32-bit integer arithmetic and you want to approximate the behaviour
of gnuplot versions prior to 5.3.
The `reset` command does not affect the state of overflow handling.
Earlier gnuplot versions were limited to 32-bit arithmetic and ignored
integer overflow. Note, however, that some built-in operators did not
use integer arithemetic at all, even when given integer arguments. This
included the exponentiation operator N**M and the summation operator
(see `summation`). These operations now return an integer value when
given integer arguments, making them potentially susceptible to overflow
and thus affected by the state of `set overflow`.
set overflow float
------------------
If an integer arithmetic expression overflows the limiting range,
[-2^63 : 2^63] for 64-bit integers, the result is returned as a
floating point value instead. This is not treated as an error.
Example:
gnuplot> set overflow float
gnuplot> A = 2**62 - 1; print A, A+A, A+A+A
4611686018427387903 9223372036854775806 1.38350580552822e+19
set overflow NaN
----------------
If an integer arithmetic expression overflows the limiting range,
[-2^63 : 2^63] for 64-bit integers, the result is returned as NaN
(Not a Number). This is not treated as an error.
Example:
gnuplot> set overflow NaN
gnuplot> print 10**18, 10**19
1000000000000000000 NaN
set overflow undefined
----------------------
If an integer arithmetic expression overflows the limiting range,
[-2^63 : 2^63] for 64-bit integers, the result is undefined.
This is treated as an error.
2018-01-26 Ethan A Merritt <[email protected]>
* configure.ac src/datafile.c src/eval.* src/fit.c src/gp_types.h
src/internal.c src/misc.c src/parse.* src/save.c src/set.c src/show.c
src/standard.c src/stdfn.h src/syscfg.h src/util.c term/canvas.trm
term/svg.trm demo/int64.dem docs/gnuplot.doc:
Add support for 64-bit integer arithmetic
Add 64-bit integer support throughout gnuplot's internal expression
evaluation routines. All arithmetic and logical operations now use
64-bit arithmetic if the platform supports it. INTGR variables are now
typedef intgr_t, which is either int64_t (if the platform supports it)
or int.
Arithmetic operations on integers return INTGR if possible
(this is a CHANGE). E.g. The factorial operator returns an integer
when N! is sufficiently small (N <= 20 for 64-bit integers).
It returns a floating point approximation for larger values of N.
2018-01-11 Ulrich Müller <[email protected]>
* configure.ac src/term.h: Configuration option --with-regis
to include support for ReGIS terminal driver
2018-01-10 Ethan A Merritt <[email protected]>
* src/time.c (xstrftime) internal.c (f_strftime): Protect against
buffer overflow from user-supplied time format string. E.g.
print time(0,"%100tH%D")
Bug #2009
2018-01-05 Ethan A Merritt <[email protected]>
* src/history.c: If ./configure --disable-history-file or
--without-readline then do not try to build the routine that reads a
history file. Whether --without-readline should really disable
history is another question, but that is a configuration issue not a
compile issue.
Bug #2008
2017-12-29 Ethan A Merritt <[email protected]>
* src/gadgets.* src/graphics.c src/save.c src/set.c src/show.c
src/unset.c: New command "set clip radial" for polar plot with lines
Radial clipping to the bounding circle of a polar plot still depends on
the existing criteria "set clip {one|two}".
set polar; set rrange [0:RMAX]
set clip two; set clip radial
plot $FOO with lines
If two successive points in $FOO are outside the bounding circle
(R > RMAX) a clipped portion of the line between them will be drawn.
If 'unset clip two' no portion of this line will be drawn.
New routine draw_polar_clip_line() used for "plot ... with lines"
in polar mode. Other possible uses are polar plots with vectors,
impulses, polygons.
2017-12-28 Rin Okuyama <[email protected]>
* configure.ac src/readline.* src/term.c src/qtterminal/qt_term.cpp
src/wxterminal/wxt_gui.* term/x11.trm:
Gnuplot does not suspend immediately by Control-z when it is configured
--with-readline=gnu; suspension is triggered by a subsequent input
character.
When SIGTSTP is received, the signal handler of readline sets a flag
and just returns. Routines of readline check this flag to invoke the
real handler to suspend. Since we replace rl_getc_function by our own
routine to catch input from mouse, we should also check this flag to
invoke the real handler. Othewise, we cannot suspend until next time
routines of readline are used.
Unfortunately, there is no portable ways to invoke the real handler of
readline at the moment. We need to use its internal routine. libreadline
will implement a public function for this purpose in a future release.
EAM: Original patch included the wrapper code directly in x11.trm;
I moved it into a separate routine wrap_readline_signal_handler()
so that it can be shared by other gnuplot terminals.
Bug #2002
2017-12-26 Bastian Maerkisch <[email protected]>
* src/Makefile.am config/mingw/Makefile config/msvc/Makefile:
Generation of the timestamp relied on the latest date in the ChangeLog.
This may no longer be correct. Instead, we now query git for the last
commit date. Only works for development builds from a git checkout, but
for release builds the date is hard-coded in src/version.c.
2017-12-03 Bastian Maerkisch <[email protected]>
* .gitattributes: ChangeLogs are prone to merge errors. The GNU tool
git-merge-changelog has been developed to avoid that and is likely
available in most distributions. Caveat is that git committers now
need it to be installed and configured, see e.g.,
https://gnu.wildebeest.org/blog/mjw/2012/03/16/automagically-merging-changelog-files-with-mercurial-or-git/
2017-12-04 Bastian Maerkisch <[email protected]>
* term/caca.trm (CACA_text): Test for input redirection. Resolves
hang with slang/ncurses drivers in
gnuplot -e "load 'simple.dem'" < /bin/true
2017-12-03 Bastian Maerkisch <[email protected]>
* term/caca.trm: Add an emacs type modeline.
2017-11-25 Bastian Maerkisch <[email protected]>
* .gitattributes src/os2/4allterm.cmd: Enforce EOL style or treatment
as binary for certain file types.
2017-11-24 Bastian Maerkisch <[email protected]>
* term/caca.trm: The raw and null libcaca drivers don't do anything
useful for us. So don't include them in the list of available drivers
shown to the user.
* term/caca.trm: Various range and null pointer checks to avoid
segfaults when using the raw and null drivers. Still these won't
produce any useful output.
* term/caca.trm (CACA_init_display): On Windows, disable the
console's quick edit mode to directly enable mouse interaction.
* term/caca.trm (CACA_process_events): Failed to change internal
canvas size on window resize. Bugfix.
* term/caca.trm (CACA_waitforinput): Correct the check if the caca
driver window was closed. This bug would cause gnuplot to exit on
the first keypress after closing the window.
Bugfix.
* term/caca.trm: Simple bold / italic font support. libcaca supports
theses attributes currently only for ncurses, html, html3, bbfr, and
troff.
2017-11-15 Ethan A Merritt <[email protected]>
* src/gadgets.h src/graphics.c src/graphics.h src/set.c demo/3DBox.dem:
Trial implementation and demo for grid walls.
Each wall is a solid-fill areas that lies on the xy xz or yz plane in
a 3D plot. I.e. it is one side of the brick that bounds the plot volume.
Panels use neither pm3d nor hidden3d code. Instead they add a two-state
"layer" to polygon objects. For testing purposes this is activated by
"set object N polygon fb"
The intent should be clear from walls.dem. Spin the view around
and notice that the walls do not act like normal objects.
The intent is to control the properties (color, etc) of each wall
using the new command
set wall {x0|y0|z0|x1|y1} {<various properties>}
As of this version all you can do is set/unset them
2017-11-12 Dima Kogan <[email protected]>
* src/axis.c src/axis.h src/boundary.c src/gadgets.c src/gadgets.h
src/graph3d.c src/graph3d.h src/graphics.c src/util3d.c src/util3d.h:
Series of patches to track vector endpoints, and 3D coordinates in
general, keeping a floating point representation of terminal coordinates
rather than integer. This keeps sufficient precision for very short
vectors that the arrowhead can be drawn accurately even as the length
approaches zero. The routine draw_clip_arrow() becomes the one and only
caller of term->arrow(). All 2D and 3D vectors and arrows use it.
2017-11-12 Ethan A Merritt <[email protected]>
* src/gadgets.c (do_clip_arrow) src/gadgets.h src/term.c src/term_api.h:
Don't misuse the bitfield t_arrow_style by treating it as an integer.
Instead add bitflags HEADS_ONLY SHAFT_ONLY.
2017-11-11 Ethan A Merritt <[email protected]>
* term/post.trm term/pslatex.trm: The postscript terminals have had a
private routine PS_arrow that calls do_arrow() twice, once as-is and a
second time with linetype forced to solid. This was supposed to trigger
only if the terminal was in "dashed" mode, so that arrowheads were not
dashed. In version 5 the test doesn't work and so so the second call
was always made. Furthermore if the no-dashed-arrowheads restriction is
to be kept, all terminals need it. Remove PS_arrow() and shift the
postscript terminals back to using do_arrow().
2017-11-11 Hans-Bernhard Broeker <[email protected]>
* prepare (AUTOMAKE): Remove permission fix-up commands, in favour
of letting git handle this.
* missing, config/djconfig.sh: Set permissions to executable.
2017-11-08 Ethan A Merritt <[email protected]>
* src/set.c (set_logscale): If the axis is currently autoscaled and
the range limits still hold non-positive values from a previous state,
reset them to [0.1 : 10.].
2017-11-06 Ethan A Merritt <[email protected]>
* term/lua.trm term/lua/gnuplot-tikz.lua: Restore version information
(mangled during cvs->git conversion).
* demo/gnuplot.rot: Use version 5 syntax for iteration
* demo/label_stacked_histograms.dem: New demo from <[email protected]>
* demo/all.dem: Call new demo, skip [slow-ish] animation by default.
2017-11-06 Ethan A Merritt <[email protected]>
* src/getcolor.c src/getcolor.h src/save.c src/show.c src/tables.c
term/context.trm term/post.trm docs/gnuplot.doc demo/pm3dcolors.dem:
Remove vestigial implementation of YIQ colorspace.
The YIQ colorspace option for "set palette" was incorrectly implemented
back in the mists of time. E.g. the parsing code enforces color
component range [0:1] but YIQ coefficients can be negative; syntax for
"set palette defined" is incompatible with negative values; YIQ_2_RGB
uses incorrect transformation matrix. No user interface to YIQ_2_RGB
was provided. Thanks to Isao MORI <[email protected]> for pointing
out the various fundamental flaws.
2017-11-06 Ethan A Merritt <[email protected]>
* src/contour.c src/contour.h src/graph3d.c src/save.c src/set.c
src/show.c src/unset.c docs/gnuplot.doc demo/custom_contours.dem:
New options for customizing contour lines
set cntrparam {firstlinetype N} {{un}sorted}
The 'firstlinetype' option allows you to set linetype properties for
a block of linetypes, including dot-dash patterns, and then specify
that these customized linetypes be used to generate contour lines.
In this case you probably want to also use the other new keyword
'sorted' because by default contour lines are not generated in
consistent ascending order.
Bugs #1603 #1612
* src/graph3d.c (do_3dplot): It could be that you want contour lines to
opt out of hidden3d processing, e.g. because it messes up dashed lines.
Since the low-level routines that draw the contour line segments look
only at the global "hidden3d" flag, we must save/clear/restore this flag
if the individual plot is marked "nohidden" (plot->opt_out_of_hidden3d).
2017-11-06 Achim Gratz <[email protected]>
* configure.ac: The configury supposedly tried to find TEXDIR via
kpsexpand, but that code never gets run if $prefix is set.
2017-11-06 Ethan A Merritt <[email protected]>
* src/axis.c (gen_tics): `set log x; set xtics foo` would always place
the first axis tic at foo rather than at (foo / base^N) for suitable N.
* src/graphics.c (plot_betweencurves):
plot 'foo with filledcurves below y=bar
would fail to identify "below" regions where the y value of the
start or end data point was exactly (foo[x] == bar).
Bug #1983
2017-11-06 Bastian Maerkisch <[email protected]>
* src/win/winmain.c (ConsolePutS, ConsolePutCh): Use standard file IO
instead of Console API to enable word-wrapping on Windows 10 and to
allow for redirection of stdout/stderr.
Bug #1985
2017-11-06 Ethan A Merritt <[email protected]>
* term/post.trm: Raise the maximum number of relative moves before a
stroke so that a full circle as drawn by do_arc() does not glitch due
to insertion of a "stroke xx yy M" sequence that resets the dot/dash
pattern.
Bug #1987
2017-11-03 Ethan A Merritt <[email protected]>
* src/plot2d.c(eval_plots): Fix a regression.
Emply y range for logscale y errors out rather than auto-extending the
range with a warning. Extension can be handled by the same routine
used for linear axes.
Bug #1978
2017-11-02 Ethan A Merritt <[email protected]>
* docs/gnuplot.doc src/gadgets.c: Remove obsolete comments and trivial
typos. Add documentation section for piped input data.
2017-11-01 Ethan A Merritt <[email protected]>
* src/plot2d.c (histogram_range_fiddling): For stacked histograms,
autoscaling did not distinguish between 'set xrange [*:*]' and
'set xrange [explicit_min:*]', always resetting min to -1.
Bugfix
2017-10-30 Ethan A Merritt <[email protected]>
* src/gadgets.c (draw_clip_arrow): Do not call term->arrow() if the
entire arrow is out of range.
* src/graphics.c (plot_vectors): The code for 2D "plot with vectors"
is redundant. Replace the core of it with a call to draw_clip_arrow().
* src/boundary.c (do_key_sample): Illustrate revision of a
draw_clip_arrow() call site to use (double) rather than (int)
parameters. The only reason for this is to allow draw_clip_arrow()
itself to switch to (double) parameters if we decide that is useful,
e.g. to handle arrows with length approaching zero.
2017-10-13 Petr Mikulik <[email protected]>
* src/pm3d.c (pm3d_draw_one pm3d_plot): Move call of term->layer() with
TERM_LAYER_BEGIN_PM3D_MAP and TERM_LAYER_END_PM3D_MAP from pm3d_draw_one
to pm3d_plot in order to avoid insertion of line commands between the
%pm3d_map_begin and pm3d surface commands in the postscript file
which broke the pm3dCompress.awk and pm3dConvertToImage.awk scripts.
2017-10-11 Ethan A Merritt <[email protected]>
* src/axis.c (gen_tics): The start point for log-scale tic placement
could not lie outside the axis range (e.g. start at 1 for axis range
[5:50]). Remove this restriction. Still not perfect backwards
compatibility with log-scale tic placement in earlier versions.
2017-10-09 Ethan A Merritt <[email protected]>
* src/datafile.c (df_generate_pseudodata): The sample-generation code
failed to distinguish between nonlinear x2 (primary axis hidden) and
"set link x2 via f(x) inv g(x)" (primary axis x1).
Bug #1973
* src/graphics.h src/unset.c: We have an enum AXIS_INDEX. Use it.
(mostly to aid debugging; shouldn't affect code generation).
2017-10-08 Ethan A Merritt <[email protected]>
* src/axis.c (reconcile_linked_axes) src/axis.h src/plot2d.c:
gnuplot version 5.0 always tracked the autoscale range on the primary
axis (x1 or y1) of a linked pair, even if the data was actually plotted
on x2 or y2. In verison 5.2 we track the data range on x1 x2 y1 y2
separately. This caused breakage wherever the program assumed the
autoscale range on x1 (or y1) was always current. Worse, it would
propagate that range onto the secondary axis, possibly overwriting the
correct range. Now we introduce a new routine reconcile_linked_axes()
that merges the min/max values from e.g. x1 and x2 so that the
autoscaled range covers input data plotted on either axis.
Bug #1973
* demo/linked_autoscale.dem: Exercise the new code (fails on previous
gnuplot versions).
2017-10-06 Hans-Bernhard Broeker <[email protected]>
* src/command.c: Move WEXITSTATUS fall-back definition away from here.
* src/syscfg.h: Include <sys/wait.h>, if it exists.
(WEXITSTATUS): Provide fall-back definition, if none in
<sys/wait.h>. Move MS Windows specific replacement from command.c
to here.
* configure.ac: Add call to AC_HEADER_SYS_WAIT
2017-10-06 Bastian Maerkisch <[email protected]>
* config/mingw/Makefile: Add helpfiles to "all" target, including
the japanese version. Remove helpfile from default target.
* config/mingw/Makefile: Default to Mingw-w64 and Direct2D v1.1.
Note that building using Mingw32 currently does not work anyway
due to missing headers libraries for newer Windows APIs.
* config/mingw/Makefile: Add a note that secure APIs are required
(pointed out by Allin Cottrell on the mailing list).
* config/msvc/Makefile: Build and install support files for the
lua/tikz terminal.
src/win/wgnuplot.mnu: Add menu items to edit gnuplot.ini and
wgnuplot.ini to 'Help' menu.
2017-10-05 Bastian Maerkisch <[email protected]>
* src/win/wd2d.cpp: Enable color font support. This enables colored
emojis, which can be used e.g. as point symbols. Due to the default
font-fallback to "Segoe UI Emoji", this might lead to unexpected
results if a plot relied on non-colored character fallbacks.
2017-10-03 Ethan A Merritt <[email protected]>
* term/gd.trm: Report number of frames in completed animation sequence.
2017-10-01 Bastian Maerkisch <[email protected]>
* src/win/winmain.c|h src/command.c: For wgnuplot, open or attach to a
console when executing system commands so we can its the output. That
in my option eliminates the last benefit of wgnuplot_pipes over
wgnuplot. Note that the process terminates if the new console is
closed, just as is the case with wgnuplot_pipes, but the console is
only opened when actually required.
2017-09-29 Ethan A Merritt <[email protected]>
* src/axis.h src/axis.c (axis_set_scale_and_range): Incorrect use
of unsigned parameters caused terminal scaling to fail if the axis
range was inverted. The error was introduced by converting from a
macro to a subroutine in the run-up to 5.2.
* src/gadgets.h src/graphics.c src/misc.c src/plot2d.c src/set.c
src/tables.h: Rework parsing and handling of filledcurve options.
* src/command.c (array_command): Allow size of an array to be
determined automatically from the number of initializers. E.g.
array A = ["a","b","c"]
2017-09-25 Ethan A Merritt <[email protected]>
* src/plot2d.c: smoothing options csplines|acsplines|bezier|sbezier
failed to recheck inrange/outrange after smoothing. Example failure:
plot [0:4][4:0] '+' using 1:1 smooth bezier w lines
Bugfix
2017-09-23 Ethan A Merritt <[email protected]>
* src/axis.c (gen_tics) docs/gnuplot.doc demo/nonlinear6.dem:
Revise documentation of "set xtics" to include examples and description
of logscale keyword. Restore pre-5.2 behaviour that for log-scaled axes
the increment in "set xtics {start,} incr {,end}" is interpreted as a
multiplicative factor rather than a constant interval. However this is
only true if the "logscale" attribute is set for axis tics.
New demo nonlinear6.dem exercises this feature and also shows the use of
"set tics rangelimit" with log-scaled axes.
Bug #1971
* src/interpol.c (mcs_interp): The previous implementation of monotonic
cubic splines did not guarantee that the original points were included
in the set of generated points used to draw the resulting curve. This
meant that the curve might not pass through all points. Now we merge
the original points with the set of evenly sampled points.
Thanks to K Antal for identifying and demonstrating the problem.
Patch/Bug #1972
2017-09-21 Ethan A Merritt <[email protected]>
* term/cairo.trm (cairotrm_reset): Still trying to get this right.
2017-09-20 Ethan A Merritt <[email protected]>
* term/cairo.trm (cairotrm_reset): Revert change.
2017-09-19 Ethan A Merritt <[email protected]>
* term/cairo.trm (cairotrm_init cairotrm_reset): Valgrind complained
that calling cairo_destroy(plot.cr) on exit triggered multiple reads
of previously-freed data. It seems preferable to not call it on exit.
It does make sense to call it if the terminal has been closed and then
reopened. So we fix the ordering of code in cairotrm_init that
frees the old plot.cr before reinitializing a new one.
REVERT: This change caused some cairo installations to close pdf output
file without proper termination of the contents.
* src/parse.c (parse_array_assignment): Memory leak.
* src/interpol.c: Dead code.
* src/Makefile.am: Fix recipe for building qt embed_example
2017-09-18 Ethan A Merritt <[email protected]>
* src/datafile.c (f_columnhead df_set_key_title) src/datafile.h
src/eval.h src/parse.c (create_call_columnhead) src/parse.h
src/plot2d.h src/plot2d.c (reevaluate_plot_title) src/plot3d.c:
Defer evaluation of "plot ... title <string-expression>" until after
data is read in. This is important mostly for the case where the plot
title contains text taken from a data column header. We can now drop
an imperfect workaround that initially stored the title as
@COLUMNHEADXXXX@ and then later replaced the placeholder text with
the real column header text.
Bug #1968
* demo/columnhead.dem demo/html/*: Add a demo for the new capability.
2017-09-17 Ethan A Merritt <[email protected]>
* src/set.c (parse_label_options): Memory leak.
* src/graph3d.c src/plot3d.c: Initialize to prevent compilere warnings.
2017-09-15 Ethan A Merritt <[email protected]>
* src/plot2d.c src/plot3d.c: Starting in version 5, NaN and UNDEFINED
input data points count toward the total number of points read. This
caused the test for "no points read" to not terminate iterations of the
form "for [i=min:*] ..." on the first missing file or invalid spec.
To prevent runaway iteration we now test for "no INRANGE points read in".
* src/datafile.c (f_columnhead): columnhead(N) invoked inside a using
specifier now returns the actual column header.
See Bug #1968
2017-09-13 Ethan A Merritt <[email protected]>
* src/graphics.c src/graph3d.c: The "title at {beg|end|<position>}"
options were originally intended as an alternative to the normal key,
so preservation of the key layout was not a concern. This patch allows
you to mix custom-placed titles with in-key titles in the same plot.
Bug #1967
2017-09-11 Ethan A Merritt <[email protected]>
* src/graphics.c src/graphics.h src/set.c src/tables.c src/tables.h
src/unset.c src/show.c src/save.c demo/image2.dem docs/gnuplot.doc:
The default interpretation of RGB color components on input is that
they are integer values in the range [0:255]. This matches the
content of PNG and JPEG files. Since the interpretation of RGB color
components has been decoupled from the palette range limits controlled
by "set cbrange", data using some other RGB convention must be
rescaled. This patch introduces a new command `set rgbmax`.
The primary use is so that data using the convention that color
components are floating point values in the range [0:1] can be
plotted using
set rgbmax 1.0; plot 'imagedata' with rgbimage
* src/graphics.c (map_position_double): It is pointless to test for
logscale in the "else" clause of an "if" statement that handles
nonlinear axes.
2017-09-10 Ethan A Merritt <[email protected]>
* src/axis.c( gen_tics ) src/axis.h( reorder_if_necessary ):
New macro to reorder the min/max of axis ranges (but could be used
elsewhere). If the mapping function of linked axes inverts the
axis direction, tics were not being generated because min > max.
E.g. set link x2 via 100-x inv 100-x; set x2tics; plot [50:40] x
* src/axis.c (parse_range): Refactor parse_range() to handle
in-line ranges for linked or nonlinear axes.
Bug #1964
* src/graphics.c (plot_border) src/boundary.c (boundary):
Range-limited axes were not accounting for nonlinear or linked axes.
Space reserved for long axis tic labels made the same mistake.
Bug #1965
2017-09-05 Ethan A Merritt <[email protected]>
* src/axis.c src/axis.h src/datafile.c src/gp_time.h src/gp_types.h
src/internal.c src/time.c demo/timedat.dem docs/gnuplot.doc:
Gnuplot already supports relative time format specifiers %tH %tM %tS
for output via strftime() and in the time format for axis tic labels.
Now we add the same format specifiers as an option for input via
strptime(). They can also be used to read data fields containing
degrees/minutes/seconds.
2017-09-04 Dima Kogan <[email protected]>
* src/axis.c (clone_linked_axes): When sanity checking the via/inverse
mapping functions for linked or nonlinear axes, adjust the allowable
difference by a scale factor related to the axis range.
* configure.ac: Add $LIBRARIES_FOR_X to WX_LIBS so that it pickes
up -lX11 as required by wxgtk3
2017-09-04 Ethan A Merritt <[email protected]>
* src/set.c src/tables.c src/tables.h src/unset.c src/util.c
src/util.h src/show.c: Developer-only command "set debug <val>"
intended to facilitate A/B testing of new code. Trial code can be
wrapped in a test such as
if (debug > 0) { execute trial code }
2017-09-03 Daniel J Sebald <[email protected]>
* configure.ac: Use AC_MSG_RESULT rather than AC_MSG_WARN to report
which Qt version will be used.
2017-09-03 Ethan A Merritt <[email protected]>
* src/time.c (xstrftime): The variant format specs for time
%tH %tM did not behave as documented in that hours wrapped at 24 and
minutes at 60 if the decimal precision modifier was missing.
2017-09-02 Ethan A Merritt <[email protected]>
* src/axis.c (parse_range eval_link_function) docs/gnuplot.doc:
Attempt to handle the case of linked axes (x+x2 or y+y2) and an in-line
range specifier in the plot statement. This fix only addresses simple
cases, such as
set link x2; plot [x=min:max] something-using-x2 axes x2y1
Recommend to use separate "set xrange ... set yrange ..." instead.
2017-09-01 Bastian Maerkisch <[email protected]>
* src/win/winmain.c (ConsoleHandler): Install the console handler
also for wgnuplot and wgnuplot_pipes. Avoids segfaults when closing
the wgnuplot_pipes console window or the caca terminal console window.
2017-08-31 Martin Saturka <[email protected]>
* src/mousecmn.h src/mouse.c: Bind the < and > keys to change the
current azimuth setting while mousing 3D plots.
(EAM) add an internal flag "Opt-" so that you can bind a hotkey for
which the Alt and Ctrl modifiers are optional rather than required.
2017-08-28 Bastian Maerkisch <[email protected]>
* config/mingw/Makefile: Fix target name of generated dependencies
for pipe and console targets.
2017-08-24 Ethan A Merritt <[email protected]>
* src/axis.c src/axis.h src/graphics.c src/interpol.c src/plot2d.c
src/plot3d.c: Revise macro name STORE_WITH_LOG_AND_UPDATE_RANGE to
STORE_AND_UPDATE_RANGE since we no longer handle log scaling at the
time data is stored. Take this opportunity to remove an unused
parameter (OUT_ACTION) from the macro. Go back to using the same
macro for the COLOR_AXIS that we use for all other axes.
This is intended solely to make the code easier to understand;
there is no change in the code actually executed.
2017-08-23 Ethan A Merritt <[email protected]>
* src/plot2d.c (parametric_fixup): Consolidate redundant code blocks
handling the polar/cartesian paths through parametric function handling.
* src/plot2d.c (store2d_point): Consolidate identical case statements
for BOXPLOT, BOXES.
2017-08-22 Ethan A Merritt <[email protected]>
* src/grahics.c src/graphics.h (rgbscale) demo/image.dem:
Since cbrange is now decoupled from rgbimage, the image and image2 demos
need to change accordingly. Add a placeholder macro rgbscale(colorval)
that for now only enforces that color components are in [0:255] but
can later be replaced with an actual scaling routine.
2017-08-18 Ethan A Merritt <[email protected]>
* src/graphics.c (process_image): Limit alpha channel range to [0:255]
in "with rgbalpha pixels".
* src/axis.c src/datafile.c src/plot2d.c src/plot3d.c src/graphics.c
demo/sampling.dem docs/gnuplot.doc:
Allow explicit sampling interval in the range statements associated with
pseudofile '++' in both 2D and 3D. Example:
plot sample range [u=0:127][v=0:127] '++' using 1:2:(F(u,v)) with image
* src/tabulate.c: Handle splot with rgbimage, rgbalpha
2017-08-17 Dima Kogan <[email protected]>
* src/plot2d.c src/plot3d.c src/graphics.c (process_image):
Do not apply cbrange to rgbimage data. Do not use rgbimage range to
autoscale cbrange. For now this means that rgbimage color components
must be in the range [0:255], as they are for png, jpeg, etc. Later
we may add an autoscaling option for user-supplied color values.
* term/x11.trm src/qtterminal/qt_term.cpp:
If the outboard driver cannot be started, point the user to
environmental variable GNUPLOT_DRIVER_DIR.
2017-08-16 Ethan A Merritt <[email protected]>
* src/datafile.c (df_open): Expand leading ~ in filename for binary data
files just as for text files.
* src/plot2d.c src/graph3d.c src/wxterminal/gp_cairo.c: Add harmless
initializations to silence compiler warnings.
2017-08-15 Bastian Maerkisch <[email protected]>
* src/msvc/Makefile: Eliminate the separate wrapper script for builds of
console mode gnuplot by passing the file appropriate extensions as
arguments to the script.
* src/win/wgraph.c src/win/wgdiplus.cpp: We intend to scale line widths
with resolution when printing, but we got that wrong due to confusion of
constants.
* src/win/wgraph.c (CopyPrint): Fix fallback from D2D to GDI+ for
printing.
2017-08-12 Bastian Maerkisch <[email protected]>
* config/mingw/Makefile: "Recursive make considered harmful". Up
until now we tried to reduce the number of rules by using recursive
make for the three different targets "windows", "pipes" and "console".
That broke parallel builds of the "all" target because of multiple
attempts to build the same file due to insufficient dependency rules.
Instead of fixing this, we now follow the same concept as the
MSVC and OpenWatcom Makefiles and implement three set of rules and
avoid recursive make altogether. This also allows us to implement
separate automatic dependency rules. gnuplot scripts are now always
executed using console mode gnuplot in order to see their output.
* config/config.oww: Update to version 5.3. In particular enable
boxed text and external functions and disable bitmap terminals by
default.
2017-08-11 Ethan A Merritt <[email protected]>
* src/parse.c (check_for_iteration): If some depth of a nested
iteration evaluates to an empty range, the evaluated limits of depths
below it are irrelevant and possibly invalid. Add a test to skip
evaluation at lower depthes in such a case.
Bug #1952
2017-08-10 Bastian Maerkisch <[email protected]>
* config/msvc/Makefile: Handle empty lines in cl wrapper script.
jom dislikes changing the directory in a rule twice, so spawn
a subshell when required. Automatically generate timestamp.h for
development builds.
2017-08-08 Ethan A Merritt <[email protected]>
* src/command.c src/parse.c src/plot2d.c demo/iterate.dem:
Revise recursive iteration algorithm to address problems with empty
ranges in a nested iteration. Add support for dynamic reevaluation of
the string in nested ranges using "for [s in <string-expression>]".
Bug #1952
2017-08-09 Bastian Maerkisch <[email protected]>
* config/msvc/Makefile: Automatically generate dependency rules.
Disabled by default since it slows down compilation. Enable with
DEPEND=1.
Patch #756
* config/msvc/Makefile: Improve compatibility with jom, the parallel
nmake like build utility, by adding a space after every backslash at
an end of line. Otherwise this would be treated as line continuation.
* config/msvc/Makefile (zip): Distinguish 32/64 bit builds.
2017-08-07 Ethan A Merritt <[email protected]>
* src/plot2d.c src/plot3d.c: Revert inadvertent change of 2017-03-31
that failed to call update_gpval_variables in "set table" mode.
Bug #1954
2017-08-07 Martin Beranek
* term/metapost.trm: Support for user-defined dashtypes.
2017-08-06 Bastian Maerkisch <[email protected]>
* src/stdfn.c|h src/win/wtext.c (ms_snprintf, ms_vsnprintf):
Starting with MSVC 2015 snprintf is finally C99 compliant.
2017-08-05 Ethan A Merritt <[email protected]>
* src/graph3d.c: "set key fixed" should be ignored in the case of
"set view map".
2017-08-05 Bastian Maerkisch <[email protected]>
* src/set.c (set_table): Implement "append" option for datablocks.
Bug #1951
* src/win/wd2d.cpp (d2dCreatePatternBrush): Scale pattern with
desktop DPI if not using a D2D 1.1 DeviceContext.
2017-08-04 Ethan A Merritt <[email protected]>
* src/plot3d.c: Update FIXMEs, comments, remove typos, add
initialization to avoid compiler warning (false positive).
2017-08-04 Hans-Bernhard Broeker <[email protected]>