Sync from SUSE:SLFO:Main gnuplot revision e6f203e62603fb238f075f248ad75785

This commit is contained in:
Adrian Schröter 2024-05-03 13:04:15 +02:00
commit b63fd08b99
21 changed files with 5423 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

BIN
Gnuplot_5_4.pdf (Stored with Git LFS) Normal file

Binary file not shown.

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
@@ -954,6 +954,8 @@ mainloop()
nfds = cn + 1;
while (1) {
+ int ipc;
+
XFlush(dpy); /* see above */
FD_ZERO(&tset);
@@ -991,7 +993,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);
@@ -1223,8 +1229,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;

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

@ -0,0 +1,132 @@
---
demo/fit.dem | 4 ++++
demo/poldat.dem | 2 +-
demo/simple.dem | 3 +--
src/show.c | 9 +++++++++
src/variable.c | 20 +++++++++++++++++++-
5 files changed, 34 insertions(+), 4 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/show.c
+++ src/show.c 2020-07-17 07:25:00.022670914 +0000
@@ -1077,6 +1077,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")) {
--- src/variable.c
+++ src/variable.c 2020-07-17 07:25:00.022670914 +0000
@@ -33,7 +33,10 @@
/* The Death of Global Variables - part one. */
#include <string.h>
-
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <unistd.h>
#include "variable.h"
#include "alloc.h"
@@ -94,6 +97,17 @@ loadpath_handler(int action, char *path)
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);
@@ -102,6 +116,10 @@ loadpath_handler(int action, char *path)
/* convert all PATHSEPs to \0 */
PATHSEP_TO_NUL(loadpath);
} /* else: NULL = empty */
+#ifdef GNUPLOT_LIB_DEFAULT
+ if (defenvlib)
+ free(defenvlib);
+#endif /* GNUPLOT_LIB_DEFAULT */
} /* else: already initialised; int_warn (?) */
/* point to env portion of loadpath */
envptr = loadpath;

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 */
@@ -521,8 +528,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 };
@@ -2289,6 +2296,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;
@@ -5744,7 +5753,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)
@@ -5896,6 +5905,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;

169
gnuplot-4.6.0.dif Normal file
View File

