# Bazaar merge directive format 2 (Bazaar 0.90)
# revision_id: albert.merono@est.fib.upc.edu-20110315161516-\
# qy5z8yv7682y4tds
# target_branch: bzr://bzr.sv.gnu.org/pdf/libgnupdf/trunk/
# testament_sha1: ebfa7fb9a3813d380b83326ac3ce96f99d3f63d4
# timestamp: 2011-03-15 17:20:05 +0100
# base_revision_id: aleksander@gnu.org-20110310202209-n109f6wwc0092qgc
#
# Begin patch
=== modified file 'configure.ac'
--- configure.ac 2011-01-27 23:21:59 +0000
+++ configure.ac 2011-03-15 16:15:16 +0000
@@ -102,6 +102,9 @@
dnl Some of the libraries are mandatory, and some are optional. See
dnl the section "Report errors" below.
+dnl libuuid
+AC_LIB_HAVE_LINKFLAGS([uuid])
+
dnl libpthread
AC_LIB_HAVE_LINKFLAGS([pthread])
@@ -394,6 +397,10 @@
missing_libs="$missing_libs
libpthread"
fi
+if test "x$HAVE_LIBUUID" != "xyes"; then
+ missing_libs="$missing_libs
+ libuuid"
+fi
if test "x$HAVE_LIBGPG_ERROR" != "xyes"; then
missing_libs="$missing_libs
libgpg-error"
=== modified file 'src/Makefile.am'
--- src/Makefile.am 2011-01-27 23:21:59 +0000
+++ src/Makefile.am 2011-03-15 16:15:16 +0000
@@ -32,7 +32,8 @@
TYPES_MODULE_SOURCES = base/pdf-types.h \
base/pdf-types-buffer.c base/pdf-types-buffer.h \
- base/pdf-types-pmon.h
+ base/pdf-types-pmon.h \
+ base/pdf-types-uuid.c base/pdf-types-uuid.h
ERROR_MODULE_SOURCES = base/pdf-error.c base/pdf-error.h
@@ -96,7 +97,7 @@
BASE_LAYER_SOURCES = base/pdf-base.c base/pdf-base.h \
$(ALLOC_MODULE_SOURCES) \
- $(TYPES_MODULE_SOURCES) \
+OA $(TYPES_MODULE_SOURCES) \
$(FP_MODULE_SOURCES) \
$(FILESYSTEM_MODULE_SOURCES) \
$(STM_MODULE_SOURCES) \
@@ -118,7 +119,7 @@
endif
libgnupdf_la_LDFLAGS = $(top_builddir)/lib/libgnu.la \
- $(LTLIBPTHREAD) $(LTLIBM) \
+ $(LTLIBUUID) $(LTLIBPTHREAD) $(LTLIBM) \
$(LTLIBJBIG2DEC) $(LTLIBJPEG) $(LTLIBCURL) \
$(LIBGCRYPT_LIBS) $(LTLIBGPG_ERROR) $(LTLIBGCRYPT) \
$(LTLIBCHECK) $(LTLIBICONV)
@@ -149,6 +150,7 @@
base/pdf-error.h \
base/pdf-types-buffer.h \
base/pdf-types-pmon.h \
+ base/pdf-types-uuid.h \
base/pdf-fp.h \
base/pdf-alloc.h \
base/pdf-list.h \
=== added file 'src/base/pdf-types-uuid.c'
--- src/base/pdf-types-uuid.c 1970-01-01 00:00:00 +0000
+++ src/base/pdf-types-uuid.c 2011-03-15 16:15:16 +0000
@@ -0,0 +1,79 @@
+/* -*- mode: C -*-
+ *
+ * File: pdf-types-uuid.c
+ * Date: Tue Feb 8 18:38:34 2011
+ *
+ * GNU PDF Library - UUID generation and utilities
+ *
+ */
+
+/* Copyright (C) 2008-2011 Free Software Foundation, Inc. */
+
+/* This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#include
+
+#include
+
+#include
+#include
+
+pdf_uuid_t
+pdf_uuid_generate (enum pdf_uuid_type_e type)
+{
+ pdf_uuid_t new_uuid;
+
+ if (type == PDF_UUID_TIME)
+ {
+ uuid_generate_time (new_uuid.uuid);
+ }
+ else if (type == PDF_UUID_RANDOM)
+ {
+ uuid_generate_random (new_uuid.uuid);
+ }
+ else
+ {
+ uuid_generate (new_uuid.uuid);
+ }
+
+ return new_uuid;
+}
+
+const char *
+pdf_uuid_string (pdf_uuid_t uuid)
+{
+ static char ascii_rep[PDF_UUID_CHAR_LENGTH];
+
+ uuid_unparse (uuid.uuid, ascii_rep);
+
+ return ascii_rep;
+}
+
+pdf_bool_t
+pdf_uuid_equal_p (pdf_uuid_t uuid1,
+ pdf_uuid_t uuid2)
+{
+ pdf_bool_t b;
+
+ if (uuid_compare (uuid1.uuid, uuid2.uuid) == 0)
+ b = PDF_TRUE;
+ else
+ b = PDF_FALSE;
+
+ return b;
+
+}
+
+/* End of pdf-types-uuid.c */
=== added file 'src/base/pdf-types-uuid.h'
--- src/base/pdf-types-uuid.h 1970-01-01 00:00:00 +0000
+++ src/base/pdf-types-uuid.h 2011-03-15 16:15:16 +0000
@@ -0,0 +1,79 @@
+/* -*- mode: C -*-
+ *
+ * File: pdf-types-uuid.h
+ * Date: Tue Feb 8 16:48:00 2011
+ *
+ * GNU PDF Library - UUID generation and utilities
+ *
+ */
+
+/* Copyright (C) 2008-2011 Free Software Foundation, Inc. */
+
+/* This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#ifndef PDF_TYPES_UUID_H
+#define PDF_TYPES_UUID_H
+
+#include
+
+/* BEGIN PUBLIC */
+
+#include
+
+/* END PUBLIC */
+
+#include
+
+#define PDF_UUID_CHAR_LENGTH 45
+
+/* BEGIN PUBLIC */
+
+/* Types of UUIDs */
+/* Currently only time-based and random-based UUIDs are supported */
+enum pdf_uuid_type_e
+{
+ /* Time-based */
+ PDF_UUID_TIME,
+ /* Random-based */
+ PDF_UUID_RANDOM
+};
+
+/* END PUBLIC*/
+
+struct pdf_uuid_s
+{
+ uuid_t uuid;
+};
+
+/* BEGIN PUBLIC */
+
+typedef struct pdf_uuid_s pdf_uuid_t;
+
+/* UUID creation */
+pdf_uuid_t pdf_uuid_generate (enum pdf_uuid_type_e type);
+
+/* Printed ASCII representation of an UUID */
+/* NOTE: The returned pointer is to static data, which is overwritten with each call */
+const char * pdf_uuid_string (pdf_uuid_t uuid);
+
+/* Determine if two UUIDs are equal */
+pdf_bool_t pdf_uuid_equal_p (pdf_uuid_t uuid1,
+ pdf_uuid_t uuid2);
+
+/* END PUBLIC */
+
+#endif /* !PDF_TYPES_UUID_H */
+
+/* End of pdf-types-uuid.h */
# Begin bundle
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