Update to gnuplot-6.0.2

OBS-URL: https://build.opensuse.org/package/show/Publishing/gnuplot?expand=0&rev=169
This commit is contained in:
Dr. Werner Fink 2025-01-07 10:06:07 +00:00 committed by Git OBS Bridge
commit 0420ffc0a0
24 changed files with 5664 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -0,0 +1,23 @@
## Default LFS
*.7z filter=lfs diff=lfs merge=lfs -text
*.bsp filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.gem filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.lz filter=lfs diff=lfs merge=lfs -text
*.lzma filter=lfs diff=lfs merge=lfs -text
*.obscpio filter=lfs diff=lfs merge=lfs -text
*.oxt filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.rpm filter=lfs diff=lfs merge=lfs -text
*.tbz filter=lfs diff=lfs merge=lfs -text
*.tbz2 filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.txz filter=lfs diff=lfs merge=lfs -text
*.whl filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
.osc

3
Gnuplot6.pdf Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:547b8990f12ef68ccb2bdceaa42357b2924dae53d42d19e8ea62dab058696a7e
size 4041349

6
README.whynot Normal file
View File

@ -0,0 +1,6 @@
Why PDF support is not enabled:
===============================
Requires libpdf which is a commercial library and therefore not
part of SuSE LINUX. As a replacement the `pdfcairo' terminal
can be used to generate output in pdf.

3
_multibuild Normal file
View File

@ -0,0 +1,3 @@
<multibuild>
<package>doc</package>
</multibuild>

39
gnuplot-4.4.0-x11ovf.dif Normal file
View File

@ -0,0 +1,39 @@
---
src/gplt_x11.c | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)
--- src/gplt_x11.c
+++ src/gplt_x11.c 2020-07-17 07:29:52.061621215 +0000
@@ -955,6 +955,8 @@ mainloop()
nfds = cn + 1;
while (1) {
+ int ipc;
+
XFlush(dpy); /* see above */
FD_ZERO(&tset);
@@ -992,7 +994,11 @@ mainloop()
process_event(&xe);
}
}
- if ((X11_ipc = fopen(X11_ipcpath, "r"))) {
+
+ if ((ipc = open(X11_ipcpath, O_RDONLY|O_CREAT|O_CLOEXEC|O_EXCL)) < 0)
+ break;
+
+ if ((X11_ipc = dfopen(ipc, "r"))) {
unlink(X11_ipcpath);
record();
fclose(X11_ipc);
@@ -1224,8 +1230,8 @@ static int read_input(void);
static int
read_input()
{
- static int rdbuf_size = 10 * X11_COMMAND_BUFFER_LENGTH;
- static char rdbuf[10 * X11_COMMAND_BUFFER_LENGTH];
+ const int rdbuf_size = 10 * X11_COMMAND_BUFFER_LENGTH;
+ static char rdbuf[(10 * X11_COMMAND_BUFFER_LENGTH)+1];
static int total_chars;
static int rdbuf_offset;
static int buf_offset;

133
gnuplot-4.6.0-demo.diff Normal file
View File

@ -0,0 +1,133 @@
---
demo/fit.dem | 4 ++++
demo/poldat.dem | 2 +-
demo/simple.dem | 3 +--
src/loadpath.c | 21 +++++++++++++++++++++
src/show.c | 9 +++++++++
5 files changed, 36 insertions(+), 3 deletions(-)
--- demo/fit.dem
+++ demo/fit.dem 2020-07-17 07:25:00.022670914 +0000
@@ -6,6 +6,7 @@ set dummy x, y
print "Some examples how data fitting using nonlinear least squares fit can be done."
print ''
+logfile = "`mktemp /tmp/fit.log.XXXXXX`"
print "We fit a straight line to the data -- only as a demo without physical meaning."
l(x) = y0 + m*x
@@ -25,6 +26,7 @@ set title 'data set and initial paramete
plot 'lcdemo.dat', l(x)
pause -1 "Now start fitting... (-> return)"
+set fit logfile logfile
fit l(x) 'lcdemo.dat' via y0, m
set title 'unweighted fit'
plot 'lcdemo.dat', l(x)
@@ -320,6 +322,7 @@ print ' "fit3.dat" u 1:2:3:4 via a0,
pause -1 "Press enter to proceed with the next example."
reset
+set fit logfile logfile
print "\n"
print "The fit command can handle errors in the independent variable, too."
print "The problem shown here is Pearson's data with York's weights.\n"
@@ -425,6 +428,7 @@ print "to time."
print ''
pause -1 "Done with fitting demo (-> return)"
reset
+set fit logfile logfile
set encoding myencoding
# release datablock
undefine $PearsonYork
--- demo/poldat.dem
+++ demo/poldat.dem 2020-07-17 07:25:00.022670914 +0000
@@ -7,7 +7,7 @@ unset grid
unset polar
set title "Primitive Smith Chart"
unset key
-set xlabel "Impedance or Admittance Coordinates"
+set xlabel "Impedance or Admittance Coordinates" offset 12,-1
set para
set rrange [-0 : 10]
set trange [-pi : pi]
--- demo/simple.dem
+++ demo/simple.dem 2020-07-17 07:25:00.022670914 +0000
@@ -5,14 +5,13 @@
#
set title "Simple Plots" font ",20"
set key left box
-set samples 50
+set samples 400
set style data points
plot [-10:10] sin(x),atan(x),cos(atan(x))
pause -1 "Hit return to continue"
set key right nobox
-set samples 100
plot [-pi/2:pi] cos(x),-(sin(x) > sin(x+1) ? sin(x) : sin(x+1))
pause -1 "Hit return to continue"
--- src/loadpath.c
+++ src/loadpath.c 2024-01-08 09:15:14.362384507 +0000
@@ -31,6 +31,10 @@
]*/
#include <string.h>
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <unistd.h>
#include "loadpath.h"
#include "alloc.h"
@@ -72,6 +76,18 @@ init_loadpath()
if (!loadpath)
{
char *envlib = getenv("GNUPLOT_LIB");
+#ifdef GNUPLOT_LIB_DEFAULT
+ char *defenvlib = (char*)0;
+ struct stat st;
+ if ((stat(GNUPLOT_LIB_DEFAULT, &st) == 0) && S_ISDIR(st.st_mode)) {
+ if (envlib) {
+ if (asprintf(&defenvlib, "%s:%s", envlib, GNUPLOT_LIB_DEFAULT) > 0)
+ envlib = defenvlib;
+ } else
+ envlib = GNUPLOT_LIB_DEFAULT;
+ }
+#endif /* GNUPLOT_LIB_DEFAULT */
+
if (envlib) {
int len = strlen(envlib);
loadpath = gp_strdup(envlib);
@@ -81,6 +97,11 @@ init_loadpath()
PATHSEP_TO_NUL(loadpath);
}
/* else: NULL = empty */
+#ifdef GNUPLOT_LIB_DEFAULT
+ if (defenvlib)
+ free(defenvlib);
+#endif /* GNUPLOT_LIB_DEFAULT */
+
}
/* point to env portion of loadpath */
envptr = loadpath;
--- src/show.c
+++ src/show.c 2020-07-17 07:25:00.022670914 +0000
@@ -1139,6 +1139,15 @@ show_version(FILE *fp)
p /* type "help seeking-assistance" */
);
+#ifdef GNUPLOT_LIB_DEFAULT
+ {
+ struct stat st;
+ if ((stat(GNUPLOT_LIB_DEFAULT, &st) == 0) && S_ISDIR(st.st_mode)) {
+ fprintf(fp, "%s\n%s\tType `load \"all.dem\"` to display a large number of examples.", p, p);
+ fprintf(fp, "\n%s\tThey are located at %s/*\n%s\n", p, GNUPLOT_LIB_DEFAULT, p);
+ }
+ }
+#endif
/* show version long */
if (almost_equals(c_token, "l$ong")) {

87
gnuplot-4.6.0-fonts.diff Normal file
View File

@ -0,0 +1,87 @@
---
src/gplt_x11.c | 33 +++++++++++++++++++++++++++------
1 file changed, 27 insertions(+), 6 deletions(-)
--- src/gplt_x11.c
+++ src/gplt_x11.c 2020-07-17 07:20:04.523781257 +0000
@@ -99,15 +99,16 @@
* patches by Masahito Yamaga <ma@yama-ga.com>
*/
+#ifndef _GNU_SOURCE
+#define _GNU_SOURCE
+#endif
+#include <string.h>
#include <X11/Xos.h>
#include <X11/Xlib.h>
#include <X11/Xresource.h>
#include <X11/Xutil.h>
#include <X11/Xatom.h>
#include <X11/keysym.h>
-#ifdef USE_X11_MULTIBYTE
-# include <X11/Xlocale.h>
-#endif
#include <X11/XKBlib.h> /* for XkbKeycodeToKeysym */
#include <assert.h>
@@ -118,6 +119,12 @@
#include "gplt_x11.h"
#include "version.h"
+#ifdef USE_X11_MULTIBYTE
+# include <locale.h>
+# include <langinfo.h>
+# include <X11/Xlocale.h>
+#endif
+
#ifdef EXPORT_SELECTION
# undef EXPORT_SELECTION
#endif /* EXPORT SELECTION */
@@ -522,8 +529,8 @@ static char *gpFallbackFont(void);
static int gpXGetFontascent(XFontStruct *cfont);
enum set_encoding_id encoding = S_ENC_DEFAULT; /* EAM - mirrored from core code by 'QE' */
-static char default_font[196] = { '\0' };
-static char default_encoding[16] = { '\0' };
+static char default_font[256] = { '\0' };
+static char default_encoding[64] = { '\0' };
#define Nwidths 10
static unsigned int widths[Nwidths] = { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
@@ -2290,6 +2297,8 @@ exec_cmd(plot_struct *plot, char *comman
/* Save the request default font */
c = &(buffer[strlen(buffer)-1]);
while (*c <= ' ') *c-- = '\0';
+ if (strlen(&buffer[2]) == 0)
+ break;
strncpy(default_font, &buffer[2], sizeof(default_font)-1);
FPRINTF((stderr, "gnuplot_x11: exec_cmd() set default_font to \"%s\"\n", default_font));
break;
@@ -5810,7 +5819,7 @@ XFontStruct *gpXLoadQueryFont (Display *
}
#else
if (first_time) {
- fprintf(stderr,"gnuplot_x11: Some character sets not available\n");
+ FPRINTF(("gnuplot_x11: Some character sets not available\n"));
first_time = FALSE;
}
while (n_miss-- > 0)
@@ -5962,6 +5971,18 @@ char *fontname;
}
#ifdef USE_X11_MULTIBYTE
+ if ((!fontname || !(*fontname)) && multibyte_fonts_usable) {
+ const char * codeset = nl_langinfo(CODESET);
+ if (strcasestr(codeset, "UTF-8")) {
+ const char* utf8 = "mbfont:-*-sazanami*mincho-medium-r-normal--16-* \
+-*-mincho-medium-r-normal--16-*,-*-verdana-medium-r-normal--16-* \
+-*-dejavu*sans-medium-r-normal--16-*,-*-medium-r-normal--16-*";
+ strncpy(default_font, utf8, strlen(utf8)+1);
+ }
+ }
+#endif
+
+#ifdef USE_X11_MULTIBYTE
if (fontname && strncmp(fontname, "mbfont:", 7) == 0) {
if (multibyte_fonts_usable) {
usemultibyte = 1;

141
gnuplot-4.6.0.dif Normal file
View File

@ -0,0 +1,141 @@
---
gnuplot-6.0.0/configure.ac | 2 +-
gnuplot-6.0.0/docs/Makefile.am | 12 ++++++++----
gnuplot-6.0.0/src/gadgets.h | 2 +-
gnuplot-6.0.0/src/gplt_x11.c | 9 ++++++---
gnuplot-6.0.0/src/plot.c | 16 ++++++++++++++++
gnuplot-6.0.0/src/term.h | 6 +++---
6 files changed, 35 insertions(+), 12 deletions(-)
--- gnuplot-6.0.0/configure.ac
+++ gnuplot-6.0.0/configure.ac 2024-01-09 08:20:41.748328467 +0000
@@ -383,7 +383,7 @@ if test "$with_readline" != no; then
dnl check for terminal library
dnl this is a very cool solution from octave's configure.in
gp_tcap=""
- for termlib in ncurses curses termcap terminfo termlib; do
+ for termlib in tinfo ncurses curses termcap terminfo termlib; do
AC_CHECK_LIB(${termlib}, tputs, [gp_tcap="$gp_tcap -l$termlib"])
case "$gp_tcap" in
*-l${termlib}*)
--- gnuplot-6.0.0/docs/Makefile.am
+++ gnuplot-6.0.0/docs/Makefile.am 2024-01-08 10:32:22.372964142 +0000
@@ -29,7 +29,7 @@
#
# default is what is needed for interactive gnuplot
-gih_DATA = gnuplot.gih
+gih_DATA = gnuplot.gih gnuplot-fr.gih
gihdir = @GIHDIR@
noinst_PROGRAMS = checkdoc doc2ipf doc2tex doc2gih doc2hlp \
@@ -113,7 +113,7 @@ svg_figures html/*.html html/*.svg html/
webp_figures html/*.webp html/figure_mask.png \
psdoc/*.aux psdoc/*.dvi psdoc/*.log \
psdoc/ps_fontfile_doc.pdf psdoc/ps_fontfile_doc.ps psdoc/ps_symbols.ps \
-windows/*.png gnuplot.htb gnuplot.texi gnuplot-eldoc.el $(ELCS)
+windows/*.png gnuplot.htb gnuplot.texi gnuplot-eldoc.el $(ELCS) gnuplot-fr.gih
DISTFILES = $(DIST_COMMON) $(SOURCES) $(DOCHEADERS) $(EXTRA_DIST)
@@ -273,17 +273,21 @@ gnuplot.hlp: doc2hlp$(EXEEXT) $(srcdir)/
doc2hlp_SOURCES = doc2hlp.c termdoc.c
### gnuplot interactive help format
-gih: gnuplot.gih
+gih: gnuplot.gih gnuplot-fr.gih
gnuplot.gih: doc2gih$(EXEEXT) $(srcdir)/gnuplot.doc
$(AM_V_GEN)./doc2gih$(EXEEXT) $(srcdir)/gnuplot.doc gnuplot.gih
+gnuplot-fr.gih: doc2gih$(EXEEXT) $(srcdir)/gnuplot-fr.doc
+ $(AM_V_GEN)./doc2gih$(EXEEXT) $(srcdir)/gnuplot-fr.doc gnuplot-fr.gih
+
doc2gih_SOURCES = doc2gih.c termdoc.c
# To include all terminals in the .gih file
-allgih: alldoc2gih$(EXEEXT) $(srcdir)/gnuplot.doc
+allgih: alldoc2gih$(EXEEXT) $(srcdir)/gnuplot.doc $(srcdir)/gnuplot-fr.doc
@echo "generate gnuplot.gih with all terminals"
$(AM_V_at)./alldoc2gih$(EXEEXT) $(srcdir)/gnuplot.doc gnuplot.gih
+ $(AM_V_at)./alldoc2gih$(EXEEXT) $(srcdir)/gnuplot-fr.doc gnuplot-fr.gih
alldoc2gih_SOURCES = doc2gih.c termdoc.c
alldoc2gih_CPPFLAGS = -DALL_TERM_DOC $(AM_CPPFLAGS)
--- gnuplot-6.0.0/src/gadgets.h
+++ gnuplot-6.0.0/src/gadgets.h 2024-01-08 09:16:58.124450437 +0000
@@ -533,7 +533,7 @@ extern TBOOLEAN clip_lines2;
extern TBOOLEAN clip_points;
extern TBOOLEAN clip_radial;
-#define SAMPLES 100 /* default number of samples for a plot */
+#define SAMPLES 500 /* default number of samples for a plot */
extern int samples_1;
extern int samples_2;
--- gnuplot-6.0.0/src/gplt_x11.c
+++ gnuplot-6.0.0/src/gplt_x11.c 2024-01-08 09:16:58.124450437 +0000
@@ -2514,9 +2514,12 @@ exec_cmd(plot_struct *plot, char *comman
}
}
/* X11_justify_text(mode) - set text justification mode */
- else if (*buffer == 'J')
- sscanf(buffer, "J%d", (int *) &plot->jmode);
-
+ else if (*buffer == 'J') {
+ int jmode;
+ sscanf(buffer, "J%d", &jmode);
+ plot->jmode = jmode;
+ }
+
else if (*buffer == 'A')
sscanf(buffer + 1, "%lf", &plot->angle);
--- gnuplot-6.0.0/src/plot.c
+++ gnuplot-6.0.0/src/plot.c 2024-01-08 09:16:58.124450437 +0000
@@ -298,6 +298,22 @@ main(int argc_orig, char **argv)
rl_getc_function = getc_wrapper;
#endif
+#ifdef __linux__
+ if (!getenv("GNUHELP")) {
+ const char* msg = setlocale(LC_MESSAGES, NULL);
+ if (msg) {
+ char hfile[64];
+ struct stat buf;
+
+ sprintf(hfile, "/usr/share/gnuplot/%s/gnuplot-", gnuplot_version);
+ strncat(hfile, msg, 2);
+ strcat (hfile, ".gih");
+ if (stat(hfile, &buf) == 0)
+ setenv("GNUHELP", strdup(hfile), 0);
+ }
+ }
+#endif
+
#if defined(HAVE_LIBREADLINE)
/* T.Walter 1999-06-24: 'rl_readline_name' must be this fix name.
* It is used to parse a 'gnuplot' specific section in '~/.inputrc'
--- gnuplot-6.0.0/src/term.h
+++ gnuplot-6.0.0/src/term.h 2024-01-08 09:16:58.124450437 +0000
@@ -233,9 +233,9 @@
#include "emf.trm"
/* Roland DXY800A plotter */
-/* #include "dxy.trm" */
+#include "dxy.trm"
/* QMS/EXCL laserprinter (Talaris 1590 and others) */
-/* #include "excl.trm" */
+#include "excl.trm"
/* fig graphics */
#include "fig.trm"
@@ -268,7 +268,7 @@
/* #include "imagen.trm" */
/* Kyocera Prescribe printer */
-/* #include "kyo.trm" */
+#include "kyo.trm"
/* Frame Maker MIF 3.00 format driver */
#ifdef HAVE_MIF

View File

@ -0,0 +1,134 @@
--- gnuplot.texi
+++ gnuplot.texi 2024-01-09 09:29:57.128897341 +0000
@@ -13570,8 +13570,7 @@ but
@end example
See also
-@uref{http://www.gnuplot.info/demo/poldat.html,poldat.dem: polar plot using @ref{angles} demo.
-}
+@uref{http://www.gnuplot.info/demo/poldat.html,poldat.dem}: polar plot using @ref{angles} demo.
@node arrow, autoscale, angles, set-show
@subsection arrow
@@ -26079,15 +26078,12 @@ Syntax:
@{[no]enhanced@}
@end example
-@end itemizeif
@example
@{fillchar @{solid|"<char>"@}@}
@{[no]attributes@}
@{mono|ansi|ansi256|ansirgb@}
@end example
-@end itemizeif
-
where <xchars> and <ychars> set the size of the text block. The default is
79 by 24. The last newline is printed only if `feed` is enabled.
@@ -26129,8 +26125,6 @@ See also e.g. the description at
@uref{https://en.wikipedia.org/wiki/ANSI_escape_code#Colors,https://en.wikipedia.org/wiki/ANSI_escape_code#Colors
}
-@end itemizeif
-
The `attributes` option enables bold and italic text on terminals or
emulators that support the escape sequences
@example
@@ -26475,8 +26469,6 @@ Preferred combinations are `medium norma
With each of these drivers, a binary copy is required on a PC to print.
Do not use `print`---use instead `copy file /b lpt1:`.
-@end itemizeif
-
@node excl, fig, epson_180dpi, complete_list_of_terminals
@subsection excl
@@ -27170,8 +27162,6 @@ the environmental variable GNUPLOT_LUA_D
All arguments will be provided to the selected script for further
evaluation. E.g. 'set term lua tikz help' will cause the script itself
to print additional help on options and choices for the script.
-@end itemizeif
-
@node mf, mp, lua, complete_list_of_terminals
@subsection mf
@@ -27932,7 +27922,6 @@ terminals. It has no options."
@c ?term km-tek40xx
@cindex km-tek40xx
-@end itemizeif
@c ?commands set terminal selanar
@c ?set terminal selanar
@c ?set term selanar
@@ -27940,7 +27929,6 @@ terminals. It has no options."
@c ?term selanar
@cindex selanar
-@end itemizeif
@c ?commands set terminal sixeltek
@c ?set terminal sixeltek
@c ?set term sixeltek
@@ -27972,7 +27960,6 @@ For use with xterm, xterm must be compil
Note that gnuplot also supports another sixel output terminal, `sixelgd`,
that offers more options and features."
-@end itemizeif
@c ?commands set terminal bitgraph
@c ?set terminal bitgraph
@c ?set term bitgraph
@@ -27980,7 +27967,6 @@ that offers more options and features."
@c ?term bitgraph
@cindex bitgraph
-@end itemizeif
This family of terminal drivers supports a variety of VT-like terminals.
`tek40xx` supports Tektronix 4010 and others as well as most TEK emulators.
`vttek` supports VT-like tek40xx terminal emulators.
@@ -28517,7 +28503,6 @@ anti-aliasing, oversampling and full tra
deprecated.
The `GDI backend` which uses the classic GDI API is deprecated and has been
disabled in this version.
-@end itemizeif
`GDI+ backend` draws to the screen using the GDI+ Windows API. It supports
full antialiasing, oversampling, transparency and custom dash patterns.
@@ -28547,7 +28532,6 @@ of an additional redraw after releasing
`Line Styles...` allows customization of the line colors and styles.
-@end itemizeif
`Update wgnuplot.ini` saves the current window locations, window sizes, text
window font, text window font size, graph window font, graph window font
size, background color to the initialization file `wgnuplot.ini`.
@@ -28713,8 +28697,6 @@ This file is located in the user's appli
Line5=0 0 128 0 4
@end example
-@end itemizeif
-
@c ^ <h3>Text window options</h3>
These settings apply to the wgnuplot text-window only."
@@ -28751,7 +28733,6 @@ solid line in color mode, or a dashed li
line width is 1 pixel. If `Linestyle` is negative, it specifies the width of
a SOLID line in pixels. Line1 and any linestyle used with the `points` style
must be SOLID with unit width.
-@end itemizeif
See `graph-menu`."
@@ -29137,13 +29118,10 @@ later by `set term x11 [no]raise [no]per
`-ctrlq ` closes window on ctrl-q rather than q
@end example
-@end itemizeif
@example
`-persist` plot windows survive after main gnuplot program exits
@end example
-@end itemizeif
-
@cindex X resources
The options are shown above in their command-line syntax. When entered as

3
gnuplot-6.0.1.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e85a660c1a2a1808ff24f7e69981ffcbac66a45c9dcf711b65610b26ea71379a
size 7528936

3
gnuplot-6.0.2.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:f68a3b0bbb7bbbb437649674106d94522c00bf2f285cce0c19c3180b1ee7e738
size 7637308

48
gnuplot-PIE.patch Normal file
View File

@ -0,0 +1,48 @@
Index: gnuplot-5.4.1/src/Makefile.am
===================================================================
---
gnuplot-6.0.0/src/Makefile.am | 5 +++++
1 file changed, 5 insertions(+)
--- gnuplot-6.0.0/src/Makefile.am
+++ gnuplot-6.0.0/src/Makefile.am 2024-01-08 15:22:45.413763257 +0000
@@ -67,6 +67,7 @@ voxelgrid.c voxelgrid.h vplot.c vplot.h
watch.c watch.h xdg.c xdg.h
gnuplot_LDADD = $(TERMLIBS) $(TERMXLIBS) $(WX_LIBS) $(QT_LIBS)
+gnuplot_LDFLAGS = -pie
pkglibexec_PROGRAMS =
@@ -75,6 +76,7 @@ pkglibexec_PROGRAMS += gnuplot_x11
gnuplot_x11_SOURCES = gplt_x11.c gplt_x11.h gpexecute.c gpexecute.h mousecmn.h version.c version.h
XLIBS = @LIBRARIES_FOR_X@
gnuplot_x11_LDADD = getcolor_x11.o $(XLIBS)
+gnuplot_x11_LDFLAGS = -pie
endif
getcolor_x11.o: getcolor.c
@@ -102,6 +104,7 @@ $(EXTRA_gnuplot_SOURCES)
if BUILD_WXWIDGETS
gnuplot_SOURCES += wxterminal/wxt_gui.cpp
gnuplot_LDADD += -lX11
+gnuplot_LDFLAGS += -pie
endif
if BUILD_GPCAIRO
@@ -189,6 +192,7 @@ qtterminal/QtGnuplotApplication.cpp qtte
qtterminal/QtGnuplotScene.cpp qtterminal/QtGnuplotItems.cpp \
qtterminal/QtGnuplotEvent.cpp
gnuplot_qt_LDADD = $(QT_LIBS)
+gnuplot_qt_LDFLAGS = -pie
#
# embedded Qt widget example program
@@ -204,6 +208,7 @@ qt_embed_example_SOURCES = qtterminal/qt
qtterminal/QtGnuplotScene.cpp qtterminal/QtGnuplotItems.cpp \
qtterminal/QtGnuplotInstance.cpp
qt_embed_example_LDADD = $(QT_LIBS)
+qt_embed_example_LDFLAGS = -pie
endif # build_qt

18
gnuplot-QtCore-PIC.dif Normal file
View File

@ -0,0 +1,18 @@
Since QtCore is build with -reduce-relocations a -fPIC is required
---
src/Makefile.am | 3 +++
1 file changed, 3 insertions(+)
--- src/Makefile.am
+++ src/Makefile.am 2017-09-27 10:07:07.767840550 +0000
@@ -172,6 +172,9 @@ clean-local: clean-qt-extra clean-demo
gnuplot_SOURCES += qtterminal/qt_term.cpp
+qtterminal/%.$(OBJEXT): qtterminal/%.cpp
+ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -fPIC -c -o $@ $<
+
pkglibexec_PROGRAMS += gnuplot_qt
$(gnuplot_qt_OBJECTS) : ui_QtGnuplotSettings.h

1997
gnuplot-doc.changes Normal file

File diff suppressed because it is too large Load Diff

19
gnuplot-doc2tex.patch Normal file
View File

@ -0,0 +1,19 @@
Do not scan more characters we actual have.
---
docs/doc2tex.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
--- docs/doc2tex.c
+++ docs/doc2tex.c 2024-06-03 07:11:02.870049141 +0000
@@ -553,8 +553,9 @@ puttex( char *str, FILE *file)
(void) fputs("}", file);
inquote = FALSE;
} else {
+ size_t lmax = strlen(str);
(void) fputs("{\\bf ", file);
- for (i=0; i<MAX_LINE_LEN && ((c=str[i]) != '`') ; i++){
+ for (i=0; i<lmax && ((c=str[i]) != '`') ; i++){
string[i] = c;
}
string[i] = NUL;

BIN
gnuplot-fr.doc.bz2 (Stored with Git LFS) Normal file

Binary file not shown.

20
gnuplot-wx3.diff Normal file
View File

@ -0,0 +1,20 @@
From: Jan Engelhardt <jengelh@inai.de>
Date: 2015-03-22 15:21:46.000000000 +0100
gnuplot's wxt_gui.cpp (*not* wxWidgets) uses XInitThreads, but
the program does not link in X11 and runs into a build error
otherwise.
---
gnuplot-5.2.0/src/Makefile.am | 1 +
1 file changed, 1 insertion(+)
--- gnuplot-5.2.0/src/Makefile.am
+++ gnuplot-5.2.0/src/Makefile.am 2017-09-27 10:06:44.716255786 +0000
@@ -101,6 +101,7 @@ $(EXTRA_gnuplot_SOURCES)
if BUILD_WXWIDGETS
gnuplot_SOURCES += wxterminal/wxt_gui.cpp
+gnuplot_LDADD += -lX11
endif
if BUILD_GPCAIRO

1997
gnuplot.changes Normal file

File diff suppressed because it is too large Load Diff

304
gnuplot.spec Normal file
View File

@ -0,0 +1,304 @@
#
# spec file for package gnuplot
#
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
#################################################################
### Please call "./pre_checkin.sh" prior to submitting. ###
### (This will regenerate gnuplot-doc.changes) ###
#################################################################
%global flavor @BUILD_FLAVOR@%{nil}
%global sname gnuplot
%if "%{flavor}" == ""
%else
%global psuffix -%{flavor}
%endif
Name: gnuplot%{?psuffix}
BuildRequires: ImageMagick
BuildRequires: automake
BuildRequires: cairo-devel
BuildRequires: fdupes
BuildRequires: gcc-c++
BuildRequires: glib2-devel
BuildRequires: libqt5-linguist-devel
BuildRequires: lua-devel
BuildRequires: netpbm
BuildRequires: openspecfun-devel
BuildRequires: pango-devel
BuildRequires: plotutils-devel
BuildRequires: readline-devel
BuildRequires: wxGTK3-devel >= 3
BuildRequires: zziplib
BuildRequires: pkgconfig(Qt5Core)
BuildRequires: pkgconfig(Qt5Gui)
BuildRequires: pkgconfig(Qt5Network)
BuildRequires: pkgconfig(Qt5PrintSupport)
BuildRequires: pkgconfig(Qt5Svg)
BuildRequires: pkgconfig(caca)
BuildRequires: pkgconfig(freetype2)
BuildRequires: pkgconfig(gdlib)
BuildRequires: pkgconfig(libcerf)
BuildRequires: pkgconfig(libjpeg)
BuildRequires: pkgconfig(libpng16)
BuildRequires: pkgconfig(x11)
%if "%{flavor}" == "doc"
BuildRequires: emacs-nox
BuildRequires: gnuplot
BuildRequires: latex2html
BuildRequires: makeinfo
BuildRequires: texlive-epstopdf
BuildRequires: texlive-latex
BuildRequires: texlive-latexconfig
BuildRequires: texlive-makeindex
BuildRequires: texlive-pdftex
BuildRequires: texlive-tex
BuildRequires: texlive-tex4ht
BuildRequires: texlive-texinfo
BuildRequires: texlive-ucs
BuildRequires: tex(booktabs.sty)
BuildRequires: tex(fancyhdr.sty)
BuildRequires: tex(gttn1000.tfm)
BuildRequires: tex(hyperref.sty)
BuildRequires: tex(imakeidx.sty)
BuildRequires: tex(lgrcmr.fd)
BuildRequires: tex(nicefrac.sty)
BuildRequires: tex(pdftex.def)
BuildRequires: tex(subfigure.sty)
BuildRequires: tex(textgreek.sty)
BuildRequires: tex(upquote.sty)
%endif
URL: https://www.gnuplot.info/
Version: 6.0.2
Release: 0
%global underscore 6
%if "%{flavor}" == ""
Summary: Function Plotting Utility and more
License: GPL-2.0-or-later AND SUSE-Gnuplot
Group: Documentation/Other
%else
Summary: Documentation of GNUplot
License: GPL-2.0-or-later AND SUSE-Gnuplot
Group: Documentation/Other
%endif
Source0: https://downloads.sourceforge.net/project/gnuplot/gnuplot/%{version}/gnuplot-%{version}.tar.gz
Source1: https://downloads.sourceforge.net/project/gnuplot/gnuplot/%{version}/Gnuplot%{underscore}.pdf
Source2: gnuplot-fr.doc.bz2
Source3: README.whynot
Source4: webp_figures.gnu
# https://mirrors.ctan.org/macros/latex209/contrib/picins/picins.sty
# That's a build requirement, not provided by Tex Live
Source5: picins.sty
# Repair broken texi(nfo) file
Source6: gnuplot-5.2.0-texi2info.patch
Patch0: gnuplot-4.6.0.dif
Patch1: gnuplot-4.4.0-x11ovf.dif
Patch2: gnuplot-4.6.0-fonts.diff
Patch3: gnuplot-doc2tex.patch
Patch4: gnuplot-4.6.0-demo.diff
Patch5: gnuplot-wx3.diff
Patch6: gnuplot-QtCore-PIC.dif
Patch7: gnuplot-PIE.patch
%define _x11lib %{_libdir}
%define _x11data %{_datadir}/X11
%define _x11inc %{_includedir}/X11
%define _appdef %{_x11data}/app-defaults
%define _gnplttex tex/latex/gnuplot
%if "%{flavor}" == "doc"
Requires: %{sname}
Requires(post): %install_info_prereq
Requires(preun): %install_info_prereq
BuildArch: noarch
%endif
%description
GNUplot is a command line driven interactive function plotting utility.
GNUplot supports many different types of terminals, plotters, and
printers (including many color devices and pseudodevices like LaTeX)
and can easily be extended to include new devices.
%if "%{flavor}" == "doc"
%{sname} documentation files including the info pages.
%endif
%prep
%setup -q -n %{sname}-%{version}
bunzip2 -dc %{_sourcedir}/gnuplot-fr.doc.bz2 > docs/gnuplot-fr.doc
test $? -eq 0 || exit 1
cp %{_sourcedir}/picins.sty docs
%patch -P2 -p0 -b .font
%patch -P3 -p0 -b .overscan
%patch -P4 -p0 -b .demo
%patch -P0 -p1 -b .0
%patch -P1 -p0 -b .x11ovf
%patch -P5 -p1 -b .w3x
%patch -P6 -p0 -b .pic
%patch -P7 -p1 -b .pie
%build
autoreconf -fi
export CPPFLAGS="-I%{_includedir}/gd -DAppDefDir=\\\"%{_appdef}\\\""
export CPPFLAGS="$CPPFLAGS -DGNUPLOT_LIB_DEFAULT=\\\"%{_docdir}/%{sname}/demo\\\""
export CFLAGS="${RPM_OPT_FLAGS} -pipe -D_GNU_SOURCE -fpic"
export CXXFLAGS="$CFLAGS -fno-strict-aliasing"
export LDFLAGS="-L%{_x11lib} -Wl,--as-needed"
export ARCHLIB=%_lib
%if 0%{?suse_version}
%if !0%{?sle_version}
export CFLAGS="$CFLAGS -DDIST_CONTACT='https://bugs.opensuse.org/'"
%else
export CFLAGS="$CFLAGS -DDIST_CONTACT='https://bugzilla.suse.com/'"
%endif
%endif
%if "%{flavor}" == ""
mkdir bin
ln -sf /bin/true bin/dvips
ln -sf /bin/true bin/emacs
ln -sf /bin/true bin/kpsewhich
ln -sf /bin/true bin/texhash
PATH=${PATH}:${PWD}/bin
%endif
%configure \
--with-x \
--x-includes=%{_x11inc} \
--x-libraries=%{_x11lib}\
--with-x-app-defaultdir=%{_appdef}\
--with-texdir=%{_datadir}/texmf/%{_gnplttex} \
--with-kpsexpand=%{_bindir}/kpsexpand \
%if "%{flavor}" == "doc"
--with-latex=yes \
%else
--with-latex=force \
%endif
--with-readline=gnu \
--enable-history-file \
--with-bitmap-terminals \
--with-gpic \
--with-mif \
--enable-x11-mbfonts \
--enable-stats \
--enable-stable-sort \
--enable-polar-grid \
--enable-watchpoints \
--enable-function-blocks \
--enable-backward-compatibility \
--with-gd=yes \
--with-caca \
--with-tgif \
--with-metafont \
--with-metapost \
--with-regis \
--with-amos=%{_libdir} \
--with-qt=qt5
%if "%{flavor}" == ""
make %{?_smp_mflags} UIC=/usr/bin/uic-qt5 MOC=/usr/bin/moc-qt5 RCC=/usr/bin/rcc-qt5 LRELEASE=/usr/bin/lrelease-qt5
%endif
%if "%{flavor}" == "doc"
mv src/Makefile{,_INACESSIBLE}
pushd docs/
cp -p %{S:4} webp_figures.gnu
make GNUPLOT_EXE=%{_bindir}/gnuplot srcdir=. clean
make GNUPLOT_EXE=%{_bindir}/gnuplot srcdir=. allterm.h allterm-ja.h
make GNUPLOT_EXE=%{_bindir}/gnuplot srcdir=. html pdf
make srcdir=. gnuplot.texi
patch -p0 < %{S:6}
make srcdir=. info
pushd psdoc/
make srcdir=. pdf
popd
popd
if test -d tutorial/
then
pushd tutorial/
make srcdir=. clean pdf
popd
fi
%endif
%install
rm -rf %{buildroot}
%if "%{flavor}" == ""
make DESTDIR=%{buildroot} appdefaultdir=%{_appdef} install
mkdir -p %{buildroot}/%{_mandir}/ja/man1
install -m 0644 man/ja/man1/gnuplot.1 %{buildroot}/%{_mandir}/ja/man1/gnuplot.1
%endif
%if "%{flavor}" == "doc"
mkdir -p %{buildroot}/%{_infodir}
mkdir -p %{buildroot}/%{_docdir}/gnuplot/doc
mkdir -p %{buildroot}/%{_docdir}/gnuplot/doc/html
mkdir -p %{buildroot}/%{_docdir}/gnuplot/demo
rm -vf docs/htmldocs/images.{aux,idx,log,out,tex}
rm -vf docs/htmldocs/*.pl
rm -vf docs/htmldocs/*.aux
rm -vf docs/htmldocs/*.sty
rm -vf docs/htmldocs/WARNINGS
rm -vf docs/htmldocs/VERSION
rm -vf docs/figure_*.pdf
rm -vf tutorial/eg7.pdf
rm -rvf demo/html
install -m 0444 docs/*.info* %{buildroot}/%{_infodir}/
install -m 0444 docs/html/* %{buildroot}/%{_docdir}/gnuplot/doc/html
install -m 0444 docs/psdoc/*.pdf %{buildroot}/%{_docdir}/gnuplot/doc/
install -m 0444 docs/psdoc/*.ps %{buildroot}/%{_docdir}/gnuplot/doc/
install -m 0444 docs/psdoc/*.gpi %{buildroot}/%{_docdir}/gnuplot/doc/
install -m 0444 docs/psdoc/*.doc %{buildroot}/%{_docdir}/gnuplot/doc/
install -m 0444 docs/psdoc/README %{buildroot}/%{_docdir}/gnuplot/doc/
install -m 0444 demo/*.* %{buildroot}/%{_docdir}/gnuplot/demo/
install -m 0444 README* %{buildroot}/%{_docdir}/gnuplot/
install -m 0444 NEWS BUGS %{buildroot}/%{_docdir}/gnuplot/
install -m 0444 %{SOURCE3} %{buildroot}/%{_docdir}/gnuplot/
rm -f %{buildroot}/%{_docdir}/gnuplot/demo/Makefile*
install -m 0444 %{S:1} %{buildroot}/%{_docdir}/gnuplot/
%fdupes %{buildroot}/%{_docdir}
%endif
%if "%{flavor}" == "doc"
%post
%install_info --info-dir=.%{_infodir} .%{_infodir}/%{sname}.info.gz
%preun
%install_info_delete --info-dir=.%{_infodir} .%{_infodir}/%{sname}.info.gz
%endif
%if "%{flavor}" == ""
%files
%license Copyright
%{_bindir}/gnuplot
%{_libexecdir}/gnuplot
%{_datadir}/gnuplot
%dir %{_datadir}/texmf
%{_datadir}/texmf/*
%dir %{_appdef}
%{_appdef}/Gnuplot
%doc %{_mandir}/man1/gnuplot.1.gz
%doc %{_mandir}/ja/man1/gnuplot.1.gz
%endif
%if "%{flavor}" == "doc"
%files
%{_docdir}/gnuplot/
%{_infodir}/%{sname}.info.gz
%endif
%changelog

24
gnuplot.test Normal file
View File

@ -0,0 +1,24 @@
Testform für GNUPLPOT
=====================
27.04.2004: Version 4.0.0
Maintainer: werner
Vorraussetzungen:
=================
X muss installiert sein.
Starten:
========
gnuplot aufrufen ... Doku lesen.
Ergebinsse:
===========
Plots ... bei falscher Anwendung kann das Programm
abschmieren. Bei richtiger Verwendung der Syntax
von gnuplot ist es allerdings ein mächtiges Programm.

578
picins.sty Normal file
View File

@ -0,0 +1,578 @@
% PICINS.STY --- Style File zum Einbinden von Bildern
% Autor: J. Bleser, E. Lang
% Hochschulrechenzentrum
% Technische Hochschule Darmstadt
% !!! Dieses Style-File ist urheberrechtlich geschuetzt !!!
% !!! Aenderungen nur mit Zustimmung der Autoren !!!
\message{Option `picins' Version 3.0 Sep. 1992, TH Darmstadt/HRZ}
\newbox\@BILD%
\newbox\@TEXT%
\newdimen\d@breite%
\newdimen\d@hoehe%
\newdimen\d@xoff%
\newdimen\d@yoff%
\newdimen\d@shad%
\newdimen\d@dash%
\newdimen\d@boxl%
\newdimen\d@pichskip%
\newdimen\d@tmp
\newdimen\d@tmpa
\newdimen\d@bskip
\newdimen\hsiz@%
\newdimen\p@getot@l%
\newcount\c@breite
\newcount\c@hoehe
\newcount\c@xoff
\newcount\c@yoff
\newcount\c@pos
\newcount\c@shad
\newcount\c@dash
\newcount\c@boxl
\newcount\c@zeilen%
\newcount\@changemode%
\newcount\c@piccaption%
\newcount\c@piccaptionpos%
\newcount\c@picpos
\newcount\c@whole%
\newcount\c@half%
\newcount\c@tmp
\newcount\c@tmpa
\newcount\c@tmpb
\newcount\c@tmpc
\newcount\c@tmpd
\newskip\d@leftskip
\newif\if@list \@listfalse%
\newif\if@offset%
\c@piccaptionpos=1%
\c@picpos=0
\d@shad=4pt%
\d@dash=4pt%
\d@boxl=10pt%
\d@pichskip=1em%
\@changemode=0%
\def\@captype{figure}%
\let\old@par=\par%
\def\pichskip#1{\d@pichskip #1\relax}
\def\shadowthickness#1{\d@shad #1\relax}
\def\dashlength#1{\d@dash #1\relax}
\def\boxlength#1{\d@boxl #1\relax}
\def\picchangemode{\@changemode=1}%
\def\nopicchangemode{\@changemode=0}%
\def\piccaptionoutside{\c@piccaptionpos=1}%
\def\piccaptioninside{\c@piccaptionpos=2}%
\def\piccaptionside{\c@piccaptionpos=3}%
\def\piccaptiontopside{\c@piccaptionpos=4}%
\def\piccaption{\@ifnextchar [{\@piccaption}{\@piccaption[]}}
\def\@piccaption[#1]#2{\c@piccaption=1\def\sh@rtf@rm{#1}\def\capti@nt@xt{#2}}
\def\make@piccaption{%
\hsiz@\d@breite%
\ifnum\c@piccaptionpos=2%
\advance\hsiz@ -2\fboxsep%
\fi%
\ifnum\c@piccaptionpos>2%
\hsiz@\hsize\advance\hsiz@-\d@breite\advance\hsiz@-\d@pichskip%
\fi%
\setbox\@TEXT=\vbox{\hsize\hsiz@\caption[\sh@rtf@rm]{\capti@nt@xt}}%
}
\def\newcaption{\refstepcounter\@captype\@dblarg{\@newcaption\@captype}}
\long\def\@newcaption#1[#2]#3{%
\old@par%
\addcontentsline{\csname ext@#1\endcsname }{#1}%
{\protect\numberline{\csname the#1\endcsname}{\ignorespaces #2}}
\begingroup\@parboxrestore\normalsize%
\@newmakecaption{\csname fnum@#1\endcsname}{\ignorespaces #3}\old@par%
\endgroup%
}
\long\def\@newmakecaption#1#2{%
\vskip 10pt%
\setbox\@tempboxa \hbox {#1: #2}%
\ifdim \wd\@tempboxa >\hsize%
\setbox0=\hbox{#1: }\dimen0=\hsize\advance\dimen0 by-\wd0
\setbox1=\vtop{\hsize=\dimen0 #2}
\hbox{\box0 \box1}
\par
\else \hbox to\hsize {\hfil \box \@tempboxa \hfil}
\fi
}
\def\parpic{%
\@ifnextchar ({\iparpic}{\iparpic(0pt,0pt)}
}
\def\iparpic(#1,#2){%
\@ifnextchar ({\@offsettrue\iiparpic(#1,#2)}%
{\@offsetfalse\iiparpic(#1,#2)(0pt,0pt)}
}
\def\iiparpic(#1,#2)(#3,#4){%
\@ifnextchar [{\iiiparpic(#1,#2)(#3,#4)}{\iiiparpic(#1,#2)(#3,#4)[l]}
}
\def\iiiparpic(#1,#2)(#3,#4)[#5]{%
\@ifnextchar [{\ivparpic(#1,#2)(#3,#4)[#5]}{\ivparpic(#1,#2)(#3,#4)[#5][]}
}
\def\ivparpic(#1,#2)(#3,#4)[#5][#6]#7{%
\let\par=\old@par\par%
\hangindent0pt\hangafter1%
\setbox\@BILD=\hbox{#7}%
\d@breite=#1\d@breite=\the\d@breite%
\ifdim\d@breite=0pt\d@breite=\wd\@BILD\fi%
\c@breite=\d@breite\divide\c@breite by65536%
\multiply\c@piccaption\c@piccaptionpos%
\d@hoehe=#2\d@hoehe=\the\d@hoehe%
\ifdim\d@hoehe=0pt\d@hoehe=\ht\@BILD\advance\d@hoehe by\dp\@BILD\fi%
\c@hoehe=\d@hoehe\divide\c@hoehe by65536%
\d@xoff=#3\c@xoff=\d@xoff\divide\c@xoff by65536%
\d@yoff=\d@hoehe%
\advance\d@yoff by-#4\c@yoff=\d@yoff\divide\c@yoff by65536%
\c@pos=1\unitlength1pt%
\if@offset%
\setbox\@BILD=\hbox{%
\begin{picture}(\c@breite,\c@hoehe)%
\put(0,0){\makebox(\c@breite,\c@hoehe){}}%
\put(\c@xoff,\c@yoff){\box\@BILD}%
\end{picture}%
}%
\else%
\setbox\@BILD=\hbox{%
\begin{picture}(\c@breite,\c@hoehe)%
\put(0,0){\makebox(\c@breite,\c@hoehe)[#6]{\box\@BILD}}%
\end{picture}%
}%
\fi%
\ifnum\c@piccaption=2%
\make@piccaption%
\advance\d@hoehe\ht\@TEXT\advance\d@hoehe\dp\@TEXT%
\c@hoehe=\d@hoehe\divide\c@hoehe by65536%
\setbox\@BILD=\vbox{\box\@BILD\vspace{-5pt}%
\hbox{\hspace{\fboxsep}\box\@TEXT}%
\vspace{4pt}}%
\fi%
\@tfor\@tempa := #5\do{%
\if\@tempa f\setbox\@BILD=\hbox{\Rahmen(\c@breite,\c@hoehe){\box\@BILD}}\fi%
\if\@tempa s\setbox\@BILD=\hbox{\Schatten(\c@breite,\c@hoehe){\box\@BILD}}\fi%
\if\@tempa o\setbox\@BILD=\hbox{\Oval(\c@breite,\c@hoehe){\box\@BILD}}\fi%
\if\@tempa d\setbox\@BILD=\hbox{\Strich(\c@breite,\c@hoehe){\box\@BILD}}\fi%
\if\@tempa x\setbox\@BILD=\hbox{\Kasten(\c@breite,\c@hoehe){\box\@BILD}}\fi%
\if\@tempa l\c@pos=1\fi%
\if\@tempa r\c@pos=2\fi%
}%
\ifnum\c@piccaption=1%
\make@piccaption%
\advance\d@hoehe\ht\@TEXT\advance\d@hoehe\dp\@TEXT%
\c@hoehe=\d@hoehe\divide\c@hoehe by65536%
\setbox\@BILD=\vbox{\box\@BILD\vspace{-5pt}\hbox{\box\@TEXT}\vspace{4pt}}%
\fi%
\ifodd\count0\c@picpos=0\else\c@picpos=\@changemode\fi%
\pagetotal=\the\pagetotal%
\d@tmp=\pagegoal\advance\d@tmp by-\pagetotal\advance\d@tmp by-\baselineskip%
\ifdim\d@hoehe>\d@tmp%
\vskip 0pt plus\d@hoehe\relax\pagebreak[3]\vskip 0pt plus-\d@hoehe\relax%
\ifnum\c@picpos=1\c@picpos=0\else\c@picpos=\@changemode\fi%
\fi%
\ifnum\c@picpos=1\ifnum\c@pos=1\c@pos=2\else\c@pos=1\fi\fi%
\ifnum\@listdepth>0
\@listtrue\parshape 0%
\advance\hsize -\rightmargin%
\d@leftskip \leftskip%
\leftskip \@totalleftmargin%
\if@inlabel\rule{\linewidth}{0pt}\vskip-\baselineskip\relax\fi%
\else\@listfalse\medskip%
\fi%
\if@list\d@tmpa=\linewidth\else\d@tmpa=\hsize\fi%
\ifnum\c@piccaption=3%
\make@piccaption%
\d@tmp\ht\@TEXT\advance\d@tmp\dp\@TEXT%
\ifdim\d@hoehe>\d@tmp%
\setbox\@TEXT=\vbox to\d@hoehe{\vfill\box\@TEXT\vspace{.2\baselineskip}\vfill}%
\else%
\setbox\@BILD=\vbox to\d@tmp{\vfill\box\@BILD\vfill}%
\d@hoehe\d@tmp%
\fi%
\fi%
\ifnum\c@piccaption=4%
\make@piccaption%
\d@tmp\ht\@TEXT\advance\d@tmp\dp\@TEXT%
\setbox\@TEXT=\vbox to\d@hoehe{\vspace{-10pt}\box\@TEXT\vfil}%
\advance\d@hoehe-\d@tmp%
\fi%
\ifnum\c@pos=1\d@tmpa=0pt%
\ifnum\c@piccaption>2%
\setbox\@BILD=\hbox{\box\@BILD\hspace{\d@pichskip}\hbox{\box\@TEXT}}%
\fi%
\else\advance\d@tmpa by-\wd\@BILD\d@breite=-\d@breite%
\ifnum\c@piccaption>2%
\d@tmpa=0pt%
\setbox\@BILD=\hbox{\hbox{\box\@TEXT}\hspace{\d@pichskip}\box\@BILD}%
\fi%
\fi%
\p@getot@l\the\pagetotal%
\d@bskip\d@hoehe\advance\d@bskip by\parskip\advance\d@bskip by.3\baselineskip%
{\noindent\hspace*{\d@tmpa}\relax%
\box\@BILD\nopagebreak\vskip-\d@bskip\relax\nopagebreak}%
\d@tmp=-\d@hoehe\divide\d@tmp by\baselineskip%
\c@zeilen=\d@tmp\advance\c@zeilen by-1%
\ifdim\d@breite<0pt\advance\d@breite by-\d@pichskip%
\else\advance\d@breite by\d@pichskip%
\fi%
\hangindent=\d@breite%
\hangafter=\c@zeilen%
\let\par=\x@par%
\ifnum\c@piccaption=3%
\hangindent0pt\hangafter1\let\par=\old@par%
\vskip\d@hoehe\vskip.2\baselineskip%
\fi%
\c@piccaption=0%
}
\newdimen\ptoti
\newdimen\ptotii
\def\x@par{%
\ptoti\pagetotal%
\old@par%
\ptotii\pagetotal%
\ifdim\ptoti=\ptotii%
\d@tmp\d@hoehe%
\else%
\d@tmp\baselineskip%
\multiply\d@tmp by\prevgraf%
\advance\d@tmp by\parskip%
\global\advance\d@hoehe by-\d@tmp\d@tmp=\d@hoehe%
\fi%
\ifdim\d@hoehe>0pt%
\divide\d@tmp by\baselineskip\c@zeilen=-\d@tmp\advance\c@zeilen by-1%
\c@zeilen=\the\c@zeilen%
\else\c@zeilen=0
\fi
\ifnum\c@zeilen<0\hangafter=\c@zeilen\hangindent=\d@breite%
\else\let\par=\old@par%
\hangindent 0pt%
\leftskip \d@leftskip%
\if@list\parshape \@ne \@totalleftmargin \linewidth%
\advance\hsize \rightmargin%
\fi%
\fi%
}
\def\picskip#1{%
\let\par=\old@par%
\par%
\pagetotal\the\pagetotal%
\c@tmp=#1\relax%
\ifnum\c@tmp=0%
\d@tmp\baselineskip\multiply\d@tmp by\prevgraf\advance\d@tmp\parskip%
\ifdim\p@getot@l<\pagetotal
\advance\d@hoehe by-\d@tmp\advance\d@hoehe by1ex%
\ifdim\d@hoehe>0pt\vspace*{\d@hoehe}\fi%
\fi%
\ifdim\p@getot@l=\pagetotal%
\advance\d@hoehe by-\d@tmp\advance\d@hoehe by1ex%
\ifdim\d@hoehe>0pt\vspace*{\d@hoehe}\fi%
\fi%
\else\hangafter=-\c@tmp\hangindent=\d@breite%
\fi%
\leftskip \d@leftskip%
\if@list\parshape \@ne \@totalleftmargin \linewidth%
\advance\hsize \rightmargin%
\fi%
}
\def\hpic{%
\@ifnextchar ({\ihpic}{\ihpic(0pt,0pt)}
}
\def\ihpic(#1,#2){%
\@ifnextchar ({\@offsettrue\iihpic(#1,#2)}%
{\@offsetfalse\iihpic(#1,#2)(0pt,0pt)}
}
\def\iihpic(#1,#2)(#3,#4){%
\@ifnextchar [{\iiihpic(#1,#2)(#3,#4)}{\iiihpic(#1,#2)(#3,#4)[l]}
}
\def\iiihpic(#1,#2)(#3,#4)[#5]{%
\@ifnextchar [{\ivhpic(#1,#2)(#3,#4)[#5]}{\ivhpic(#1,#2)(#3,#4)[#5][]}
}
\def\ivhpic(#1,#2)(#3,#4)[#5][#6]#7{%
\setbox\@BILD=\hbox{#7}%
\d@breite=#1\d@breite=\the\d@breite%
\ifdim\d@breite=0pt\d@breite=\wd\@BILD\fi%
\c@breite=\d@breite\divide\c@breite by65536%
\d@hoehe=#2\d@hoehe=\the\d@hoehe%
\ifdim\d@hoehe=0pt\d@hoehe=\ht\@BILD\advance\d@hoehe by\dp\@BILD\fi%
\c@hoehe=\d@hoehe\divide\c@hoehe by65536%
\d@xoff=#3\c@xoff=\d@xoff\divide\c@xoff by65536%
\d@yoff=\d@hoehe%
\advance\d@yoff by-#4\c@yoff=\d@yoff\divide\c@yoff by65536%
\c@pos=0\d@tmpa=\parindent\parindent=0pt\unitlength1pt%
\if@offset
\setbox\@BILD=\hbox{%
\begin{picture}(\c@breite,\c@hoehe)%
\put(0,0){\makebox(\c@breite,\c@hoehe){}}%
\put(\c@xoff,\c@yoff){\box\@BILD}%
\end{picture}%
}%
\else%
\setbox\@BILD=\hbox{%
\begin{picture}(\c@breite,\c@hoehe)%
\put(0,0){\makebox(\c@breite,\c@hoehe)[#6]{\box\@BILD}}%
\end{picture}%
}%
\fi%
\@tfor\@tempa := #5\do{%
\if\@tempa f\setbox\@BILD=\hbox{\Rahmen(\c@breite,\c@hoehe){\box\@BILD}}\fi%
\if\@tempa s\setbox\@BILD=\hbox{\Schatten(\c@breite,\c@hoehe){\box\@BILD}}\fi%
\if\@tempa o\setbox\@BILD=\hbox{\Oval(\c@breite,\c@hoehe){\box\@BILD}}\fi%
\if\@tempa d\setbox\@BILD=\hbox{\Strich(\c@breite,\c@hoehe){\box\@BILD}}\fi%
\if\@tempa x\setbox\@BILD=\hbox{\Kasten(\c@breite,\c@hoehe){\box\@BILD}}\fi%
\if\@tempa t\c@pos=1\fi%
\if\@tempa b\c@pos=2\fi%
}%
\ifnum\c@pos=0\parbox{\d@breite}{\makebox[0cm]{}\\\box\@BILD\smallskip}\fi%
\ifnum\c@pos=1\parbox[t]{\d@breite}{\makebox[0cm]{}\\\box\@BILD\smallskip}\fi%
\ifnum\c@pos=2\parbox[b]{\d@breite}{\makebox[0cm]{}\\\box\@BILD\smallskip}\fi%
\parindent=\d@tmpa%
}
\def\Rahmen(#1,#2)#3{%
\c@whole=\@wholewidth\divide\c@whole by65536%
\c@half=\@halfwidth\divide\c@half by65536%
\c@tmpa=#1\advance\c@tmpa by\c@whole\advance\c@tmpa by\c@whole%
\c@tmpb=#2\advance\c@tmpb by\c@whole\advance\c@tmpb by\c@whole%
\begin{picture}(\c@tmpa,\c@tmpb)%
\put(\c@whole,\c@half){\framebox(#1,#2){#3}}%
\end{picture}%
\global\advance\d@breite by2\@wholewidth%
\global\advance\d@hoehe by2\@wholewidth%
}
\def\Schatten(#1,#2)#3{%
\c@whole=\@wholewidth\divide\c@whole by65536%
\c@half=\@halfwidth\divide\c@half by65536%
\c@shad=\d@shad\divide\c@shad by65536%
\c@tmp=\c@whole\advance\c@tmp by\c@whole\c@tmpd=\c@tmp%
\advance\c@tmp by\c@shad%
\advance\c@tmpd by#1%
\advance\c@half by\c@shad%
\c@tmpa=#1\advance\c@tmpa by\c@tmp%
\c@tmpb=#2\advance\c@tmpb by\c@tmp%
\begin{picture}(\c@tmpa,\c@tmpb)%
\put(\c@whole,\c@half){\framebox(#1,#2){#3}}%
\put(\c@shad,0){\rule{\c@tmpd pt}{\c@shad pt}}%
\put(\c@tmpd,0){\rule{\c@shad pt}{#2 pt}}%
\end{picture}%
\global\advance\d@breite by2\@wholewidth\global\advance\d@breite by\d@shad%
\global\advance\d@hoehe by2\@wholewidth\global\advance\d@hoehe by\d@shad%
}
\def\Oval(#1,#2)#3{%
\@wholewidth=0.4pt%
\c@tmpa=\the#1\divide\c@tmpa by2%
\c@tmpb=\the#2\divide\c@tmpb by2%
\begin{picture}(#1,#2)%
\put(\c@tmpa,\c@tmpb){\oval(#1,#2)}%
\put(0.4,0.4){#3}%
\end{picture}%
\global\advance\d@breite by1pt\global\advance\d@hoehe by1pt%
}
\def\Strich(#1,#2)#3{%
\c@whole=\@wholewidth\divide\c@whole by65536%
\c@half=\@halfwidth\divide\c@half by65536%
\c@dash=\d@dash\divide\c@dash by65536%
\c@tmp=\c@whole\advance\c@tmp by\c@whole%
\c@tmpa=#1\advance\c@tmpa by\c@tmp%
\c@tmpb=#2\advance\c@tmpb by\c@tmp%
\c@tmpc=#1\advance\c@tmpc by\c@whole%
\c@tmpd=#2\advance\c@tmpd by\c@whole%
\begin{picture}(\c@tmpa,\c@tmpb)%
\put(\c@half,\c@half){\dashbox{\c@dash}(\c@tmpc,\c@tmpd){#3}}%
\end{picture}%
\global\advance\d@breite by2\@wholewidth%
\global\advance\d@hoehe by2\@wholewidth%
}
\def\Kasten(#1,#2)#3{%
\@wholewidth=0.4pt%
\c@boxl=\d@boxl\divide\c@boxl by65536\c@boxl=\the\c@boxl%
\c@tmpa=#1\advance\c@tmpa by\c@boxl%
\c@tmpb=#2\advance\c@tmpb by\c@boxl%
\c@tmp=#2%
\begin{picture}(\c@tmpa,\c@tmpb)%
\put(0,\c@boxl){\framebox(#1,#2){#3}}%
\put(\c@boxl,0){\line(-1,1){\c@boxl}}%
\put(\c@boxl,0){\line(1,0){#1}\line(-1,1){\c@boxl}}%
\put(\c@boxl,0){\put(#1,0){\line(0,1){\c@tmp}%
\put(0,\c@tmp){\line(-1,1){\c@boxl}}}}%
\end{picture}%
\global\advance\d@breite by\d@boxl%
\global\advance\d@hoehe by\d@boxl%
}
\newbox\env@box%
\newdimen\d@envdp
\newcount\c@hsize
\newcount\c@envdp
\newdimen\d@envb
\long\def\frameenv{\@ifnextchar [{\@frameenv}{\@frameenv[\textwidth]}}
\long\def\@frameenv[#1]{%
\hsiz@=\textwidth \textwidth=#1 \d@envb=#1
\advance\textwidth by-2\@wholewidth
\advance\textwidth by-2\fboxsep
\hsize=\textwidth \linewidth=\textwidth
\setbox\env@box=\vbox\bgroup}%
\def\endframeenv{%
\egroup%
\hsize=\hsiz@ \textwidth=\hsiz@ \linewidth=\hsiz@
\c@breite=\d@envb \divide\c@breite by65536
\advance\d@envb by-2\@wholewidth
\c@hsize=\d@envb \divide\c@hsize by65536%
\d@envdp=\dp\env@box \advance\d@envdp by\ht\env@box%
\advance\d@envdp by2\fboxsep%
\d@hoehe=\d@envdp \advance\d@hoehe by2\@wholewidth
\c@hoehe=\d@hoehe \divide\c@hoehe by65536
\c@envdp=\d@envdp \divide\c@envdp by65536%
\c@tmp=\@wholewidth \divide\c@tmp by65536
\vskip\@wholewidth%
\unitlength 1pt\noindent%
\begin{picture}(\c@breite,\c@hoehe)(0,0)
\put(\c@tmp,\c@tmp){\framebox(\c@hsize,\c@envdp){\box\env@box}}
\end{picture}%
}
\long\def\shadowenv{\@ifnextchar [{\@shadowenv}{\@shadowenv[\textwidth]}}
\long\def\@shadowenv[#1]{%
\hsiz@=\textwidth \textwidth=#1 \d@envb=#1
\advance\textwidth by-2\@wholewidth
\advance\textwidth by-2\fboxsep
\advance\textwidth by-\d@shad%
\hsize=\textwidth \linewidth=\textwidth
\setbox\env@box=\vbox\bgroup}%
\def\endshadowenv{%
\egroup
\hsize=\hsiz@ \textwidth=\hsiz@ \linewidth=\hsiz@
\d@tmpa=\d@envb
\c@breite=\d@envb \divide\c@breite by65536
\advance\d@envb by-2\@wholewidth \advance\d@envb by-\d@shad
\c@hsize=\d@envb \divide\c@hsize by65536%
\d@envdp=\dp\env@box \advance\d@envdp by\ht\env@box%
\advance\d@envdp by2\fboxsep%
\c@envdp=\d@envdp \divide\c@envdp by65536%
\d@hoehe=\d@envdp
\advance\d@hoehe by2\@wholewidth \advance\d@hoehe by\d@shad
\c@hoehe=\d@hoehe \divide\c@hoehe by65536
\c@shad =\d@shad \divide\c@shad by65536
\c@tmp=\@wholewidth \divide\c@tmp by65536
\advance\d@tmpa by-2\d@shad
\c@xoff =\d@tmpa \divide\c@xoff by65536
\advance\c@xoff by\c@shad \advance\c@xoff by-1
\advance\d@envdp by\@wholewidth
\vskip\@halfwidth
\unitlength 1pt\noindent%
\begin{picture}(\c@breite,\c@hoehe)(0,0)
\put(\c@tmp,\c@shad){\framebox(\c@hsize,\c@envdp){\box\env@box}}
\put(\c@shad,0){\rule{\d@tmpa}{\d@shad}}%
\put(\c@xoff,0){\rule{\d@shad}{\d@envdp}}%
\end{picture}%
\vskip\@halfwidth
}
\long\def\dashenv{\@ifnextchar [{\@dashenv}{\@dashenv[\textwidth]}}
\long\def\@dashenv[#1]{%
\hsiz@=\textwidth \textwidth=#1 \d@envb=#1
\advance\textwidth by-2\@wholewidth \advance\textwidth by-2\fboxsep
\hsize=\textwidth \linewidth=\textwidth
\setbox\env@box=\vbox\bgroup}%
\long\def\enddashenv{%
\egroup
\hsize=\hsiz@ \textwidth=\hsiz@ \linewidth=\hsiz@
\c@breite=\d@envb \divide\c@breite by65536
\advance\d@envb by-\@wholewidth
\c@hsize=\d@envb \divide\c@hsize by65536%
\d@envdp=\dp\env@box \advance\d@envdp by\ht\env@box%
\advance\d@envdp by2\fboxsep%
\advance\d@envdp by\@wholewidth
\d@hoehe=\d@envdp \advance\d@hoehe by2\@wholewidth
\c@hoehe=\d@hoehe \divide\c@hoehe by65536
\c@envdp=\d@envdp \divide\c@envdp by65536%
\c@dash=\d@dash \divide\c@dash by65536%
\c@whole=\@wholewidth \divide\c@whole by65536
\c@half=\@halfwidth \divide\c@half by 65536
\noindent\unitlength 1pt
\begin{picture}(\c@breite,\c@hoehe)(0,0)
\put(\c@half,\c@whole){\dashbox{\c@dash}(\c@hsize,\c@envdp){\box\env@box}}
\end{picture}%
}
\long\def\ovalenv{\@ifnextchar [{\@ovalenv}{\@ovalenv[\textwidth]}}%
\long\def\@ovalenv[#1]{%
\hsiz@=\textwidth \textwidth=#1 \d@envb=#1
\advance\textwidth by-4\fboxsep
\hsize=\textwidth \linewidth=\textwidth
\setbox\env@box=\vbox\bgroup}%
\long\def\endovalenv{%
\egroup
\hsize=\hsiz@ \textwidth=\hsiz@ \linewidth=\hsiz@
\@wholewidth=0.4pt
\c@breite=\d@envb \divide\c@breite by65536
\advance\d@envb by-2\@wholewidth
\c@hsize=\d@envb \divide\c@hsize by65536%
\d@envdp=\dp\env@box \advance\d@envdp by\ht\env@box%
\advance\d@envdp by4\fboxsep%
\c@envdp=\d@envdp \divide\c@envdp by65536%
\d@hoehe=\d@envdp \advance\d@hoehe by2\@wholewidth
\c@hoehe=\d@hoehe \divide\c@hoehe by65536
\c@tmpa=\c@hsize \divide\c@tmpa by2%
\c@tmpb=\c@envdp \divide\c@tmpb by2%
\d@tmpa=2\fboxsep \advance\d@tmpa by\@wholewidth
\c@xoff=\d@tmpa \divide\c@xoff by65536%
\advance\d@tmpa by\dp\env@box
\c@yoff=\d@tmpa \divide\c@yoff by65536%
\unitlength 1pt\noindent
\begin{picture}(\c@breite,\c@hoehe)(0,0)
\put(\c@tmpa,\c@tmpb){\oval(\c@hsize,\c@envdp)}
\put(\c@xoff,\c@yoff){\box\env@box}%
\end{picture}%
}

5
pre_checkin.sh Normal file
View File

@ -0,0 +1,5 @@
#!/bin/bash
# This script has to be run prior to a check-in if changes were done
# to changes
cp gnuplot.changes gnuplot-doc.changes

75
webp_figures.gnu Normal file
View File

@ -0,0 +1,75 @@
#
# generate animations for inclusion with HTML help documents
#
set term webp animate delay 50 size 300,300
set output './html/figure_spinning_d20.webp'
unset border; unset tics; unset key; set view equal xyz
set margins 0,0,0,0
set pm3d border linecolor "black"
do for [ang=1:360:2] {
set view 60, ang, 1.7
splot 'icosahedron.dat' with polygons fc "gold"
}
unset output
# This figure is already in the repository as a static illustration
#
# set term pngcairo size 300,300
# set output './html/figure_static_d20.png'
# replot
# unset output
reset
#
# Convex hull used to mask a pm3d surface
# (webp because the svg version is 10x larger)
#
set term webp font "Calisto MT,12" noanimate size 600,400
set output './html/figure_mask.webp'
set view map
set palette rgb 33,13,10
set xrange [-30:25]
set yrange [-30:25]
set dgrid3d 100,100 gauss 5
set pm3d explicit
unset key
unset tics
unset colorbox
unset border
set table $HULL
plot 'mask_pm3d.dat' using 1:2 convexhull with lines title "Convex hull"
unset table
set multiplot layout 1,2 spacing 0.0 margins 0.05,0.95,0.0,0.85
set title "Cluster of points\n defining the mask region"
splot 'mask_pm3d.dat' using 1:2:3 with pm3d, \
'mask_pm3d.dat' using 1:2:(0) nogrid with points pt 7 ps .5 lc "black"
set pm3d interp 3,3
set title "pm3d surface masked by\nconvex hull of the cluster"
splot $HULL using 1:2:(0) with mask, \
'mask_pm3d.dat' using 1:2:3 mask with pm3d
unset multiplot
# same thing as a png image for fallback if browser does not support webp
set term png font "Calisto MT,12" size 600,400
set output './html/figure_mask.png'
set multiplot layout 1,2 spacing 0.0 margins 0.05,0.95,0.0,0.85
set title "Cluster of points\n defining the mask region"
splot 'mask_pm3d.dat' using 1:2:3 with pm3d, \
'mask_pm3d.dat' using 1:2:(0) nogrid with points pt 7 ps .5 lc "black"
set pm3d interp 3,3
set title "pm3d surface masked by\nconvex hull of the cluster"
splot $HULL using 1:2:(0) with mask, \
'mask_pm3d.dat' using 1:2:3 mask with pm3d
unset multiplot
reset