From 17623f1900a20499b5341ba3d8adb6c3574473de Mon Sep 17 00:00:00 2001
From: Hammerschmid Daniel <daniel@linux-4p3t.site>
Date: Mon, 15 Jul 2013 14:33:21 +0200
Subject: [PATCH] Changed line dash phase to HPDF_REAL
Changed dash phase to HPDF_REAL.
Removed if-statement which checked if the number of dash pattern array elements is even, because I could not find a reason for this check in the PDF reference.
---
include/hpdf.h | 2 +-
include/hpdf_types.h | 4 ++--
src/hpdf_gstate.c | 2 +-
src/hpdf_page_operator.c | 10 +++-------
src/hpdf_pages.c | 2 +-
5 files changed, 8 insertions(+), 12 deletions(-)
diff --git a/include/hpdf.h b/include/hpdf.h
index ee4b6df..93fd08c 100644
--- a/include/hpdf.h
+++ b/include/hpdf.h
@@ -1151,7 +1151,7 @@ HPDF_EXPORT(HPDF_STATUS)
HPDF_Page_SetDash (HPDF_Page page,
const HPDF_REAL *dash_ptn,
HPDF_UINT num_param,
- HPDF_UINT phase);
+ HPDF_REAL phase);
diff --git a/include/hpdf_types.h b/include/hpdf_types.h
index 8b3e0a8..009beff 100644
--- a/include/hpdf_types.h
+++ b/include/hpdf_types.h
@@ -207,9 +207,9 @@ typedef struct _HPDF_TextWidth {
/*------ dash mode ----------------------------------------------------------*/
typedef struct _HPDF_DashMode {
- HPDF_UINT16 ptn[8];
+ HPDF_REAL ptn[8];
HPDF_UINT num_ptn;
- HPDF_UINT phase;
+ HPDF_REAL phase;
} HPDF_DashMode;
diff --git a/src/hpdf_gstate.c b/src/hpdf_gstate.c
index c203c4d..8ad7bb0 100644
--- a/src/hpdf_gstate.c
+++ b/src/hpdf_gstate.c
@@ -70,7 +70,7 @@ HPDF_GState_New (HPDF_MMgr mmgr,
HPDF_TransMatrix DEF_MATRIX = {1, 0, 0, 1, 0, 0};
HPDF_RGBColor DEF_RGB_COLOR = {0, 0, 0};
HPDF_CMYKColor DEF_CMYK_COLOR = {0, 0, 0, 0};
- HPDF_DashMode DEF_DASH_MODE = {{0, 0, 0, 0, 0, 0, 0, 0}, 0, 0};
+ HPDF_DashMode DEF_DASH_MODE = {{0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}, 0, 0.0f};
gstate->trans_matrix = DEF_MATRIX;
gstate->line_width = HPDF_DEF_LINEWIDTH;
diff --git a/src/hpdf_page_operator.c b/src/hpdf_page_operator.c
index 4306f89..fd34619 100644
--- a/src/hpdf_page_operator.c
+++ b/src/hpdf_page_operator.c
@@ -21,7 +21,7 @@
#include "hpdf.h"
static const HPDF_Point INIT_POS = {0, 0};
-static const HPDF_DashMode INIT_MODE = {{0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}, 0, 0};
+static const HPDF_DashMode INIT_MODE = {{0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}, 0, 0.0f};
static HPDF_STATUS
@@ -177,7 +177,7 @@ HPDF_EXPORT(HPDF_STATUS)
HPDF_Page_SetDash (HPDF_Page page,
const HPDF_REAL *dash_ptn,
HPDF_UINT num_param,
- HPDF_UINT phase)
+ HPDF_REAL phase)
{
HPDF_STATUS ret = HPDF_Page_CheckState (page, HPDF_GMODE_PAGE_DESCRIPTION |
HPDF_GMODE_TEXT_OBJECT);
@@ -193,10 +193,6 @@ HPDF_Page_SetDash (HPDF_Page page,
if (ret != HPDF_OK)
return ret;
- if (num_param != 1 && (num_param / 2) * 2 != num_param)
- return HPDF_RaiseError (page->error, HPDF_PAGE_INVALID_PARAM_COUNT,
- num_param);
-
if (num_param == 0 && phase > 0)
return HPDF_RaiseError (page->error, HPDF_PAGE_OUT_OF_RANGE,
phase);
@@ -220,7 +216,7 @@ HPDF_Page_SetDash (HPDF_Page page,
*pbuf++ = ']';
*pbuf++ = ' ';
- pbuf = HPDF_IToA (pbuf, phase, eptr);
+ pbuf = HPDF_FToA (pbuf, phase, eptr);
HPDF_StrCpy (pbuf, " d\012", eptr);
attr = (HPDF_PageAttr)page->attr;
diff --git a/src/hpdf_pages.c b/src/hpdf_pages.c
index fcc9b5c..362ded0 100644
--- a/src/hpdf_pages.c
+++ b/src/hpdf_pages.c
@@ -890,7 +890,7 @@ HPDF_Page_GetMiterLimit (HPDF_Page page)
HPDF_EXPORT(HPDF_DashMode)
HPDF_Page_GetDash (HPDF_Page page)
{
- HPDF_DashMode mode = {{0, 0, 0, 0, 0, 0, 0, 0}, 0, 0};
+ HPDF_DashMode mode = {{0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}, 0, 0.0f};
HPDF_PTRACE((" HPDF_Page_GetDash\n"));
--
2.21.1 (Apple Git-122.3)