@ -0,0 +1,169 @@
---
gnuplot-5.4.0/docs/Makefile.am | 12 ++++++++----
gnuplot-5.4.0/src/gadgets.h | 2 +-
gnuplot-5.4.0/src/gplt_x11.c | 9 ++++++---
gnuplot-5.4.0/src/plot.c | 22 +++++++++++++++++++++-
gnuplot-5.4.0/src/term.h | 6 +++---
5 files changed, 39 insertions(+), 12 deletions(-)
--- gnuplot-5.4.0/docs/Makefile.am
+++ gnuplot-5.4.0/docs/Makefile.am 2020-07-17 07:25:36.834034450 +0000
@@ -42,7 +42,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 doc2rnh doc2hlp \
@@ -101,7 +101,7 @@ gnuplot-groff.ps gnuplot.tmp VERSION gnu
gnuplot.idv gnuplot.xref gnuplot.lg gnuplot.pdf wxhelp_figures \
wxhelp/*.html wxhelp/wgnuplot.hhc wxhelp/wgnuplot.hhk \
wxhelp/wgnuplot.htc wxhelp/doc2html$(EXEEXT) windows/wgnuplot.htk \
-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)
@@ -262,17 +262,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-5.4.0/src/gadgets.h
+++ gnuplot-5.4.0/src/gadgets.h 2020-07-17 07:27:48.183763305 +0000
@@ -522,7 +522,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-5.4.0/src/gplt_x11.c
+++ gnuplot-5.4.0/src/gplt_x11.c 2020-07-17 07:25:36.834034450 +0000
@@ -2513,9 +2513,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-5.4.0/src/plot.c
+++ gnuplot-5.4.0/src/plot.c 2020-07-17 07:28:52.762646614 +0000
@@ -206,6 +206,7 @@ static int asked_privi = 0;
void
drop_privilege()
{
+#ifndef SVGA_IS_SECURE
if (!asked_privi) {
euid = geteuid();
egid = getegid();
@@ -219,11 +220,13 @@ drop_privilege()
if (seteuid(ruid) == -1)
(void) fprintf(stderr, "seteuid(%d): %s\n",
(int) ruid, strerror(errno));
+#endif
}
void
take_privilege()
{
+#ifndef SVGA_IS_SECURE
if (!asked_privi) {
euid = geteuid();
egid = getegid();
@@ -237,6 +240,7 @@ take_privilege()
if (seteuid(euid) == -1)
(void) fprintf(stderr, "seteuid(%d): %s\n",
(int) euid, strerror(errno));
+#endif
}
#endif /* LINUXVGA */
@@ -272,8 +276,8 @@ main(int argc_orig, char **argv)
argc = argc_orig;
#ifdef LINUXVGA
- LINUX_setup(); /* setup VGA before dropping privilege DBT 4/5/99 */
drop_privilege();
+ LINUX_setup(); /* setup VGA before dropping privilege DBT 4/5/99 */
#endif
/* make sure that we really have revoked root access, this might happen if
gnuplot is compiled without vga support but is installed suid by mistake */
@@ -346,6 +350,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) || defined(HAVE_LIBEDITLINE)
/* 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-5.4.0/src/term.h
+++ gnuplot-5.4.0/src/term.h 2020-07-17 07:25:36.838034380 +0000
@@ -242,9 +242,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"
@@ -277,7 +277,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,131 @@
--- gnuplot.texi
+++ gnuplot.texi 2020-07-17 09:17:43.019856719 +0000
@@ -11599,8 +11599,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
@@ -23249,13 +23248,10 @@ Syntax:
@{[no]enhanced@}
@end example
-@end itemizeif
@example
@{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.
@@ -23293,7 +23289,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
Example:
@example
set term dumb mono size 60,15 aspect 1
@@ -23667,8 +23662,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
@@ -24370,8 +24363,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
@@ -25124,7 +25115,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
@@ -25132,7 +25122,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
@@ -25156,7 +25145,6 @@ limits plots to 16 simultaneous colors,
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
@@ -25164,7 +25152,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.
@@ -25718,7 +25705,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.
@@ -25748,7 +25734,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`.
@@ -25914,8 +25899,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."
@@ -25952,7 +25935,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`."
@@ -26338,13 +26320,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

BIN
gnuplot-5.4.10.tar.gz (Stored with Git LFS) Normal file

Binary file not shown.

28
gnuplot-PIE.patch Normal file
View File

@ -0,0 +1,28 @@
Index: gnuplot-5.4.1/src/Makefile.am
===================================================================
--- gnuplot-5.4.1.orig/src/Makefile.am
+++ gnuplot-5.4.1/src/Makefile.am
@@ -61,6 +61,7 @@ util3d.c util3d.h variable.c variable.h
voxelgrid.c voxelgrid.h vplot.c vplot.h marching_cubes.h xdg.c xdg.h
gnuplot_LDADD = $(GD_LIBS) $(TERMLIBS) $(TERMXLIBS) $(WX_LIBS) $(QT_LIBS)
+gnuplot_LDFLAGS = -pie
pkglibexec_PROGRAMS =
@@ -69,6 +70,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
@@ -185,6 +187,7 @@ qtterminal/QtGnuplotApplication.cpp qtte
qtterminal/QtGnuplotScene.cpp qtterminal/QtGnuplotItems.cpp \
qtterminal/QtGnuplotEvent.cpp
gnuplot_qt_LDADD = $(QT_LIBS)
+gnuplot_qt_LDFLAGS = -pie
# embed example (uncomment to build it)
#

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
@@ -168,6 +168,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

1880
gnuplot-doc.changes Normal file

File diff suppressed because it is too large Load Diff

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

Binary file not shown.

104
gnuplot-gd.patch Normal file
View File

@ -0,0 +1,104 @@
Index: gnuplot-5.2.2/configure.ac
===================================================================
---
gnuplot-5.4.3/configure.ac | 76 +++++-------------------------------------
gnuplot-5.4.3/src/Makefile.am | 2 -
2 files changed, 11 insertions(+), 67 deletions(-)
--- gnuplot-5.4.3/configure.ac
+++ gnuplot-5.4.3/configure.ac 2022-01-10 09:30:11.836241429 +0000
@@ -526,73 +526,17 @@ AC_ARG_WITH(gd,dnl
if test "$with_gd" != no; then
PKG_CHECK_MODULES_NOFAIL(libgd, [gdlib])
- AC_PATH_PROG([GDLIB_CONFIG], [gdlib-config])
-
- # If pkg-config did return libgd configuration then
- # libgd_{CFLAGS,LDFLAGS,LIBS} is set
- # If gdlib-config executable is found then GDLIB_CONFIG is set
- if test $pkg_failed = no && test -n "$GDLIB_CONFIG"; then
- # If pkg-config did succeed and we have gdlib-config then the later takes
- # priority
- libgd_CFLAGS=`$GDLIB_CONFIG --cflags`
- libgd_LDFLAGS=`$GDLIB_CONFIG --ldflags`
- libgd_LIBS=`$GDLIB_CONFIG --libs`
- elif test -d "$with_gd"; then
- # pkg-config did NOT succeed, we do NOT have gdlib-config but user
- # specified --with-gd=
- libgd_CFLAGS="-I$with_gd/include"
- libgd_LDFLAGS="-L$with_gd/lib"
- libgd_LIBS="-ljpeg -lpng -lfreetype -lz"
- fi
-
- # Verify that libgd works, but backup the previous compilation variables to
- # be able to revert in the case that libgd is not functional
- _cppflags="$CPPFLAGS"
- _ldflags="$LDFLAGS"
- _libs="$LIBS"
- CPPFLAGS="$CPPFLAGS $libgd_CFLAGS"
- LDFLAGS="$LDFLAGS $libgd_LDFLAGS"
- LIBS="$LIBS $libgd_LIBS"
-
- AC_CHECK_LIB(gd,gdImageCreateTrueColor,
- [dnl found gd library
+ PKG_CHECK_MODULES([GD], [gdlib], [
+ ac_cv_lib_gd_gdImageJpeg=yes
+ ac_cv_lib_gd_gdImagePng=yes
+ ac_cv_lib_gd_gdImageGif=yes
+ ac_cv_lib_gd_gdImageGifAnimBegin=yes
AC_DEFINE(HAVE_LIBGD,1,[ Define if you have gd library. ])
- AC_CHECK_HEADERS(gd.h,,
- AC_MSG_WARN([please add path to gd.h to CPPFLAGS in Makefile]))
-
- dnl gif support in libgd
- AC_CHECK_LIB(gd,gdImageGif,
- [AC_DEFINE(HAVE_GD_GIF,1,[ Define if libgd supports gif. ])])
- AC_CHECK_LIB(gd,gdImageGifAnimBegin,
- [AC_DEFINE(GIF_ANIMATION,1,[ Define if libgd supports animated gifs. ])])
-
- dnl jpeg support in libgd
- AC_CHECK_LIB(gd,gdImageJpeg,
- [AC_DEFINE(HAVE_GD_JPEG,1,[ Define if libgd supports jpeg. ])])
-
- dnl freetype support in libgd
- AC_CHECK_LIB(gd,gdImageStringFT,
- AC_DEFINE(HAVE_GD_TTF,1,
- [ Define if libgd supports TrueType fonts through libfreetype. ]))
-
- dnl png support in libgd
- AC_CHECK_LIB(gd,gdImagePng,
- [AC_DEFINE(HAVE_GD_PNG,1,[ Define if libgd supports png. ])])
-
- ],[dnl gd library not found
- AC_MSG_WARN([libgd not found or too old, version >= 2.0 is required])
- with_gd=no
- ])
-
- dnl piece it all together
- if test "$with_gd" = no; then
- CPPFLAGS="$_cppflags"
- LDFLAGS="$_ldflags"
- LIBS="$_libs"
- else
- LIBS="$_libs"
- TERMLIBS="$TERMLIBS -lgd $libgd_LIBS"
- fi
+ AC_DEFINE(HAVE_GD_GIF,1,[ Define if libgd supports gif. ])
+ AC_DEFINE(GIF_ANIMATION,1,[ Define if libgd supports animated gifs. ])
+ AC_DEFINE(HAVE_GD_JPEG,1,[ Define if libgd supports jpeg. ])
+ AC_DEFINE(HAVE_GD_TTF,1, [ Define if libgd supports TrueType fonts through libfreetype. ])
+ AC_DEFINE(HAVE_GD_PNG,1,[ Define if libgd supports png. ])])
fi
dnl end gd
--- gnuplot-5.4.3/src/Makefile.am
+++ gnuplot-5.4.3/src/Makefile.am 2022-01-10 08:51:05.936921975 +0000
@@ -60,7 +60,7 @@ term_api.h term.c term.h time.c unset.c
util3d.c util3d.h variable.c variable.h version.c version.h \
voxelgrid.c voxelgrid.h vplot.c vplot.h marching_cubes.h xdg.c xdg.h
-gnuplot_LDADD = $(TERMLIBS) $(TERMXLIBS) $(WX_LIBS) $(QT_LIBS)
+gnuplot_LDADD = $(GD_LIBS) $(TERMLIBS) $(TERMXLIBS) $(WX_LIBS) $(QT_LIBS)
pkglibexec_PROGRAMS =

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
@@ -95,6 +95,7 @@ $(EXTRA_gnuplot_SOURCES)
if BUILD_WXWIDGETS
gnuplot_SOURCES += wxterminal/wxt_gui.cpp
+gnuplot_LDADD += -lX11
endif
if BUILD_GPCAIRO

1880
gnuplot.changes Normal file

File diff suppressed because it is too large Load Diff

287
gnuplot.spec Normal file
View File

@ -0,0 +1,287 @@
#
# spec file
#
# Copyright (c) 2023 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
%bcond_without h3d_gridbox
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: 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-pdftex
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(lgrcmr.fd)
BuildRequires: tex(pdftex.def)
BuildRequires: tex(subfigure.sty)
BuildRequires: tex(textgreek.sty)
%endif
URL: https://www.gnuplot.info/
Version: 5.4.10
Release: 0
%global underscore 5_4
%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
# 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
Patch4: gnuplot-4.6.0-demo.diff
Patch5: gnuplot-wx3.diff
Patch6: gnuplot-QtCore-PIC.dif
Patch7: gnuplot-gd.patch
Patch8: gnuplot-PIE.patch
%define _x11lib %{_libdir}
%define _x11data %{_datadir}/X11
%define _libx11 %{_exec_prefix}/lib/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
%patch2 -p0 -b .font
%patch4 -p0 -b .demo
%patch0 -p1 -b .0
%patch1 -p0 -b .x11ovf
%patch5 -p1 -b .w3x
%patch6 -p0 -b .pic
%patch7 -p1 -b .gd
%patch8 -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
%configure \
--enable-stats \
--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 \
%if ! %{with h3d_gridbox}
--enable-h3d-quadtree \
--disable-h3d-gridbox \
%else
--disable-h3d-quadtree \
--enable-h3d-gridbox \
%endif
--enable-backwards-compatibility\
--with-gd=%{_usr} \
--without-row-help \
--with-caca \
--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/
mkdir -p htmldocs
cp toc_entr.sty htmldocs/
make GNUPLOT_EXE=%{_bindir}/gnuplot srcdir=. clean 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/gnuplot-ja_JP.UTF-8 %{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/htmldocs/* %{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