graphics/dia: Updated for version 0.97.3 + new maintainer.
Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
This commit is contained in:
parent
e52bc22392
commit
a5ef237349
|
@ -1,9 +1,6 @@
|
|||
Dia (diagram creation program)
|
||||
|
||||
Dia is inspired by the commercial Windows program 'Visio', though
|
||||
more geared towards informal diagrams for casual use. It can be used
|
||||
to draw many different kinds of diagrams. It currently has special
|
||||
objects to help draw entity relationship diagrams, UML diagrams,
|
||||
flowcharts, network diagrams, and many other diagrams. It is also
|
||||
possible to add support for new shapes by writing simple XML files,
|
||||
using a subset of SVG to draw the shape.
|
||||
Dia is an application for creating technical diagrams. Its interface and
|
||||
features are loosely patterned after the Windows program Visio. Its features
|
||||
include multiple-page printing, export to many formats (EPS, SVG, CGM and
|
||||
PNG) and the ability to use custom shapes created by the user as simple XML
|
||||
descriptions. Dia is useful for drawing UML diagrams, network maps and
|
||||
flowcharts.
|
||||
|
|
|
@ -1,13 +1,15 @@
|
|||
#!/bin/sh
|
||||
|
||||
# Slackware build script for dia
|
||||
# Written by Matt Hayes (dominian@slackadelic.com
|
||||
# Updated for 64bit by Ash Wiren (ash@spooksoftware.com 19-08-2009
|
||||
# Currently mantained by Dugan Chen (thedoogster@gmail.com)))
|
||||
|
||||
# Originally written by Matt Hayes <dominian at slackadelic dot com>
|
||||
# Updated for 64bit by Ash Wiren <ash at spooksoftware dot com> (19.08.2009)
|
||||
# Maintained by Dugan Chen <thedoogster at gmail dot com> (<= 18.09.2015)
|
||||
# Updated and currently maintained by Philip Lacroix <slackph at posteo dot de>
|
||||
|
||||
PRGNAM=dia
|
||||
VERSION=0.97.2
|
||||
BUILD=${BUILD:-3}
|
||||
VERSION=${VERSION:-0.97.3}
|
||||
BUILD=${BUILD:-1}
|
||||
TAG=${TAG:-_SBo}
|
||||
|
||||
if [ -z "$ARCH" ]; then
|
||||
|
@ -44,19 +46,15 @@ mkdir -p $TMP $PKG $OUTPUT
|
|||
cd $TMP
|
||||
rm -rf $PRGNAM-$VERSION
|
||||
tar xvf $CWD/$PRGNAM-$VERSION.tar.xz
|
||||
|
||||
cd $PRGNAM-$VERSION
|
||||
chown -R root:root .
|
||||
find -L . \
|
||||
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
|
||||
-o -perm 511 \) -exec chmod 755 {} \; -o \
|
||||
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
|
||||
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
|
||||
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
|
||||
|
||||
# Fix the location of the French manpages.
|
||||
sed -i 's/$(datadir)\/man/@mandir@/' doc/fr/Makefile.in
|
||||
|
||||
# apply patches from upstream
|
||||
for i in $CWD/patches/* ; do patch -p1 < $i ; done
|
||||
autoreconf -fi
|
||||
|
||||
CFLAGS="$SLKCFLAGS" \
|
||||
|
@ -71,17 +69,22 @@ CXXFLAGS="$SLKCFLAGS" \
|
|||
make
|
||||
make install DESTDIR=$PKG
|
||||
|
||||
find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
|
||||
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
|
||||
find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" \
|
||||
| grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
|
||||
|
||||
find $PKG/usr/man -type f -exec gzip -9 {} \;
|
||||
for i in $( find $PKG/usr/man -type l ) ; do ln -s $( readlink $i ).gz $i.gz ; rm $i ; done
|
||||
PRGMAN=$PKG/usr/man
|
||||
PRGSHR=$PKG/usr/share
|
||||
PRGDOC=$PKG/usr/doc/$PRGNAM-$VERSION
|
||||
|
||||
# docdir already exists :-)
|
||||
cp -a \
|
||||
AUTHORS COPYING ChangeLog ChangeLog.pre-git KNOWN_BUGS MAINTAINERS NEWS README RELEASE-PROCESS THANKS TODO \
|
||||
$PKG/usr/doc/$PRGNAM-$VERSION
|
||||
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
|
||||
# Move French man page to correct location; compress both.
|
||||
mv $PRGSHR/man/fr $PRGMAN/
|
||||
gzip -9 $PRGMAN/{,fr/}man1/$PRGNAM.1
|
||||
rmdir $PRGSHR/man
|
||||
|
||||
# Install documentation.
|
||||
cp -a AUTHORS COPYING ChangeLog* KNOWN_BUGS MAINTAINERS NEWS README \
|
||||
\RELEASE-PROCESS THANKS TODO $PRGDOC/
|
||||
cat $CWD/$PRGNAM.SlackBuild > $PRGDOC/$PRGNAM.SlackBuild
|
||||
|
||||
mkdir -p $PKG/install
|
||||
cat $CWD/slack-desc > $PKG/install/slack-desc
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
PRGNAM="dia"
|
||||
VERSION="0.97.2"
|
||||
VERSION="0.97.3"
|
||||
HOMEPAGE="https://wiki.gnome.org/Apps/Dia/"
|
||||
DOWNLOAD="http://ftp.gnome.org/pub/gnome/sources/dia/0.97/dia-0.97.2.tar.xz"
|
||||
MD5SUM="1e1180a513fb567709b09bc19f12105e"
|
||||
DOWNLOAD="http://ftp.gnome.org/pub/gnome/sources/dia/0.97/dia-0.97.3.tar.xz"
|
||||
MD5SUM="0e744a0f6a6c4cb6a089e4d955392c3c"
|
||||
DOWNLOAD_x86_64=""
|
||||
MD5SUM_x86_64=""
|
||||
REQUIRES=""
|
||||
MAINTAINER="Dugan Chen"
|
||||
EMAIL="thedoogster@gmail.com"
|
||||
MAINTAINER="Philip Lacroix"
|
||||
EMAIL="slackph at posteo dot de"
|
||||
|
|
|
@ -1,39 +0,0 @@
|
|||
From aa94ba030885f3105e6452929d04917a2ef94393 Mon Sep 17 00:00:00 2001
|
||||
From: Hans Breuer <hans@breuer.org>
|
||||
Date: Sun, 8 Apr 2012 14:42:41 +0200
|
||||
Subject: [PATCH 01/24] Bug 668587 - Double free() for some SVG rendering
|
||||
|
||||
The fix for bug 665648 introduced a memory corruption.
|
||||
Now the #if-0'ed code as well as the #else branch respect
|
||||
DiaSvgRender::get_fill_style() having a const return.
|
||||
(cherry picked from commit 47bb76af3ba20b5e83be79a874df02c405934899)
|
||||
---
|
||||
lib/diasvgrenderer.c | 8 +++++---
|
||||
1 file changed, 5 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/lib/diasvgrenderer.c b/lib/diasvgrenderer.c
|
||||
index 4dc0695..14aefc4 100644
|
||||
--- a/lib/diasvgrenderer.c
|
||||
+++ b/lib/diasvgrenderer.c
|
||||
@@ -677,13 +677,15 @@ draw_text_line(DiaRenderer *self, TextLine *text_line,
|
||||
|
||||
saved_width = renderer->linewidth;
|
||||
renderer->linewidth = 0.001;
|
||||
- style = (char*)get_fill_style(renderer, colour);
|
||||
/* return value must not be freed */
|
||||
renderer->linewidth = saved_width;
|
||||
#if 0 /* would need a unit: https://bugzilla.mozilla.org/show_bug.cgi?id=707071#c4 */
|
||||
- tmp = g_strdup_printf("%s; font-size: %s", style,
|
||||
+ style = g_strdup_printf("%s; font-size: %s", get_fill_style(renderer, colour),
|
||||
dia_svg_dtostr(d_buf, text_line_get_height(text_line)));
|
||||
- style = tmp;
|
||||
+#else
|
||||
+ /* get_fill_style: the return value of this function must not be saved
|
||||
+ * anywhere. And of course it must not be free'd */
|
||||
+ style = g_strdup (get_fill_style(renderer, colour));
|
||||
#endif
|
||||
/* This is going to break for non-LTR texts, as SVG thinks 'start' is
|
||||
* 'right' for those. */
|
||||
--
|
||||
1.8.4.4
|
||||
|
|
@ -1,71 +0,0 @@
|
|||
From ae61326cf5e7aaba6e72af757a5cd33efe8280a1 Mon Sep 17 00:00:00 2001
|
||||
From: Dominique Leuenberger <dimstar@opensuse.org>
|
||||
Date: Thu, 1 Dec 2011 22:08:12 +0100
|
||||
Subject: [PATCH 02/24] Bug 665335: Only #include <glib.h>: the other headers
|
||||
are implicit
|
||||
|
||||
---
|
||||
objects/custom/shape_typeinfo.c | 2 +-
|
||||
plug-ins/pgf/render_pgf.c | 2 +-
|
||||
tests/test-boundingbox.c | 3 ---
|
||||
tests/test-objects.c | 4 ----
|
||||
4 files changed, 2 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/objects/custom/shape_typeinfo.c b/objects/custom/shape_typeinfo.c
|
||||
index c6133b1..3fb3d73 100644
|
||||
--- a/objects/custom/shape_typeinfo.c
|
||||
+++ b/objects/custom/shape_typeinfo.c
|
||||
@@ -27,7 +27,7 @@
|
||||
#include "custom_util.h"
|
||||
#include <string.h>
|
||||
#include <stdarg.h>
|
||||
-#include <glib/gstrfuncs.h>
|
||||
+#include <glib.h>
|
||||
#include <glib/gstdio.h>
|
||||
#include <libxml/parser.h>
|
||||
|
||||
diff --git a/plug-ins/pgf/render_pgf.c b/plug-ins/pgf/render_pgf.c
|
||||
index 3fe5bbd..24b812e 100644
|
||||
--- a/plug-ins/pgf/render_pgf.c
|
||||
+++ b/plug-ins/pgf/render_pgf.c
|
||||
@@ -61,7 +61,7 @@ TODO:
|
||||
#endif
|
||||
#include <errno.h>
|
||||
|
||||
-#include <glib/gprintf.h>
|
||||
+#include <glib.h>
|
||||
#include <glib/gstdio.h>
|
||||
|
||||
#include "intl.h"
|
||||
diff --git a/tests/test-boundingbox.c b/tests/test-boundingbox.c
|
||||
index 7adaab5..a13d018 100644
|
||||
--- a/tests/test-boundingbox.c
|
||||
+++ b/tests/test-boundingbox.c
|
||||
@@ -28,9 +28,6 @@
|
||||
#include <glib.h>
|
||||
#include <glib-object.h>
|
||||
|
||||
-#if GLIB_CHECK_VERSION(2,16,0)
|
||||
-#include <glib/gtestutils.h>
|
||||
-#endif
|
||||
#include "dialib.h"
|
||||
|
||||
/*
|
||||
diff --git a/tests/test-objects.c b/tests/test-objects.c
|
||||
index 57d5675..c5980a5 100644
|
||||
--- a/tests/test-objects.c
|
||||
+++ b/tests/test-objects.c
|
||||
@@ -28,10 +28,6 @@
|
||||
#include <glib.h>
|
||||
#include <glib-object.h>
|
||||
|
||||
-#if GLIB_CHECK_VERSION(2,16,0)
|
||||
-#include <glib/gtestutils.h>
|
||||
-#endif
|
||||
-
|
||||
#include "object.h"
|
||||
#include "plug-ins.h"
|
||||
#include "dialib.h"
|
||||
--
|
||||
1.8.4.4
|
||||
|
|
@ -1,36 +0,0 @@
|
|||
From 3a589dedfbf2b0ada111a3e2cb6b14837f2c8b5e Mon Sep 17 00:00:00 2001
|
||||
From: Hans Breuer <hans@breuer.org>
|
||||
Date: Sat, 6 Jun 2009 20:01:38 +0200
|
||||
Subject: [PATCH 03/24] Bug #585004 - implicit declaration of function 'finite'
|
||||
(2nd iteration)
|
||||
|
||||
To get the definition either _BSD_SOURCE or _SVID_SOURCE needs to
|
||||
be defined before inclusion of <math.h>.
|
||||
Removed HAVE_CONFIG_H and chanegd inclusion order
|
||||
(cherry picked from commit 8f363f6dd82f9fbf502fceaf1d73a258c17593db)
|
||||
---
|
||||
objects/standard/arc.c | 4 +---
|
||||
1 file changed, 1 insertion(+), 3 deletions(-)
|
||||
|
||||
diff --git a/objects/standard/arc.c b/objects/standard/arc.c
|
||||
index 28302a6..3a50838 100644
|
||||
--- a/objects/standard/arc.c
|
||||
+++ b/objects/standard/arc.c
|
||||
@@ -16,13 +16,11 @@
|
||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
-#ifdef HAVE_CONFIG_H
|
||||
#include <config.h>
|
||||
-#endif
|
||||
|
||||
-#include <assert.h>
|
||||
#define _BSD_SOURCE 1 /* to get finite */
|
||||
#include <math.h>
|
||||
+#include <assert.h>
|
||||
|
||||
#include "intl.h"
|
||||
#include "object.h"
|
||||
--
|
||||
1.8.4.4
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -1,26 +0,0 @@
|
|||
From b9b279e8bd77e0fb27176d64baa75563054ac5e1 Mon Sep 17 00:00:00 2001
|
||||
From: Hans Breuer <hans@breuer.org>
|
||||
Date: Sat, 23 Jun 2012 15:21:58 +0200
|
||||
Subject: [PATCH 06/24] Bug 676830 : Misc - Grid : don't crash on copy, resize
|
||||
|
||||
Row index was iterated with the columns range.
|
||||
---
|
||||
objects/Misc/grid_object.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/objects/Misc/grid_object.c b/objects/Misc/grid_object.c
|
||||
index bf6537a..05d1b16 100644
|
||||
--- a/objects/Misc/grid_object.c
|
||||
+++ b/objects/Misc/grid_object.c
|
||||
@@ -479,7 +479,7 @@ grid_object_reallocate_cells (Grid_Object* grid_object)
|
||||
|
||||
/* implicit: if (new_cols < old_cols) */
|
||||
for (i = new_cols; i < old_cols; ++i)
|
||||
- for (j = 0; j < old_cols && j < new_cols; ++j) /* don't double-delete */
|
||||
+ for (j = 0; j < old_rows && j < new_rows; ++j) /* don't double-delete */
|
||||
{
|
||||
int cell = grid_cell(i, j, old_rows, old_cols);
|
||||
object_remove_connections_to(&grid_object->cells[cell]);
|
||||
--
|
||||
1.8.4.4
|
||||
|
|
@ -1,46 +0,0 @@
|
|||
From ae8bcaa703197d090c0c746c54289ddcc6bbbbb1 Mon Sep 17 00:00:00 2001
|
||||
From: Hans Breuer <hans@breuer.org>
|
||||
Date: Thu, 7 Oct 2010 13:21:16 +0200
|
||||
Subject: [PATCH 07/24] grid-object: avoid crash on shrink
|
||||
|
||||
Fix some confusion about rows/columns using the wrong limits.
|
||||
Resizing object::connections was too early.
|
||||
(cherry picked from commit cddd958b71a4075751ab76ac3530ced3c33972ea)
|
||||
---
|
||||
objects/Misc/grid_object.c | 13 +++++++------
|
||||
1 file changed, 7 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/objects/Misc/grid_object.c b/objects/Misc/grid_object.c
|
||||
index 05d1b16..11dca8b 100644
|
||||
--- a/objects/Misc/grid_object.c
|
||||
+++ b/objects/Misc/grid_object.c
|
||||
@@ -460,12 +460,6 @@ grid_object_reallocate_cells (Grid_Object* grid_object)
|
||||
if (old_rows == new_rows && old_cols == new_cols)
|
||||
return; /* no reallocation necessary */
|
||||
|
||||
- /* obj->connections doesn't own the pointers, so just realloc; values
|
||||
- * will be updated later */
|
||||
- obj->num_connections = GRID_OBJECT_BASE_CONNECTION_POINTS + new_rows*new_cols;
|
||||
- obj->connections = (ConnectionPoint **) g_realloc(obj->connections,
|
||||
- obj->num_connections * sizeof(ConnectionPoint *));
|
||||
-
|
||||
/* If either new dimension is smaller, some connpoints will have to
|
||||
* be disconnected before reallocating */
|
||||
|
||||
@@ -485,6 +479,13 @@ grid_object_reallocate_cells (Grid_Object* grid_object)
|
||||
object_remove_connections_to(&grid_object->cells[cell]);
|
||||
}
|
||||
|
||||
+ /* must be done after disconnecting */
|
||||
+ /* obj->connections doesn't own the pointers, so just realloc; values
|
||||
+ * will be updated later */
|
||||
+ obj->num_connections = GRID_OBJECT_BASE_CONNECTION_POINTS + new_rows*new_cols;
|
||||
+ obj->connections = (ConnectionPoint **) g_realloc(obj->connections,
|
||||
+ obj->num_connections * sizeof(ConnectionPoint *));
|
||||
+
|
||||
/* Can't use realloc; if grid has different dims, memory lays out
|
||||
* differently. Must copy by hand. */
|
||||
|
||||
--
|
||||
1.8.4.4
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -1,88 +0,0 @@
|
|||
From 3651abfeed6a500dde7ce8ed389ff0c954faff99 Mon Sep 17 00:00:00 2001
|
||||
From: Steffen Macke <sdteffen@sdteffen.de>
|
||||
Date: Tue, 2 Jul 2013 12:35:44 +0200
|
||||
Subject: [PATCH 12/24] Cleanup, check for X11, forward to XQuartz homepage, if
|
||||
necessary.
|
||||
|
||||
---
|
||||
installer/macosx/dia | 50 +++++++++++++++++++++++++++++++++++++++++++++++++-
|
||||
1 file changed, 49 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/installer/macosx/dia b/installer/macosx/dia
|
||||
index 2b5be21..5b27386 100755
|
||||
--- a/installer/macosx/dia
|
||||
+++ b/installer/macosx/dia
|
||||
@@ -23,6 +23,17 @@ TOP="`dirname \"$CWD\"`"
|
||||
# LaTeX distribution for Mac OS X
|
||||
#export PATH="/usr/texbin:/opt/local/bin:/sw/bin/:/Library/Frameworks/Python.framework/Versions/Current/bin:/usr/local/bin:$CWD:$PATH"
|
||||
|
||||
+# Check for X11
|
||||
+if [[ "" == `which startx` ]]; then
|
||||
+ if [[ ! -e /opt/X11/bin/startx ]]; then
|
||||
+ osascript -e 'tell app "System Events" to display dialog "X11 (XQuartz) is not installed or not running. Would you like to visit xquartz.macosforge.org now in order to download and install XQuartz?" with icon 0'
|
||||
+ if [[ $? -eq 0 ]]; then
|
||||
+ open http://xquartz.macosforge.org
|
||||
+ exit
|
||||
+ fi
|
||||
+ fi
|
||||
+fi
|
||||
+
|
||||
# Setup PYTHONPATH to use python modules shipped with Dia
|
||||
ARCH=`arch`
|
||||
PYTHON_VERS=`python -V 2>&1 | cut -c 8-10`
|
||||
@@ -37,7 +48,8 @@ export DIA_LIB_PATH="$TOP/dia"
|
||||
export DIA_SHEET_PATH="$TOP/sheets"
|
||||
export DIA_SHAPE_PATH="$TOP/shapes"
|
||||
export DIA_XSLT_PATH="$TOP/xslt"
|
||||
-export DIA_LOCALE_PATH="$TOP/locale"
|
||||
+export DIA_SHAREDIR="$TOP"
|
||||
+export DIA_LOCALE_PATH="$TOP/share/locale"
|
||||
|
||||
mkdir -p "${HOME}/.dia-etc"
|
||||
|
||||
@@ -54,6 +66,42 @@ export XDG_DATA_DIRS="$TOP/share"
|
||||
# various configuration files.
|
||||
ESCAPEDTOP=`echo "$TOP" | sed 's/#/\\\\\\\\#/' | sed 's/&/\\\\\\&/g' | sed 's/|/\\\\\\|/g'`
|
||||
|
||||
+# Set GTK theme (only if there is no .gtkrc-2.0 in the user's home)
|
||||
+if [[ ! -e "$HOME/.gtkrc-2.0" ]]; then
|
||||
+ # Appearance setting
|
||||
+ aquaStyle=`defaults read "Apple Global Domain" AppleAquaColorVariant 2>/dev/null`
|
||||
+ # 1 for aqua, 6 for graphite, inexistant if the default color was never changed
|
||||
+ if [[ "$aquaStyle" == "" ]]; then
|
||||
+ aquaStyle=1 # set aqua as default
|
||||
+ fi
|
||||
+
|
||||
+ # Highlight Color setting
|
||||
+ hiliColor=`defaults read "Apple Global Domain" AppleHighlightColor 2>/dev/null`
|
||||
+ # a RGB value, with components between 0 and 1, also inexistant if it was not changed
|
||||
+ if [[ "$hiliColor" == "" ]]; then
|
||||
+ hiliColor="0.709800 0.835300 1.000000" # set blue as default
|
||||
+ fi
|
||||
+
|
||||
+ # Menu items color
|
||||
+ if [[ aquaStyle -eq 1 ]]; then
|
||||
+ menuColor="#4a76cd" # blue
|
||||
+ else
|
||||
+ menuColor="#7c8da4" # graphite
|
||||
+ fi
|
||||
+ # Format highlight color as a GTK rgb value
|
||||
+ hiliColorFormated=`echo $hiliColor | awk -F " " '{print "\\\{"$1","$2","$3"\\\}"}'`
|
||||
+
|
||||
+ # echo $menuColor
|
||||
+ # echo $hiliColorFormated
|
||||
+
|
||||
+ # Modify the gtkrc
|
||||
+ # - with the correct colors
|
||||
+ # - to point to the correct scrollbars folder
|
||||
+ sed 's/OSX_HILI_COLOR_PLACEHOLDER/'$hiliColorFormated'/g' "$DIA_SHAREDIR/themes/CL/gtk-2.0/pre_gtkrc" | sed 's/OSX_MENU_COLOR_PLACEHOLDER/\"'$menuColor'\"/g' | sed 's/AQUASTYLE_PLACEHOLDER/'$aquaStyle'/g' | sed 's|${THEMEDIR}|'"$ESCAPEDTOP/themes/CL/gtk-2.0|g" > "${HOME}/.dia-etc/gtkrc"
|
||||
+
|
||||
+ export GTK2_RC_FILES="$HOME/.dia-etc/gtkrc"
|
||||
+fi
|
||||
+
|
||||
# If the AppleCollationOrder preference doesn't exist, we fall back to using
|
||||
# the AppleLocale preference.
|
||||
LANGSTR=`defaults read .GlobalPreferences AppleCollationOrder 2>/dev/null`
|
||||
--
|
||||
1.8.4.4
|
||||
|
|
@ -1,60 +0,0 @@
|
|||
From 5f85d269123d99d88a261d5dd775a80ef71ef76d Mon Sep 17 00:00:00 2001
|
||||
From: Steffen Macke <sdteffen@sdteffen.de>
|
||||
Date: Wed, 3 Jul 2013 09:19:26 +0200
|
||||
Subject: [PATCH 13/24] Made XQuartz interaction more robust.
|
||||
|
||||
---
|
||||
installer/macosx/dia | 21 ++++++++++++++++++---
|
||||
1 file changed, 18 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/installer/macosx/dia b/installer/macosx/dia
|
||||
index 5b27386..61a676f 100755
|
||||
--- a/installer/macosx/dia
|
||||
+++ b/installer/macosx/dia
|
||||
@@ -1,10 +1,10 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Author: Aaron Voisine <aaron@voisine.org>
|
||||
-# Dia Modifications:
|
||||
+# Modifications:
|
||||
# Michael Wybrow <mjwybrow@users.sourceforge.net>
|
||||
# Jean-Olivier Irisson <jo.irisson@gmail.com>
|
||||
-#
|
||||
+# Steffen Macke <sdteffen@sdteffen.de>
|
||||
|
||||
CWD="`(cd \"\`dirname \\\"$0\\\"\`\"; echo \"$PWD\")`"
|
||||
# e.g. /Applications/Dia.app/Contents/Resources/bin
|
||||
@@ -24,7 +24,11 @@ TOP="`dirname \"$CWD\"`"
|
||||
#export PATH="/usr/texbin:/opt/local/bin:/sw/bin/:/Library/Frameworks/Python.framework/Versions/Current/bin:/usr/local/bin:$CWD:$PATH"
|
||||
|
||||
# Check for X11
|
||||
-if [[ "" == `which startx` ]]; then
|
||||
+if [[ "" == $DISPLAY ]]; then
|
||||
+ export DISPLAY=:0
|
||||
+fi
|
||||
+startx=`which startx`
|
||||
+if [[ "" == $startx ]]; then
|
||||
if [[ ! -e /opt/X11/bin/startx ]]; then
|
||||
osascript -e 'tell app "System Events" to display dialog "X11 (XQuartz) is not installed or not running. Would you like to visit xquartz.macosforge.org now in order to download and install XQuartz?" with icon 0'
|
||||
if [[ $? -eq 0 ]]; then
|
||||
@@ -33,6 +37,17 @@ if [[ "" == `which startx` ]]; then
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
+osascript -e 'tell app "XQuartz" to launch'
|
||||
+for i in `seq 1 30`; do
|
||||
+ if [[ `ps aux | grep -v grep | grep startx | wc -l` -lt 1 ]]; then
|
||||
+ sleep 1
|
||||
+ fi
|
||||
+done
|
||||
+if [[ "$DISPLAY" =~ "/tmp" ]]; then
|
||||
+ if [[ ! -e $DISPLAY ]]; then
|
||||
+ export DISPLAY=:0
|
||||
+ fi
|
||||
+fi
|
||||
|
||||
# Setup PYTHONPATH to use python modules shipped with Dia
|
||||
ARCH=`arch`
|
||||
--
|
||||
1.8.4.4
|
||||
|
|
@ -1,105 +0,0 @@
|
|||
From 7ac3e9ffac09f99a1aa2fe97a4dc0a688c9746b0 Mon Sep 17 00:00:00 2001
|
||||
From: Hans Breuer <hans@breuer.org>
|
||||
Date: Sat, 16 Mar 2013 17:56:58 +0100
|
||||
Subject: [PATCH 14/24] Bug 694025 - GLib drop support for adding interfaces
|
||||
after class_init
|
||||
|
||||
Without this Dia crashes at startup with new GLib version and the
|
||||
DiaGdkRenderer being default. Make a new DiaGdkInteractiveRenderer which
|
||||
follows the pattern also used for DiaCairoInteraciveRenderer. This should
|
||||
be functional equivalent to what was there before and should work for all
|
||||
current GLib versions.
|
||||
|
||||
(cherry picked from commit 213bdfe956bf8fe57c86316f68a09408fef1647e)
|
||||
---
|
||||
app/render_gdk.c | 60 ++++++++++++++++++++++++++++++++++----------------------
|
||||
1 file changed, 37 insertions(+), 23 deletions(-)
|
||||
|
||||
diff --git a/app/render_gdk.c b/app/render_gdk.c
|
||||
index 60ccb7a..b1e7ba4 100644
|
||||
--- a/app/render_gdk.c
|
||||
+++ b/app/render_gdk.c
|
||||
@@ -50,7 +50,21 @@ static void copy_to_window (DiaRenderer *renderer,
|
||||
gpointer window,
|
||||
int x, int y, int width, int height);
|
||||
|
||||
-static void dia_gdk_renderer_iface_init (DiaInteractiveRendererInterface* iface)
|
||||
+typedef struct _DiaGdkInteractiveRenderer DiaGdkInteractiveRenderer;
|
||||
+struct _DiaGdkInteractiveRenderer
|
||||
+{
|
||||
+ DiaGdkRenderer parent_instance; /*!< inheritance in object oriented C */
|
||||
+};
|
||||
+typedef struct _DiaGdkInteractiveRendererClass DiaGdkInteractiveRendererClass;
|
||||
+struct _DiaGdkInteractiveRendererClass
|
||||
+{
|
||||
+ DiaGdkRendererClass parent_class; /*!< the base class */
|
||||
+};
|
||||
+#define DIA_TYPE_GDK_INTERACTIVE_RENDERER (dia_gdk_interactive_renderer_get_type ())
|
||||
+#define DIA_GDK_INTERACTIVE_RENDERER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), DIA_TYPE_GDK_INTERACTIVE_RENDERER, DiaGdkInteractiveRenderer))
|
||||
+
|
||||
+static void
|
||||
+dia_gdk_renderer_iface_init (DiaInteractiveRendererInterface* iface)
|
||||
{
|
||||
iface->clip_region_clear = clip_region_clear;
|
||||
iface->clip_region_add_rect = clip_region_add_rect;
|
||||
@@ -61,35 +75,35 @@ static void dia_gdk_renderer_iface_init (DiaInteractiveRendererInterface* iface)
|
||||
iface->set_size = set_size;
|
||||
}
|
||||
|
||||
+G_DEFINE_TYPE_WITH_CODE (DiaGdkInteractiveRenderer, dia_gdk_interactive_renderer, DIA_TYPE_GDK_RENDERER,
|
||||
+ G_IMPLEMENT_INTERFACE (DIA_TYPE_INTERACTIVE_RENDERER_INTERFACE, dia_gdk_renderer_iface_init));
|
||||
+
|
||||
+static void
|
||||
+dia_gdk_interactive_renderer_class_init(DiaGdkInteractiveRendererClass *klass)
|
||||
+{
|
||||
+}
|
||||
+static void
|
||||
+dia_gdk_interactive_renderer_init(DiaGdkInteractiveRenderer *object)
|
||||
+{
|
||||
+ DiaGdkInteractiveRenderer *ia_renderer = DIA_GDK_INTERACTIVE_RENDERER (object);
|
||||
+ DiaGdkRenderer *renderer = DIA_GDK_RENDERER(object);
|
||||
+ DiaRenderer *dia_renderer = DIA_RENDERER(object);
|
||||
+
|
||||
+ dia_renderer->is_interactive = 1;
|
||||
+
|
||||
+ renderer->gc = NULL;
|
||||
+ renderer->pixmap = NULL;
|
||||
+ renderer->clip_region = NULL;
|
||||
+}
|
||||
+
|
||||
DiaRenderer *
|
||||
new_gdk_renderer(DDisplay *ddisp)
|
||||
{
|
||||
DiaGdkRenderer *renderer;
|
||||
GType renderer_type = 0;
|
||||
|
||||
- renderer = g_object_new (DIA_TYPE_GDK_RENDERER, NULL);
|
||||
+ renderer = g_object_new (DIA_TYPE_GDK_INTERACTIVE_RENDERER, NULL);
|
||||
renderer->transform = dia_transform_new (&ddisp->visible, &ddisp->zoom_factor);
|
||||
- if (!DIA_GET_INTERACTIVE_RENDERER_INTERFACE (renderer))
|
||||
- {
|
||||
- static const GInterfaceInfo irenderer_iface_info =
|
||||
- {
|
||||
- (GInterfaceInitFunc) dia_gdk_renderer_iface_init,
|
||||
- NULL, /* iface_finalize */
|
||||
- NULL /* iface_data */
|
||||
- };
|
||||
-
|
||||
- renderer_type = DIA_TYPE_GDK_RENDERER;
|
||||
- /* register the interactive renderer interface */
|
||||
- g_type_add_interface_static (renderer_type,
|
||||
- DIA_TYPE_INTERACTIVE_RENDERER_INTERFACE,
|
||||
- &irenderer_iface_info);
|
||||
-
|
||||
- }
|
||||
- renderer->parent_instance.is_interactive = 1;
|
||||
- renderer->gc = NULL;
|
||||
-
|
||||
- renderer->pixmap = NULL;
|
||||
- renderer->clip_region = NULL;
|
||||
|
||||
return DIA_RENDERER(renderer);
|
||||
}
|
||||
--
|
||||
1.8.4.4
|
||||
|
|
@ -1,28 +0,0 @@
|
|||
From 8fd585ca493d7d52f2af866cd9ce6e064da6bf15 Mon Sep 17 00:00:00 2001
|
||||
From: Hans Breuer <hans@breuer.org>
|
||||
Date: Fri, 16 Aug 2013 13:33:42 +0200
|
||||
Subject: [PATCH 15/24] Fix assumption that table->prop_dialog is always valid
|
||||
|
||||
Not sure how I made it crash, but this extra safety measure
|
||||
should not hurt in any case.
|
||||
---
|
||||
objects/Database/table_dialog.c | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/objects/Database/table_dialog.c b/objects/Database/table_dialog.c
|
||||
index 038f8de..a17cead 100644
|
||||
--- a/objects/Database/table_dialog.c
|
||||
+++ b/objects/Database/table_dialog.c
|
||||
@@ -269,7 +269,8 @@ table_state_set (TableState * state, Table * table)
|
||||
table_compute_width_height (table);
|
||||
table_update_positions (table);
|
||||
|
||||
- gtk_list_clear_items (table->prop_dialog->attributes_list, 0, -1);
|
||||
+ if (table->prop_dialog)
|
||||
+ gtk_list_clear_items (table->prop_dialog->attributes_list, 0, -1);
|
||||
}
|
||||
|
||||
static void
|
||||
--
|
||||
1.8.4.4
|
||||
|
|
@ -1,38 +0,0 @@
|
|||
From 2661a641b53899e994c15195057a8fe3c16becf4 Mon Sep 17 00:00:00 2001
|
||||
From: Hans Breuer <hans@breuer.org>
|
||||
Date: Fri, 16 Aug 2013 14:01:26 +0200
|
||||
Subject: [PATCH 16/24] Bug 672190 - Inputs Methods don't work in integrated
|
||||
mode
|
||||
|
||||
Connect im-related signals also to the integrated UI canvas
|
||||
---
|
||||
app/interface.c | 13 +++++++++++++
|
||||
1 file changed, 13 insertions(+)
|
||||
|
||||
diff --git a/app/interface.c b/app/interface.c
|
||||
index dc0bb63..36b9e15 100644
|
||||
--- a/app/interface.c
|
||||
+++ b/app/interface.c
|
||||
@@ -561,6 +561,19 @@ use_integrated_ui_for_display_shell(DDisplay *ddisp, char *title)
|
||||
GDK_POINTER_MOTION_HINT_MASK |
|
||||
GDK_FOCUS_CHANGE_MASK);
|
||||
|
||||
+ g_signal_connect (GTK_OBJECT (ddisp->container), "focus_out_event",
|
||||
+ G_CALLBACK (ddisplay_focus_out_event),
|
||||
+ ddisp);
|
||||
+ g_signal_connect (GTK_OBJECT (ddisp->container), "focus_in_event",
|
||||
+ G_CALLBACK (ddisplay_focus_in_event),
|
||||
+ ddisp);
|
||||
+ g_signal_connect (GTK_OBJECT (ddisp->container), "realize",
|
||||
+ G_CALLBACK (ddisplay_realize),
|
||||
+ ddisp);
|
||||
+ g_signal_connect (GTK_OBJECT (ddisp->container), "unrealize",
|
||||
+ G_CALLBACK (ddisplay_unrealize),
|
||||
+ ddisp);
|
||||
+
|
||||
notebook_page_index = gtk_notebook_append_page (GTK_NOTEBOOK(ui.diagram_notebook),
|
||||
ddisp->container,
|
||||
tab_label_container);
|
||||
--
|
||||
1.8.4.4
|
||||
|
|
@ -1,42 +0,0 @@
|
|||
From eb4e80afe3f25b1d91f00bdd8dbf67e38adad1f8 Mon Sep 17 00:00:00 2001
|
||||
From: Hans Breuer <hans@breuer.org>
|
||||
Date: Fri, 16 Aug 2013 15:21:16 +0200
|
||||
Subject: [PATCH 17/24] Bug 660574 - Avoid cairo going into an endless loop
|
||||
with too small arcs
|
||||
|
||||
this should fix the issue with SADT flow arrow, although I could not reproduce it.
|
||||
---
|
||||
plug-ins/cairo/diacairo-renderer.c | 10 +++++++---
|
||||
1 file changed, 7 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/plug-ins/cairo/diacairo-renderer.c b/plug-ins/cairo/diacairo-renderer.c
|
||||
index cd13247..137411e 100644
|
||||
--- a/plug-ins/cairo/diacairo-renderer.c
|
||||
+++ b/plug-ins/cairo/diacairo-renderer.c
|
||||
@@ -499,6 +499,7 @@ draw_arc(DiaRenderer *self,
|
||||
DiaCairoRenderer *renderer = DIA_CAIRO_RENDERER (self);
|
||||
Point start;
|
||||
double a1, a2;
|
||||
+ real onedu = 0.0;
|
||||
|
||||
DIAG_NOTE(g_message("draw_arc %fx%f <%f,<%f",
|
||||
width, height, angle1, angle2));
|
||||
@@ -515,9 +516,12 @@ draw_arc(DiaRenderer *self,
|
||||
a1 = - (angle1 / 180.0) * G_PI;
|
||||
a2 = - (angle2 / 180.0) * G_PI;
|
||||
/* FIXME: to handle width != height some cairo_scale/cairo_translate would be needed */
|
||||
- cairo_arc_negative (renderer->cr, center->x, center->y,
|
||||
- width > height ? height / 2.0 : width / 2.0, /* FIXME 2nd radius */
|
||||
- a1, a2);
|
||||
+ ensure_minimum_one_device_unit (renderer, &onedu);
|
||||
+ /* FIXME2: with too small arcs cairo goes into an endless loop */
|
||||
+ if (height/2.0 > onedu && width/2.0 > onedu)
|
||||
+ cairo_arc_negative (renderer->cr, center->x, center->y,
|
||||
+ width > height ? height / 2.0 : width / 2.0, /* FIXME 2nd radius */
|
||||
+ a1, a2);
|
||||
cairo_stroke (renderer->cr);
|
||||
DIAG_STATE(renderer->cr)
|
||||
}
|
||||
--
|
||||
1.8.4.4
|
||||
|
|
@ -1,130 +0,0 @@
|
|||
From 61431fec37ed855db7284c6737cb3777577cc904 Mon Sep 17 00:00:00 2001
|
||||
From: Hans Breuer <hans@breuer.org>
|
||||
Date: Fri, 16 Aug 2013 20:54:12 +0200
|
||||
Subject: [PATCH 18/24] Bug 683700 - vdx full of errors
|
||||
|
||||
Ensure message_error strings are linefeed-terminated.
|
||||
Plus fixes merged from master:
|
||||
|
||||
cairo: don't screw cairo's matrix by scaling with 0
|
||||
Seen with the VDX attached to bug 683700 - maybe there is also something wrong with the import?
|
||||
|
||||
vdx: UTF-8 safe variant to remove last newline
|
||||
With the VDX attached to bug 683700 scrambled text appeared. Now corrected with the UTF-8 safe variant to search and replace "\n".
|
||||
---
|
||||
plug-ins/cairo/diacairo-renderer.c | 23 ++++++-----------------
|
||||
plug-ins/vdx/vdx-import.c | 21 +++++++++++++++++++--
|
||||
plug-ins/vdx/vdx-xml.c | 2 +-
|
||||
3 files changed, 26 insertions(+), 20 deletions(-)
|
||||
|
||||
diff --git a/plug-ins/cairo/diacairo-renderer.c b/plug-ins/cairo/diacairo-renderer.c
|
||||
index 137411e..57f6184 100644
|
||||
--- a/plug-ins/cairo/diacairo-renderer.c
|
||||
+++ b/plug-ins/cairo/diacairo-renderer.c
|
||||
@@ -572,9 +572,14 @@ _ellipse(DiaRenderer *self,
|
||||
DIAG_NOTE(g_message("%s_ellipse %fx%f center @ %f,%f",
|
||||
fill ? "fill" : "draw", width, height, center->x, center->y));
|
||||
|
||||
+ /* avoid screwing cairo context - I'd say restore should fix it again, but it doesn't
|
||||
+ * (dia.exe:3152): DiaCairo-WARNING **: diacairo-renderer.c:254, invalid matrix (not invertible)
|
||||
+ */
|
||||
+ if (!(width > 0. && height > 0.))
|
||||
+ return;
|
||||
+
|
||||
cairo_set_source_rgba (renderer->cr, color->red, color->green, color->blue, 1.0);
|
||||
|
||||
-#if 1
|
||||
cairo_save (renderer->cr);
|
||||
/* don't create a line from the current point to the beginning
|
||||
* of the ellipse */
|
||||
@@ -584,22 +589,6 @@ _ellipse(DiaRenderer *self,
|
||||
cairo_scale (renderer->cr, width / 2., height / 2.);
|
||||
cairo_arc (renderer->cr, 0., 0., 1., 0., 2 * G_PI);
|
||||
cairo_restore (renderer->cr);
|
||||
-#else
|
||||
- /* FIXME: how to make a perfect ellipse from a bezier ? */
|
||||
- co = sqrt(pow(width,2)/4 + pow(height,2)/4);
|
||||
-
|
||||
- cairo_new_path (renderer->cr);
|
||||
- cairo_move_to (renderer->cr,
|
||||
- center->x, center->y - height/2);
|
||||
- cairo_curve_to (renderer->cr,
|
||||
- center->x + co, center->y - height/2,
|
||||
- center->x + co, center->y + height/2,
|
||||
- center->x, center->y + height/2);
|
||||
- cairo_curve_to (renderer->cr,
|
||||
- center->x - co, center->y + height/2,
|
||||
- center->x - co, center->y - height/2,
|
||||
- center->x, center->y - height/2);
|
||||
-#endif
|
||||
|
||||
if (fill)
|
||||
cairo_fill (renderer->cr);
|
||||
diff --git a/plug-ins/vdx/vdx-import.c b/plug-ins/vdx/vdx-import.c
|
||||
index ffefa58..7da0c05 100644
|
||||
--- a/plug-ins/vdx/vdx-import.c
|
||||
+++ b/plug-ins/vdx/vdx-import.c
|
||||
@@ -1737,7 +1737,7 @@ plot_nurbs(const struct vdx_Geom *Geom, const struct vdx_XForm *XForm,
|
||||
}
|
||||
if (n % 4 || ! n)
|
||||
{
|
||||
- message_error(_("Invalid NURBS formula"));
|
||||
+ message_error(_("Invalid NURBS formula\n"));
|
||||
g_debug("Invalid NURBS formula");
|
||||
return 0;
|
||||
}
|
||||
@@ -2066,7 +2066,7 @@ plot_image(const struct vdx_Geom *Geom, const struct vdx_XForm *XForm,
|
||||
}
|
||||
else
|
||||
{
|
||||
- message_error(_("Couldn't handle foreign object type %s"),
|
||||
+ message_error(_("Couldn't handle foreign object type %s\n"),
|
||||
ForeignData->ForeignType ? ForeignData->ForeignType
|
||||
: "Unknown");
|
||||
return 0;
|
||||
@@ -2398,12 +2398,29 @@ plot_text(const struct vdx_Text *Text, const struct vdx_XForm *XForm,
|
||||
}
|
||||
}
|
||||
|
||||
+#if 0 /* this is not utf-8 safe - see bug 683700 */
|
||||
/* Remove trailing line breaks */
|
||||
while (tprop->text_data[0] &&
|
||||
isspace(tprop->text_data[strlen(tprop->text_data)-1]))
|
||||
{
|
||||
tprop->text_data[strlen(tprop->text_data)-1] = 0;
|
||||
}
|
||||
+#else
|
||||
+ {
|
||||
+ char *s = tprop->text_data;
|
||||
+ char *srep = NULL;
|
||||
+ while ( (s = g_utf8_strchr(s, -1, '\n')) != NULL ) {
|
||||
+ srep = s;
|
||||
+ s = g_utf8_next_char(s);
|
||||
+ if (*s)
|
||||
+ srep = NULL;
|
||||
+ else
|
||||
+ break;
|
||||
+ }
|
||||
+ if (srep)
|
||||
+ *srep = '\0';
|
||||
+ }
|
||||
+#endif
|
||||
|
||||
/* Other standard text properties */
|
||||
tprop->attr.alignment = alignment;
|
||||
diff --git a/plug-ins/vdx/vdx-xml.c b/plug-ins/vdx/vdx-xml.c
|
||||
index 1fdac65..1c9567d 100644
|
||||
--- a/plug-ins/vdx/vdx-xml.c
|
||||
+++ b/plug-ins/vdx/vdx-xml.c
|
||||
@@ -3341,7 +3341,7 @@ vdx_read_object(xmlNodePtr cur, VDXDocument *theDoc, void *p)
|
||||
return s;
|
||||
}
|
||||
|
||||
- message_error(_("Can't decode object %s"), (char*)cur->name);
|
||||
+ message_error(_("Can't decode object %s\n"), (char*)cur->name);
|
||||
return 0;
|
||||
}
|
||||
|
||||
--
|
||||
1.8.4.4
|
||||
|
|
@ -1,75 +0,0 @@
|
|||
From 665c12145d6d236992d213c73b78e2f1846f6def Mon Sep 17 00:00:00 2001
|
||||
From: Steffen Macke <sdteffen@sdteffen.de>
|
||||
Date: Fri, 16 Aug 2013 21:50:50 +0200
|
||||
Subject: [PATCH 19/24] Bug #667500 - Avoid $\r syntax for NSIS line breaks to
|
||||
avoid POEdit confusion
|
||||
|
||||
---
|
||||
installer/win32/Makefile.am | 2 ++
|
||||
installer/win32/gennsh.c | 24 ++++++++++++++++--------
|
||||
2 files changed, 18 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/installer/win32/Makefile.am b/installer/win32/Makefile.am
|
||||
index f715f7e..3335fb1 100644
|
||||
--- a/installer/win32/Makefile.am
|
||||
+++ b/installer/win32/Makefile.am
|
||||
@@ -1,4 +1,6 @@
|
||||
## Process this file with automake to produce Makefile.in
|
||||
+## Manually build gennsh on Linux:
|
||||
+## gcc `pkg-config --cflags glib-2.0` -o gennsh gennsh.c
|
||||
|
||||
SUBDIRS = locale
|
||||
|
||||
diff --git a/installer/win32/gennsh.c b/installer/win32/gennsh.c
|
||||
index d6603b5..fa48d16 100755
|
||||
--- a/installer/win32/gennsh.c
|
||||
+++ b/installer/win32/gennsh.c
|
||||
@@ -2,7 +2,7 @@
|
||||
* Copyright (C) 1998 Alexander Larsson
|
||||
*
|
||||
* gennsh.c
|
||||
- * Copyright (C) 2009,2011 Steffen Macke <sdteffen@sdteffen.de>
|
||||
+ * Copyright (C) 2009,2011,2013 Steffen Macke <sdteffen@sdteffen.de>
|
||||
*
|
||||
* gennsh is a program that allows to generate locale file for the
|
||||
* Dia for Windows installer
|
||||
@@ -71,14 +71,22 @@ int main(int argc, char *argv[])
|
||||
/* Installer message: Dia uninstaller entry in Control Panel */
|
||||
printf("!define DIA_UNINSTALL_DESC \"%s\"\n", _("Dia (remove only)"));
|
||||
|
||||
- /* Installer message: confirmation question. Keep $\r */
|
||||
- printf("!define DIA_PROMPT_WIPEOUT \"%s\"\n", g_strescape(_("Your old Dia directory is about to be deleted. Would you like to continue?$\r$\rNote: Any non-standard plugins that you may have installed will be deleted.$\rDia user settings will not be affected."), ""));
|
||||
+ /* Installer message: directory delete confirmation line 1 */
|
||||
+ printf("!define DIA_PROMPT_WIPEOUT \"%s$\\r$\\r%s$\\r%s\"\n", _("Your old Dia directory is about to be deleted. Would you like to continue?"),
|
||||
+ /* Installer message: directory delete confirmation line 2 */
|
||||
+ _("Note: Any non-standard plugins that you may have installed will be deleted."),
|
||||
+ /* Installer message: directory delete confirmation line 3*/
|
||||
+ _("Dia user settings will not be affected."));
|
||||
|
||||
- /* Installer message: confirmatin question. Keep $\r */
|
||||
- printf("!define DIA_PROMPT_DIR_EXISTS \"%s\"\n", g_strescape(_("The installation directory you specified already exists. Any contents$\rwill be deleted. Would you like to continue?"), ""));
|
||||
+ /* Installer message: DIA_PROMPT_DIR_EXISTS line 1 */
|
||||
+ printf("!define DIA_PROMPT_DIR_EXISTS \"%s$\\r%s\"\n", _("The installation directory you specified already exists. Any contents"),
|
||||
+ /* Installer message: DIA_PROMP_DIR_EXISTS line 2 */
|
||||
+ _("will be deleted. Would you like to continue?"));
|
||||
|
||||
- /* Installer message: Uninstall Section Prompts. Keep $\r */
|
||||
- printf("!define un.DIA_UNINSTALL_ERROR_1 \"%s\"\n", g_strescape(_("The uninstaller could not find registry entries for Dia.$\rIt is likely that another user installed this application."), ""));
|
||||
+ /* Installer message: registry entries not found line 1 */
|
||||
+ printf("!define un.DIA_UNINSTALL_ERROR_1 \"%s$\\r%s\"\n", _("The uninstaller could not find registry entries for Dia."),
|
||||
+ /* Installer message: registry entries not found line 2 */
|
||||
+ _("It is likely that another user installed this application."));
|
||||
|
||||
/* Installer message: Uninstall error message */
|
||||
printf("!define un.DIA_UNINSTALL_ERROR_2 \"%s\"\n", _("You do not have permission to uninstall this application."));
|
||||
@@ -87,6 +95,6 @@ int main(int argc, char *argv[])
|
||||
printf("!define un.DIA_UNINSTALLATION_WARNING \"%s\"\n", _("This will completely delete $INSTDIR and all subdirectories. Continue?"));
|
||||
|
||||
/* Installer message: Uninstallation warning. Keep $\PROFILE\.dia */
|
||||
- printf("!define un.DIA_DOTDIA_WARNING \"%s\"\n", _("This will completely delete $PROFILE\.dia and all subdirectories. Continue?"));
|
||||
+ printf("!define un.DIA_DOTDIA_WARNING \"%s\"\n", _("This will completely delete $PROFILE\\.dia and all subdirectories. Continue?"));
|
||||
return 0;
|
||||
}
|
||||
--
|
||||
1.8.4.4
|
||||
|
|
@ -1,25 +0,0 @@
|
|||
From 82c2287bfc61012ac2fbba0a7c8d359048f09b92 Mon Sep 17 00:00:00 2001
|
||||
From: Steffen Macke <sdteffen@sdteffen.de>
|
||||
Date: Sun, 18 Aug 2013 13:22:35 +0200
|
||||
Subject: [PATCH 20/24] Fixed black light shape reference.
|
||||
|
||||
---
|
||||
sheets/Lights.sheet.in | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/sheets/Lights.sheet.in b/sheets/Lights.sheet.in
|
||||
index a246043..4613fa1 100644
|
||||
--- a/sheets/Lights.sheet.in
|
||||
+++ b/sheets/Lights.sheet.in
|
||||
@@ -28,7 +28,7 @@
|
||||
<_description>Blinders</_description>
|
||||
</object>
|
||||
<br/>
|
||||
- <object name="Lights - Black light">
|
||||
+ <object name="Lights - Blacklight">
|
||||
<_description>Black light</_description>
|
||||
</object>
|
||||
<object name="Lights - Stroboscope">
|
||||
--
|
||||
1.8.4.4
|
||||
|
File diff suppressed because it is too large
Load Diff
|
@ -1,132 +0,0 @@
|
|||
From 80f95dfaeb92c44e49e51b8a69e301ea879b846b Mon Sep 17 00:00:00 2001
|
||||
From: Hans Breuer <hans@breuer.org>
|
||||
Date: Thu, 3 Oct 2013 20:04:37 +0200
|
||||
Subject: [PATCH 24/24] Bug 709017 [warningectomy] array subscript is above
|
||||
array bounds
|
||||
|
||||
Get rid of the temporary array for font name, loose the limitation
|
||||
of maximum font name length and spare a string copy.
|
||||
---
|
||||
lib/dia_svg.c | 82 ++++++++++++++++-------------------------------------------
|
||||
1 file changed, 22 insertions(+), 60 deletions(-)
|
||||
|
||||
diff --git a/lib/dia_svg.c b/lib/dia_svg.c
|
||||
index eea21b2..4eec0d0 100644
|
||||
--- a/lib/dia_svg.c
|
||||
+++ b/lib/dia_svg.c
|
||||
@@ -127,11 +127,6 @@ _parse_color(gint32 *color, const char *str)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
-enum
|
||||
-{
|
||||
- FONT_NAME_LENGTH_MAX = 40
|
||||
-};
|
||||
-
|
||||
/** This function not only parses the style attribute of the given node
|
||||
* it also extracts some of the style properties directly.
|
||||
* @param node An XML node to parse a style from.
|
||||
@@ -144,9 +139,7 @@ void
|
||||
dia_svg_parse_style(xmlNodePtr node, DiaSvgStyle *s, real user_scale)
|
||||
{
|
||||
xmlChar *str;
|
||||
- gchar temp[FONT_NAME_LENGTH_MAX+1]; /* font-family names will be limited to 40 characters */
|
||||
int i = 0;
|
||||
- gboolean over = FALSE;
|
||||
char *family = NULL, *style = NULL, *weight = NULL;
|
||||
|
||||
str = xmlGetProp(node, (const xmlChar *)"style");
|
||||
@@ -161,68 +154,37 @@ dia_svg_parse_style(xmlNodePtr node, DiaSvgStyle *s, real user_scale)
|
||||
if (!strncmp("font-family:", ptr, 12)) {
|
||||
ptr += 12;
|
||||
while ((ptr[0] != '\0') && g_ascii_isspace(ptr[0])) ptr++;
|
||||
- i = 0; over = FALSE;
|
||||
- while (ptr[0] != '\0' && ptr[0] != ';' && !over) {
|
||||
- if (i < FONT_NAME_LENGTH_MAX) {
|
||||
- temp[i] = ptr[0];
|
||||
- } else over = TRUE;
|
||||
- i++;
|
||||
- ptr++;
|
||||
- }
|
||||
- temp[i] = '\0';
|
||||
-
|
||||
- if (!over) {
|
||||
- if (strcmp (temp, "sanserif") == 0 || strcmp (temp, "sans-serif") == 0)
|
||||
- family = g_strdup ("sans"); /* special name adaption */
|
||||
- else
|
||||
- family = g_strdup(temp);
|
||||
- }
|
||||
+ i = 0;
|
||||
+ while (ptr[i] != '\0' && ptr[i] != ';') ++i;
|
||||
+ /* with i==0 we fall back to 'sans' too */
|
||||
+ if (strncmp (ptr, "sanserif", i) == 0 || strncmp (ptr, "sans-serif", i) == 0)
|
||||
+ family = g_strdup ("sans"); /* special name adaption */
|
||||
+ else
|
||||
+ family = i > 0 ? g_strndup(ptr, i) : NULL;
|
||||
+ ptr += i;
|
||||
} else if (!strncmp("font-weight:", ptr, 12)) {
|
||||
ptr += 12;
|
||||
while ((ptr[0] != '\0') && g_ascii_isspace(ptr[0])) ptr++;
|
||||
- i = 0; over = FALSE;
|
||||
- while (ptr[0] != '\0' && ptr[0] != ';' && !over) {
|
||||
- if (i < FONT_NAME_LENGTH_MAX) {
|
||||
- temp[i] = ptr[0];
|
||||
- } else over = TRUE;
|
||||
- i++;
|
||||
- ptr++;
|
||||
- }
|
||||
- temp[i] = '\0';
|
||||
-
|
||||
- if (!over) weight = g_strdup(temp);
|
||||
+ i = 0;
|
||||
+ while (ptr[i] != '\0' && ptr[i] != ';') ++i;
|
||||
+ weight = i > 0 ? g_strndup (ptr, i) : NULL;
|
||||
+ ptr += i;
|
||||
} else if (!strncmp("font-style:", ptr, 11)) {
|
||||
ptr += 11;
|
||||
while ((ptr[0] != '\0') && g_ascii_isspace(ptr[0])) ptr++;
|
||||
- i = 0; over = FALSE;
|
||||
- while (ptr[0] != '\0' && ptr[0] != ';' && !over) {
|
||||
- if (i < FONT_NAME_LENGTH_MAX) {
|
||||
- temp[i] = ptr[0];
|
||||
- } else over = TRUE;
|
||||
- i++;
|
||||
- ptr++;
|
||||
- }
|
||||
- temp[i] = '\0';
|
||||
-
|
||||
- if (!over) style = g_strdup(temp);
|
||||
+ i = 0;
|
||||
+ while (ptr[i] != '\0' && ptr[i] != ';') ++i;
|
||||
+ style = i > 0 ? g_strndup(ptr, i) : NULL;
|
||||
+ ptr += i;
|
||||
} else if (!strncmp("font-size:", ptr, 10)) {
|
||||
ptr += 10;
|
||||
while ((ptr[0] != '\0') && g_ascii_isspace(ptr[0])) ptr++;
|
||||
- i = 0; over = FALSE;
|
||||
- while (ptr[0] != '\0' && ptr[0] != ';' && !over) {
|
||||
- if (i < FONT_NAME_LENGTH_MAX) {
|
||||
- temp[i] = ptr[0];
|
||||
- } else over = TRUE;
|
||||
- i++;
|
||||
- ptr++;
|
||||
- }
|
||||
- temp[i] = '\0';
|
||||
-
|
||||
- if (!over) {
|
||||
- s->font_height = g_ascii_strtod(temp, NULL);
|
||||
- if (user_scale > 0)
|
||||
- s->font_height /= user_scale;
|
||||
- }
|
||||
+ i = 0;
|
||||
+ while (ptr[i] != '\0' && ptr[i] != ';') ++i;
|
||||
+ s->font_height = g_ascii_strtod(ptr, NULL);
|
||||
+ ptr += i;
|
||||
+ if (user_scale > 0)
|
||||
+ s->font_height /= user_scale;
|
||||
} else if (!strncmp("text-anchor:", ptr, 12)) {
|
||||
ptr += 12;
|
||||
while ((ptr[0] != '\0') && g_ascii_isspace(ptr[0])) ptr++;
|
||||
--
|
||||
1.8.4.4
|
||||
|
|
@ -6,14 +6,14 @@
|
|||
# customary to leave one space after the ':' except on otherwise blank lines.
|
||||
|
||||
|-----handy-ruler------------------------------------------------------|
|
||||
dia: Dia (diagram creation program)
|
||||
dia: dia (diagram creation program)
|
||||
dia:
|
||||
dia: Dia is inspired by the commercial Windows program 'Visio', though
|
||||
dia: more geared towards informal diagrams for casual use. It can be used
|
||||
dia: to draw many different kinds of diagrams. It currently has special
|
||||
dia: objects to help draw entity relationship diagrams, UML diagrams,
|
||||
dia: flowcharts, network diagrams, and many other diagrams. It is also
|
||||
dia: possible to add support for new shapes by writing simple XML files,
|
||||
dia: using a subset of SVG to draw the shape.
|
||||
dia: Dia is an application for creating technical diagrams. Its interface
|
||||
dia: and features are loosely patterned after the Windows program Visio.
|
||||
dia: Its features include multiple-page printing, export to many formats
|
||||
dia: and the ability to use custom shapes created by the user as simple
|
||||
dia: XML descriptions. Dia is useful for drawing UML diagrams, network
|
||||
dia: maps and flowcharts.
|
||||
dia:
|
||||
dia: Homepage: https://wiki.gnome.org/Apps/Dia/
|
||||
dia:
|
||||
|
|
Loading…
Reference in New Issue